麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Delphi > 正文

Delphi中用FastReport制作報表

2019-11-17 05:01:35
字體:
來源:轉載
供稿:網友
報表作為系統信息的典型輸出形式之一,是大多數應用系統非凡是MIS系統的重要功能。是否具有一個良好的打印功能,往往從一定程度上關系到系統的成敗。Delphi有很強的報表功能,但是它的報表功能還不能滿足我們的需要。于是許多Delphi高手相繼推出了不少優秀的報表控件(模塊),作為QuickReport的補充,其中FastReport就是一個代表。

  FastReport綜合了QuickReport和Re portBuilder的優點,個頭小,速度快,并帶有全部源碼。筆者在開發一個藥品治理系統時,用FastReport2.51成功制作出了和藥品驗收單、藥品調撥單一模一樣的表單式報表。下面給朋友們介紹一下。

  FastReport2.51下載地址:http//www.skycn.com/soft/8805.Html。

  報表的需求分析

  在醫院工作的朋友都知道,藥品入庫時要填寫藥品驗收單,藥房工作人員領取藥品時要填寫藥品調撥單。筆者單位使用的藥品驗收單和調撥單不是專用的,而是通用的商品驗收單和調撥單。與百貨業、電信系統使用的報表不同,它的外形為條形,每張固定可填五種藥品,內容包括發貨單位、發貨單號、收貨單位、品名、規格、單位、價格、金額等,一式三聯。

  綜上所述,我們可以把報表設計的需求歸納如下:

  1. 大小為:長21cm,寬10cm;

  2. 每張可以打印5種藥品,表單下面有本頁小計。

  3. 多于5種藥品時開始新一張表單的打印,不足5種藥品時要用空行補足。

  報表設計

  1.打開FastReport的報表設計器,按照圖1設計出“藥品驗收單”。


(圖片較大,請拉動滾動條觀看)

  另外,InHJ、OutHJ、CaHj、LineCount這幾個變量分別表示“入庫合計”、“出庫合計”、“差價合計”和“數據總行數”,在程序中將對這幾個變量賦值。

  2.按F11鍵,調出對象查看器,選中Band2,在它的OnBeforPRint事件中輸入如下代碼:

begin
if LINE#-1 <>0  and LINE#-1  mod 5=0  then
begin
showBandChild1 
showBandband1 
end
end
  代碼中用FastReport的內置函數LINE#取得當前行號,假如滿足條件,就顯示頁頭和Child3,開始新的一張表單。

  3.選中Child3,在它的OnBeforPrint事件中輸入如下代碼:

begin
lin=lineCount //在程序中要對該變量賦值
while lin mod 5<>0  do
begin
showbandchild2  //打印空行
inclin 
end
showBandchild3 
end
  這段代碼的用途是假如最后數據行不夠一張表單顯示時,就打印空行。

  4. 選中Band3,在它的OnBeforPrint事件中輸入如下代碼:

begin
showbandchild1  //到達報表結束時顯示表單底部的內容
end
  5.將報表保存后回到Delphi開發環境。

  Delphi編程部分

  在Delphi編程部分我們主要完成報表所需參數的傳遞,因為要在好幾個過程中訪問這些參數,所以要將這幾個參數設為全局變量:

private
line1line2integer //保存行號
inputXjintemp //入庫小計 ,每5行后清零,下同
outXjoutemp //出庫小計
CajiaXjcatempReal //差價小計
下面是幾個主要過程的代碼清單。
//單張表單數據合并過程
procedure TInputForm.frDBDataSet1NextSender TObject 
var
ReCountinteger
begin
ReCount = Adoruku.RecordCount
Incline1 // 該變量傳至報表文件控制打印空行
Incline2 // 該變量控制清零小計值
if not Adoruku.Eof then
begin
inputXj=inputXj+ADORuku.fieldByName'入庫金額' .AsFloat
outXj=outXj+Adoruku.fieldByName'出庫金額' .AsFloat
CajiaXj=CajiaXj+AdorukuJXCJ.AsFloat
end
//每5行后將小計值清零
if line2 mod 5 = 0  and ReCount>line2 div 5 5   then
begin
intemp=inputXj
outemp=outXj
Catemp=CajiaXj
inputXj=0
outXj=0
CajiaXj=0

end
//到達數據集末尾時給變量賦值
if Adoruku.Eof then
begin
intemp=inputXj
outemp=outXj
Catemp=CajiaXj
end
end
  以上程序在windows 2000/XP+Delphi6.0中調試通過。至此,我們已經完成了藥品驗收單的設計工作,其他的類似報表設計可以參照以上過程。圖2是程序運行時生成的報表預覽效果。


(圖片較大,請拉動滾動條觀看)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 成人啪啪色婷婷久 | 视频一区二区三区视频 | h视频免费在线观看 | 毛片福利 | 国产免费传媒av片在线 | 亚洲精品 在线播放 | 手机国产乱子伦精品视频 | 日本免费一区二区三区四区 | 色交视频| 久久草草亚洲蜜桃臀 | 一区二区三区欧美日韩 | 成人福利免费在线观看 | 99在线精品视频免费观看20 | 中文字幕网站在线 | 宅男噜噜噜66国产在线观看 | 91精品动漫在线观看 | 国产免费一级淫片 | 成人性生活视频在线观看 | 一级免费特黄视频 | 国产一级大片在线观看 | 久久精品视频免费观看 | 国产精品热 | 欧美久久一区 | 久久国产精品二国产精品中国洋人 | 久久蜜桃香蕉精品一区二区三区 | 色av综合在线 | 亚洲国产美女视频 | h视频免费在线观看 | 日本免费一区二区三区四区 | 国产免费www | 国产正在播放 | av亚洲在线观看 | 女教师~淫辱の动漫在线 | 国产免费乱淫av | 黄色大片在线免费看 | av不卡免费在线观看 | 日韩视频一区二区三区在线观看 | 久久爽久久爽久久av东京爽 | 香蕉久久久久 | av在线观| 久久久久久久.comav |