システム情報の典型的な出力形式の1つとしてのレポートは、MISシステムの並外れた重要な機能であるほとんどのアプリケーションシステムの重要な機能です。それが良い印刷機能を持っているかどうかは、多くの場合、システムの成功または失敗にある程度関連しています。 Delphiには強力な報告機能がありますが、そのレポート機能は私たちのニーズを満たすことができません。したがって、多くのDelphiの専門家は、QuickReportのサプリメントとして多くの優れたレポートコントロール(モジュール)を連続して発売しました。
FASTREPORTは、QuickReportとReportBuilderの利点を組み合わせており、サイズが小さく、速度が高速で、すべてのソースコードがあります。薬物治療システムを開発するとき、著者は、FastRePort 2.51を使用した薬物受け入れフォームおよび薬物配分とまったく同じフォームベースのレポートを成功裏に作成しました。以下の友達に紹介させてください。
fastereport2.51ダウンロードアドレス:http// www.skycn.com/soft/8805.html。
レポート要件分析
病院で働いている友人は、薬物が倉庫に入れられたとき、薬物の受け入れフォームに記入する必要があり、薬局のスタッフが薬物を受け取るとき、薬物配分フォームに記入する必要があることを知っています。著者が使用する薬物受け入れフォームと割り当てフォームは専用ではなく、一般的な製品受け入れフォームと割り当てフォームです。デパートや電気通信システムで使用されるレポートとは異なり、その外観はバー型であり、各シートには、配達ユニット、配達命令番号、配送ユニット、製品名、仕様、ユニット、価格など、5種類の医薬品で満たすことができます。 、量など、1つのスタイルとトリプルの組み合わせ。
要約すると、レポート設計の要件を次のように要約できます。
1。サイズ:長さ21cm、幅10cm。
2。それぞれが5種類の薬を印刷でき、このページの小計はフォームの下にあります。
3. 5つ以上の薬がある場合は、新しいフォームの印刷を開始します。
レポートデザイン
1。図1に従って、Fastreport Report Designerを開き、「薬物受容フォーム」を設計します。
(写真は大きいので、スクロールバーを引っ張って視聴してください)
さらに、変数INHJ、OUTHJ、CAHJ、およびLINECOUNTは、「総店内」、「合計外出」、「合計差」、「合計データ行」を表し、これらの変数は次の値に割り当てられます。プログラム。
2。F11を押してオブジェクトビューアーを呼び出し、Band2を選択し、そのonbeforPrintイベントで次のコードを入力します。
始める
line#-1 <> 0およびline#-1 mod 5 = 0の場合
始める
showbandchild1
showbandband1
end
end
コードでは、fastReportの組み込み関数#ライン#を使用して、条件が満たされている場合、ヘッダーと子3が表示されます。
3. child3を選択し、onbeforprintイベントで次のコードを入力します。
始める
lin=linecount//プログラムのこの変数に値を割り当てます
whilelinmod 5 <> 0はします
始める
showbandchild2//空の行を印刷します
Inclin
end
showbandchild3
end
このコードの目的は、フォームを表示するには最後のデータ行で十分でない場合は、空白行を印刷することです。
4. band3を選択し、そのonbeforprintイベントで次のコードを入力します。
始める
showbandchild1//レポートに到達すると、フォームの下部にあるコンテンツが表示されます
end
5.レポートを保存し、Delphi開発環境に戻ります。
Delphiプログラミングパーツ
Delphiプログラミングの部分では、主にレポートに必要なパラメーターの合格を完了します。これらのパラメーターにアクセスする必要があります。
プライベート
line1line2integer//行番号を保存します
inputXJIntemp//倉庫への小計入りエントリは、5行ごとにクリアされ、以下と同じです
outxjoutemp//出力subtotal
cajiaxjcatempreal//価格差の小計
以下は、いくつかの主要なプロセスのコードのリストです。
//単一のフォームデータマージプロセス
手順tinputform.frdbdataset1nextsendertobject
var
RecountInteger
始める
再集計=Adoruku.RecordCount
incline1//この変数はレポートファイルに送信され、空の行の印刷を制御する
Incline2//この変数は、小計値を制御します
Adoruku.eofではない場合
始める
inputxj= inputxj+adoruku.fieldbyname'Input 'input'
outxj= outxj+adoruku.fieldbyname'out-deposit on '.asfloat
cajiaxj= cajiaxj+adorukujxcj.asfloat
end
// 5行ごとに小計値をクリアします
line2mod 5 = 0およびrecount>line2div55の場合
始める
intemp=inputxj
outemp=outxj
catemp=cajiaxj
inputXJ=0
outxj=0
cajiaxj=0
end
//データセットの最後に到達したときに変数に値を割り当てます
Adoruku.eofの場合
始める
intemp=inputxj
outemp=outxj
catemp=cajiaxj
end
end
上記のプログラムはデバッグされ、Windows 2000/XP+Delphi6.0で渡されました。これまでのところ、薬物受容フォームの設計を完了しており、他の同様のレポート設計は上記のプロセスを参照できます。図2は、プログラムが実行されているときに生成されたレポートのプレビュー効果です。
(写真は大きいので、スクロールバーを引っ張って視聴してください)