중화사전망 - 구한말 사전 - IFIX에서 CryStal 보고서를 참조하는 방법
IFIX에서 CryStal 보고서를 참조하는 방법
여기에서는 주로 Crystal Report의 전체 프레임워크 모델에 대해 논의하고 싶습니다. VB를 사용하여 보고서와 데이터를 효과적으로 통합하고 보고서를 빠르게 개발하는 방법에 중점을 두고 있습니다. 저는 다른 사람들에게 영감을 주고 가장 좋고 가장 빠른 개발 모델을 찾고 싶습니다.
이 글에서는 아직 기술적인 세부 사항을 다루지 않기 때문에 너무 간단하다고 생각하실 수도 있습니다. 하지만 이 문제는 실제로 우리 개발에서 가장 큰 문제입니다. 향후 논의에서는 특정 문제에 대한 구체적인 기술적 세부 사항을 논의할 수 있습니다.
소스코드를 준비해서 일부 네티즌들에게 보냈으나, 자세한 테스트는 해보지 않았습니다. 내일 모레 테스트를 끝낼 예정입니다. 필요하시면 월요일쯤 보내드릴 수 있을 것 같습니다. (아, 토요일과 일요일에는 야근을 해야 합니다!)
참고: 필요하신 경우 간단한 메시지만 보내지 마시고 메시지를 남겨주세요.
약어 설명
RPT Crystal Report 템플릿 파일. Crystal Report 디자이너를 사용하여 생성된 보고서 스타일 및 템플릿 파일(접미사 RPT 포함)
RDC Crystal Report Designer 구성 요소. VB에서 Crystal Report를 작동하는 데 사용되는 Crystal Report의 개체 모델입니다.
CRV Crystal Report Viewer. VB에서 보고서 미리 보기 인터페이스를 제공하는 데 사용되는 OCX 컨트롤입니다.
CRC Crystal Report 컨트롤. Crystal Report 8.0 이전에 VB에서 보고서 미리 보기 인터페이스를 제공하는 데 사용되었던 OCX 컨트롤이 CRV로 대체되었습니다.
CDO Crystal Data Source Object Crystal Report에서 제공하는 데이터 소스 개체는 데이터베이스와 독립적인 동적 데이터 소스를 생성하는 데 사용됩니다.
1. 데이터를 동적으로 수집하고 보고서를 생성하는 방법은 무엇입니까?
보고서의 주요 기능 중 하나는 미리 디자인된 템플릿 스타일과 런타임 시 동적 데이터를 기반으로 보고 인쇄할 수 있는 문서를 생성하는 것입니다.
일반적으로 VB 프로그램의 전체 보고 프로세스 중 주요 라인은 사용자 요구 사항을 충족하기 위해 Crystal Report 및 기타 도구에 명령을 내리는 데 사용됩니다.
VB는 RDC 모델을 통해 CrystalReport를 운영합니다. 보고서 생성에는 일반적으로 두 가지 모드가 있습니다.
1. VB-RPT-DB
VB는 RPT 파일을 호출하고 RPT 파일은 데이터베이스를 쿼리하여 데이터를 얻고 보고서를 생성합니다. 이 방법의 세부 과정은 다음과 같습니다.
1) Crystal Report에서 RPT 파일을 디자인합니다. 디자인 시 Crystal Report의 데이터베이스에 연결하여 쿼리 데이터를 얻고 보고서를 즉시 미리 볼 수 있습니다.
2) VB에서는 RDC 모델을 통해 RPT 파일을 열고, 데이터베이스 이름, 사용자, 비밀번호 등 런타임 및 데이터베이스 연결에 필요한 정보가 있으면 RPT 파일에 전달합니다. 매개변수인 경우 매개변수도 전달해야 합니다.
3) RPT 파일을 데이터베이스에 연결하고 쿼리를 실행하여 데이터를 얻은 후 보고서를 생성합니다.
4) VB에서는 RDC 모델을 통한 미리보기, 인쇄, 내보내기 및 기타 작업을 위해 CRV 컨트롤을 통해 보고서를 엽니다.
2. VB-DB-RPT
VB는 먼저 데이터베이스를 쿼리하여 결과 집합을 얻은 다음 RPT 파일을 열고 결과 집합을 전달하여 보고서를 생성합니다. 이 방법의 세부 과정은 다음과 같습니다.
1) Crystal Report에서 RPT 파일을 디자인합니다.
현재 결과 세트가 아직 생성되지 않았으므로 TTX 파일은 필드 정보를 읽는 가상 데이터 소스로만 사용할 수 있습니다. 따라서 RPT 파일을 설계하기 전에 최종 결과 세트 구조를 기반으로 TTX 파일을 생성해야 합니다.
2) VB에서 데이터베이스에 연결하고 쿼리를 실행하고 결과 세트를 가져옵니다.
3) VB에서 RDC 모델을 통해 RPT 파일을 열고 결과 세트와 매개변수를 전달하고 보고서를 생성합니다.
4) VB에서는 RDC 모델을 통한 미리보기, 인쇄, 내보내기 및 기타 작업을 위해 CRV 컨트롤을 통해 보고서를 엽니다.
분명히 VB-RPT-DB 모드는 VB-DB-RPT 모드보다 훨씬 우수하며 이는 다음과 같은 측면에서 반영됩니다.
1 디자인할 때 VB- DB-RPT 모드는 일반적으로 최종 결과 세트와 동일한 필드 구조를 가진 TTX 파일을 가상 데이터 소스로 생성해야 하므로 개발 및 유지 관리 작업량이 늘어나고 생성된 보고서를 실시간으로 미리 볼 수 없습니다. VB-RPT-DB 모드는 데이터베이스에 직접 연결되어 TTX 파일이 필요하지 않으며 최종 데이터를 볼 수 있습니다.
2. 실행 시 VB-DB-RPT 모드에서 결과 세트를 가져온 후 VB에서 해당 결과 세트 개체를 생성하고 이를 RPT 파일에 전달해야 합니다. VB-RPT-DB 모드와 비교하면 결과 집합 개체라는 큰 개체가 하나 더 있습니다.
3. 실행 시 VB-DB-RPT 모드의 결과 세트는 DB에서 VB로 전송된 다음 RPT로 전송되고, VB-RPT-DB 모드의 결과 세트는 DB에서 직접 전송됩니다. RPT로, 대용량 데이터 전송이 적습니다.
4. 개발 중에 VB-DB-RPT 모드에서는 보고서가 추가될 때마다 결과 세트 쿼리와 보고서 생성이라는 두 가지 코드를 추가해야 합니다. VB-RPT-DB 모드는 모든 보고서를 처리하기 위한 인터페이스를 쉽게 구현할 수 있으며, 새 보고서를 추가하기 위해 VB 코드를 추가할 필요가 거의 없습니다. 둘 사이의 코드 양은 동일하지 않습니다.
2. 보고서 템플릿 파일을 생성하는 방법은 무엇입니까?
보고서 형식을 디자인하는 것은 모든 보고서 작업의 첫 번째 단계입니다. CrystalReport에는 보고서를 디자인할 수 있는 두 곳, 즉 Crystal Report 통합 디자이너와 VB에 포함된 보고서 디자이너가 있습니다. 저는 개인적으로 내장된 보고서 디자이너가 득보다 실이 더 많아 권장되지 않는다고 생각합니다.
셋째, DB를 쿼리하고 런타임 데이터를 얻는 방법입니다.
VB를 통해 결과 집합을 얻기 위해 DB를 쿼리하는 방법은 여러 가지가 있으며 모두가 익숙합니다. RPT를 통해 DB를 쿼리하는 주요 방법은 저장 프로시저, 뷰, 테이블, Crystal Query 및 직접 SQL 쿼리입니다.
가장 간단한 방법은 테이블에 직접 연결하여 테이블 쿼리를 수행하는 것입니다. 그러나 일반 보고서에는 하나의 테이블만 포함되지 않습니다. 다중 테이블 쿼리를 수행하고 RPT 파일에 쿼리 조건을 설정하는 방법은 간단하지만, 전체적인 쿼리 로직을 산만하게 하고 조작이 번거로워서 좋은 방법은 아니다. 뷰와 저장 프로시저가 최선의 선택이지만 뷰는 저장 프로시저만큼 성능이 떨어지므로 저장 프로시저를 사용하는 것이 좋습니다.
저장 프로시저와 뷰는 데이터베이스에 배치됩니다. 데이터베이스에 뷰와 저장 프로시저를 만드는 것이 허용되지 않거나 불가능한 경우 Crystal Report의 자체 SQL 쿼리 기능을 사용하여 RPT 파일에 전체 SQL 쿼리 문을 작성할 수도 있습니다.
Crystal Report 자체 설명에 따르면 Crystal Query 파일은 Crystal Report 자체 저장 프로시저와 비슷합니다. 그러나 이 도구는 Crystal Report 9에 포함되어 있지 않습니다. Crystal Report 공식 웹사이트에서 별도의 무료 다운로드가 가능합니다. 이 도구에는 두 가지 제한 사항이 있습니다. Crystal Queryk의 각 필드에 대해 필드 값 길이는 20자를 초과할 수 없으며 전체 필드 데이터는 20자를 초과할 수 없습니다. Crystal Report의 도움말 파일에서 이 정보를 보았습니다.
이것이 사실이라면 Crystal Query에는 경쟁력이 없습니다. Crystal Report는 RPT 파일을 디자인할 때 SQL 직접 작성을 지원하고 매개변수를 가져올 수도 있습니다. 이것은 좋은 기능입니다. 위의 두 가지 제한 사항도 있는지 모르겠습니다.
Crystal Report에 포함된 SQL 쿼리 기능을 주의 깊게 테스트하지 않았으므로 여기서 더 이상 언급하는 것은 적절하지 않습니다. 하지만 데이터베이스 저장 프로시저와 뷰를 사용하는 것이 좋습니다. 보고서 작업에서 로직과 디자인 작업을 효과적으로 분리하여 업무 분담과 협력은 물론 편집, 유지 관리, 업그레이드에도 도움이 됩니다.
Oracle의 저장 프로시저를 사용하면 SQL Server와 유사한 다음과 같은 제한 사항이 있습니다.
gt; 로컬 연결이나 ODBC를 사용하여 Oracle에 연결하려면 OLE DB 연결을 사용할 수 없습니다. 로컬 연결을 사용하는 것이 좋습니다.
gt; 저장 프로시저는 패키지에 배치되어야 합니다. 결과 집합 커서는 헤더에 선언되어야 합니다.
gt; 저장 프로시저는 입력 매개변수만 가질 수 있습니다.
gt; 저장 프로시저는 입력-출력(IN OUT) 커서 매개변수 형식으로 반환되는 하나의 결과 집합만 반환할 수 있습니다.
gt; 결과 집합의 필드 이름과 유형은 커서를 여는 SQL 문에 의해 직접 결정됩니다. 따라서 동적 SQL을 사용할 수 없으며 저장 프로시저에 대한 중첩된 호출을 통해 데이터를 커서에 로드할 수도 없습니다.
넷째, 여러 데이터 소스와 매개변수를 전달하는 방법입니다.
모든 데이터 소스가 VB-RPT-DB 모드인 경우 VB에서 수행할 연결 작업은 매우 간단합니다. 동적으로 설정된 연결을 RDC에 전달하기만 하면 됩니다. 그런 다음 RDC는 RPT에 있는 각 데이터 소스에 대한 연결을 전달합니다. 보고서에 하위 보고서가 포함된 경우에도 이는 쉽습니다.
데이터 소스가 VB-DB-RPT 모드이거나 여러 유형이 혼합된 경우입니다. 보고서를 디자인할 때 각 데이터 소스(하위 보고서의 데이터 소스 포함)에 대해 고유한 이름을 설정하는 것이 가장 좋으며, RDC는 이름에 따라 연결 정보 또는 결과 집합을 각 데이터 소스에 전달합니다.
실제로 보고서에 여러 데이터 소스가 있더라도 Crystal Report에서는 서로 간의 기본 키 대응이 필요하며 한 데이터 소스를 처리하기 전에는 다른 데이터 소스를 처리할 수 없습니다. 따라서 이러한 여러 데이터 소스는 여전히 기본적으로 존재합니다. 하나의 데이터 소스. 저는 복잡한 보고서를 많이 작성했지만 여러 데이터 소스를 사용해야 하는 경우는 거의 없었습니다. 하위 보고서는 사례의 약 절반에서 사용됩니다.
보고서의 모든 매개변수는 VB에서 전달될 수 있습니다. 모든 매개변수(하위 보고서의 매개변수 포함)에 대해 고유한 이름을 설정하고 RDC가 이름에 따라 값을 전달하도록 하는 것이 좋습니다. 따라서 보고서에 어떤 하위 보고서가 있는지 걱정하지 마세요.
대량의 보고서를 처리할 때 보고서의 RPT 파일 경로와 해당 매개변수 정보를 데이터베이스에 저장하면 VB 프로그램을 수정하지 않고도 새로운 보고서를 추가할 수 있습니다. 일반적으로 시스템에 있는 대부분의 보고서는 유사한 매개변수를 가지며 제어하기 쉽습니다.
2.1 일반 템플릿을 준비합니다.
프로젝트의 모든 보고서는 일반적으로 통일된 형식과 표준을 갖습니다. 가장 기본적인 서식과 규격을 갖춘 RPT 파일을 템플릿으로 준비하는 것이 현명합니다. 그러나 Crystal Report의 템플릿 마법사 기능은 RPT 파일을 직접 생성하고 복사하는 것보다 그리 강력하지 않습니다.
2.2 Crystal Report 편집 환경에서 필드 및 데이터의 기본 모드를 설정합니다.
Crystal Report의 옵션 메뉴(파일 -> 옵션)에서 다양한 필드, 다양한 데이터 유형에 대한 표시 형식과 글꼴을 설정하는 것이 매우 중요합니다. 템플릿 디자인이 표준을 최대한 충족하는지 확인할 수 있습니다. 업무 중복을 줄입니다.
파일->보고서 옵션에는 매우 중요한 세 가지 설정도 있습니다:
1) 데이터베이스의 NULL 값을 기본값으로 변환하고 선택합니다.
2) 기타 NULL 값을 기본값으로 변환하고 선택하세요.
3) 기록이 없으면 인쇄를 취소하고 체크를 해제해 두세요.
2.3 중국어와 영어를 모두 지원하는 글꼴을 선택하세요.
글꼴 선택은 레이아웃 효과에 직접적인 영향을 미칩니다. 일부 글꼴은 중국어를 지원하지 않으며 중국어를 표시할 때 잘못된 문자가 나타납니다. 일부 중국어 글꼴은 순수 영어로 사용할 수 없습니다. 일부 글꼴은 Windows 2000/XP의 중국어와 영어 환경에서 크기가 다릅니다. 일부 글꼴은 Windows 고유의 글꼴이 아닙니다.
어떤 글꼴을 사용할지는 다양한 환경에서 사용해본 후 결정하는 것이 가장 좋습니다.
2.4 수식 필드, 요약 필드, 런타임 합계 필드 및 변수를 사용하여 데이터 페이지 로직을 구현합니다.
Crystal Report의 수식은 실제로 Crystal Report의 함수와 연산자를 사용하여 데이터 소스의 데이터를 조작하여 표시하려는 필드를 얻는 표현식입니다. 수식에 변수를 사용할 수도 있습니다.
Crystal Report에는 요약 수식과 런타임 합계 수식이라는 두 가지 특수 수식이 있습니다. 두 수식 모두 수식 편집기(CR에서는 Formula Studio라고 함)에서 편집할 수 있지만 더 복잡합니다. CR은 더 간단한 방법을 제공합니다. 보고서에서 계산할 필드를 선택하고 마우스 오른쪽 버튼 클릭 메뉴를 클릭한 다음 "삽입..." 항목을 선택하면 두 개의 하위 메뉴 항목(요약 및 누계)이 나타납니다.
요약 필드는 특정 필드에 대한 그룹 또는 전체 요약 통계를 수행하는 데 사용됩니다.
런타임 합계 필드는 요약 필드에 막대 컨트롤을 추가하여 보고서에 있는 한 필드의 다양한 값을 기반으로 다른 필드의 총 데이터를 얻을 수 있게 해줍니다.
수식 편집기에서 변수를 사용할 수 있습니다. 범위에 따라 지역변수, 전역변수, 공유변수가 있습니다. 지역 변수는 수식이나 함수 내에서만 유효합니다. 전역 변수는 전체 보고서에서 유효하지만(하위 보고서는 제외) 공유 변수는 하위 보고서를 포함한 보고서 파일에서 유효합니다.
2.5 하위 보고서를 사용하세요.
과거 프로젝트 경험에 따르면 보고서의 절반 정도가 하위 보고서를 사용합니다. Crystal Report에서 보고서는 실제로 하나의 결과 집합만 처리할 수 있습니다. 서로 기본 키 대응이 필요한 여러 결과 집합이 있습니다. 결과 집합은 본질적으로 하나입니다. 보고서에 여러 섹션을 표시하려면 하위 보고서를 사용해야 합니다. 하위 보고서에는 별도의 머리글과 바닥글이 없다는 점을 제외하면 전체 보고서의 모든 특성이 있습니다.
페이지가 표시될 때 하위 보고서의 너비는 기본 보고서의 너비로 제한되므로 하위 보고서를 기본 보고서에 배치할 때 충분한 너비를 제공해야 합니다.
메인 보고서와 하위 보고서는 필드-매개변수 관계를 통해 연결될 수 있습니다. 즉, 기본 보고서의 필드가 하위 보고서의 매개 변수로 사용됩니다.
2.6 크로스탭을 사용하세요.
A와 B라는 두 개의 필드가 있습니다. A의 모든 값은 첫 번째 열의 헤더에 표시되고 B의 모든 값은 각 행의 시작 부분에 표시되어야 합니다. 보고서의 열 본문에는 아래와 같이 해당 A 및 B 값을 기반으로 계산된 결과가 표시됩니다. 이것은 크로스탭입니다.
크로스탭의 Crystal Report에 있는 개체는 쉽게 생성할 수 있습니다. 크로스탭은 세부 사항이나 머리글이 아닌 보고서의 보고서 바닥글(보고서 바닥글)에 배치되어야 합니다. 그렇지 않으면 중복된 표시와 불완전한 데이터가 발생합니다.
Crystal Report는 크로스탭의 페이징 기능을 잘 지원하지 않으므로 데이터가 한 페이지를 넘지 않도록 하세요.
2.7 열 테이블을 사용하세요.
소위 컬럼 테이블은 페이지를 여러 컬럼으로 나누어 결과를 표시하는 것입니다. 이를 통해 여러 레코드를 동일한 행에 표시할 수 있습니다.
섹션 전문가에서 세부 섹션을 선택하세요. 세부 섹션의 일반 섹션만 선택할 수 있으며, 하위 섹션은 선택할 수 없습니다. 인터페이스 탭의 추가 섹션. 이 탭에서는 열을 설정할 수 있습니다.
2.8 각 페이지에 총 페이지 수를 표시하지 않는 것이 가장 좋습니다.
총 페이지 수를 표시하면 보고서가 다시 한 번 완전히 계산되므로 성능이 심각하게 저하되므로 모든 페이지에 총 페이지 수를 표시하지 않는 것이 가장 좋습니다.
2.9 보고서를 인쇄하여 형식과 데이터를 확인하세요.
이것이 핵심입니다. 인쇄해서 확인하지 않으면 형식과 데이터에 오류가 없는지 확인하기 어렵습니다.
2.10 필드 또는 섹션에 대한 조건부 표시 조건 설정
섹션만큼 큰 것부터 필드만큼 작은 것까지 Crystal Report의 모든 개체는 표시 형식을 제한할 수 있습니다. 이러한 개체의 서식 편집기에는 표시를 억제하는 옵션이 있으며 오른쪽에 수식 편집 버튼이 있습니다. 이 버튼을 클릭하면 수식 편집기에 들어가 표시 억제 조건을 제어하는 논리식을 편집할 수 있습니다. 조건식은 표시 억제 옵션이 선택된 경우에만 작동합니다.
2.11 조건부로 필드 형식 지정
유사한 요구 사항이 발생하는 경우 조건부로 필드 형식을 지정해야 합니다. 밑줄이 그어진 값이 1000보다 큰 모든 A 필드를 추가합니다.
필드의 조건부 서식은 수식 편집기(Formula Studio)에서만 수행할 수 있습니다.
2.12 RTF로 내보낼 때 필드 정렬에 주의하세요.
보고서 필드를 무작위로 배치하면 RTF 파일을 내보낼 때 위치에 심각한 혼란이 생길 수 있습니다.