일반적인 출력 형태의 시스템 정보 중 하나 인 보고서는 MIS 시스템의 특별하고 중요한 기능인 대부분의 응용 시스템의 중요한 기능입니다. 인쇄 기능이 양호한 지 여부는 종종 시스템의 성공 또는 실패와 어느 정도 관련이 있습니다. 델파이는 강력한보고 기능을 가지고 있지만보고 기능은 우리의 요구를 충족시킬 수 없습니다. 따라서 많은 델파이 전문가들은 QuickReport의 보충제로 많은 우수한 보고서 제어 (모듈)를 연속적으로 시작했으며, 그 중 Fastreport는 대표자입니다.
FastReport는 QuickReport 및 ReportBuilder의 장점을 결합하며 크기가 작고 속도가 빠르며 모든 소스 코드가 있습니다. 약물 치료 시스템을 개발할 때 저자는 Fastreport 2.51을 사용한 약물 수용 형태 및 약물 할당과 정확히 동일한 양식 기반 보고서를 성공적으로 제작했습니다. 아래의 친구들에게 소개하겠습니다.
Fastreport2.51 다운로드 주소 : http // www.skycn.com/soft/8805.html.
보고 요구 사항 분석
병원에서 일하는 친구들은 약물을 창고에 넣을 때 약물 수용 양식을 작성해야하며 약국 직원이 약물을 받으면 약물 할당 양식을 작성해야한다는 것을 알고 있습니다. 저자가 사용하는 약물 수용 양식 및 할당 양식은 전용이 아니라 일반적인 제품 수용 양식 및 할당 양식입니다. 백화점 및 통신 시스템에 사용 된 보고서와 달리 외관은 막대 모양이며 각 시트는 배송 단위, 배달 주문 번호, 배달 단위, 제품 이름, 사양, 가격을 포함한 5 가지 종류의 의약품으로 채워질 수 있습니다. , 금액 등, 하나의 스타일 및 트리플 조합.
요약하면, 보고서 설계의 요구 사항을 다음과 같이 요약 할 수 있습니다.
1. 크기 : 길이 21cm, 폭 10cm;
2. 각각은 5 가지 종류의 의약품을 인쇄 할 수 있으며이 페이지의 하위 운동은 양식 아래에 있습니다.
3. 약물이 5 개 이상있을 때는 새로운 양식을 인쇄하기 시작하면 빈 줄을 사용하여 보충하십시오.
보고서 디자인
1. FastReport 보고서 디자이너를 열고 그림 1에 따라 "약물 수용 형식"을 설계하십시오.
(사진이 큽니다. 스크롤 막대를 잡아 당기십시오)
또한 변수 Inhj, Othj, Cahj 및 Linecount 변수는 "총 매장", "총 전세기", "총 차이"및 "총 데이터 행"을 나타냅니다. 이러한 변수는 프로그램.
2. F11을 눌러 객체 뷰어를 호출하고 Band2를 선택하고 onbeforprint 이벤트에서 다음 코드를 입력하십시오.
시작하다
If 라인##-1 <> 0 및 라인# -1 mod 5 = 0이면
시작하다
showbandchild1
showband 밴드 1 1
끝
끝
코드에서 Fastreport의 내장 함수 라인#을 사용하여 조건이 충족되면 헤더와 child3가 표시되어 새 양식을 시작합니다.
3. Child3을 선택하고 OnbeforPrint 이벤트에서 다음 코드를 입력하십시오.
시작하다
lin = eclinecount // 프로그램 의이 변수에 값을 지정합니다
>자 MOD 5 <> 0은 수행합니다
시작하다
showbandchild2 // 빈 줄을 인쇄합니다
inclin
끝
showbandchild3
끝
이 코드의 목적은 마지막 데이터 라인이 양식을 표시하기에 충분하지 않은 경우 빈 줄을 인쇄하는 것입니다.
4. Band3을 선택하고 OnbeForPrint 이벤트에서 다음 코드를 입력하십시오.
시작하다
showbandchild1 // 보고서에 도달하면 양식 하단의 내용이 표시됩니다.
끝
5. 보고서를 저장하고 델파이 개발 환경으로 돌아갑니다.
델파이 프로그래밍 부분
Delphi 프로그래밍 부분에서는 주로 보고서에 필요한 매개 변수를 통과시켜 여러 프로세스에서 이러한 매개 변수에 액세스해야하므로 이러한 매개 변수를 전체 변수로 설정해야합니다.
사적인
Line1lline2Integer // 줄 번호를 저장합니다
inputxjintemp // 창고로의 하위 접속, 5 줄마다 지우십시오.
Outxjoutemp // extotal 출력
cajiaxjcatempreal // 가격 차이의 하위 요소
아래는 여러 주요 프로세스에 대한 코드 목록입니다.
// 단일 양식 데이터 병합 프로세스
절차 tinputform.frdbdataset1nextsender tobject
var
recountingeintegere
시작하다
recount = adoruku.recordCount
incline1 //이 변수는 빈 줄의 인쇄를 제어하기 위해 보고서 파일로 전송됩니다.
incline2 //이 변수는 하위 운동 값을 제어합니다
그렇지 않다면 adoruku.eof
시작하다
inputxj in = inputxj+adoruku.fieldByname'Input folb
onxj = outxj+adoruku.fieldbyname'out-deposit 금액 '.asfloat
cajiaxj = cajiaxj+adorukujxcj.asfloat
끝
// 5 행마다 하위 운동 값을 지우십시오
If =line2 mod 5 = 0 및 recount> line2 div 5 5 인 경우
시작하다
intemp = inputxj
afeemp = OutXj
catempx = cajiaxj
inputxj = 0
Outxj = 0
cajiaxj = 0
끝
// 데이터 세트의 끝에 도달하면 변수에 값을 할당합니다.
adoruku.eof라면
시작하다
intemp = inputxj
afeemp = OutXj
catempx = cajiaxj
끝
끝
위의 프로그램은 디버깅되어 Windows 2000/xp+delphi6.0에서 전달되었습니다. 지금까지 우리는 약물 수용 형식의 설계를 완료했으며 다른 유사한 보고서 설계는 위의 과정을 참조 할 수 있습니다. 그림 2는 프로그램이 실행될 때 생성 된 보고서의 미리보기 효과입니다.
(사진이 큽니다. 스크롤 막대를 잡아 당기십시오)