首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

QuickReport 元件完整入門:頻帶架構、群組報表與條件列印

     編輯:關於C++

一、核心元件速查

元件用途
TQuickRep報表容器,擁有座標系統,Bands 屬性自動加入頻帶
TQRLabel靜態文字(如標題),Caption 直接列印
TQRDBText資料庫欄位值,DataSet/DataField 綁定
TQRSysData系統資訊:頁碼、日期、時間、報表標題
TQRMemo多行靜態文字
TQRRichTextRich Text 格式,可連結 Form 上的 TRichEdit(需 32 位元版)
TQRShape方框、圓形、直線
TQRImage靜態圖片(BMP/WMF/ICO)
TQRDBImage資料庫圖片欄位
TQRBand定位報表區塊(標題、明細、頁尾等),上可放置其他元件
TQRGroups多層群組操作,依 Expression 值變化自動換群
TQRExpr運算式元件,支援條件邏輯、彙總函式(Count、Sum 等)

二、報表頻帶排列順序(自上而下)

  1. PageHeader(每頁標題)
  2. Title(僅第一頁標題)
  3. ColumnHeader(欄位標題)
  4. Detail(資料明細,每筆記錄一列)
  5. Summary(最後一頁彙總)
  6. PageFooter(每頁頁尾)

透過 TQRBand.BandType 設定類型,或展開 TQuickRep.Bands 自動建立。

三、快速入門:列印 Customer 表 Company 欄位

  1. 放置 TTable:DatabaseName=BCDEMOS, TableName=Customer, Active=true
  2. 放置 TQuickRep:DataSet=Table1
  3. 展開 Bands,設 HasDetail=true(自動建立 Detail Band)
  4. 在 Detail Band 放 TQRDBText:DataSet=Table1, DataField=Company
  5. 右鍵 TQuickRep → Preview 預覽
  6. 列印按鈕:QuickRep1->Preview(); 或 QuickRep1->Print();

四、進階:群組報表(依 State 分群顯示公司)

  1. TQuery:SQL: SELECT * FROM Customer ORDER BY State, Company, Active=true
  2. TQuickRep:DataSet=Query1
  3. 放 TQRGroups → 自動建立 Group Header Band
  4. 加 Group Footer Band:放 TQRBand,設 BandType=rbGroupFooter,連結 TQRGroups.FooterBand
  5. TQRGroups.Expression = Query1.State(State 值變化即換群)
  6. Group Header 放 TQRExpr:Expression: if(State<>'', State, 'Unknown state')
  7. Detail Band 放三個 TQRDBText:Company, Contact, Phone
  8. Group Footer 放 TQRExpr:Expression: 'Customers in '+State+': '+Str(Count)

五、條件式列印

在 TQuickRep.OnFilter 事件撰寫邏輯:

procedure TForm1.QuickReport1Filter(var PrintRecord: Boolean);
begin
    PrintRecord := False; // 預設不列印
    if YourTable.FieldByName('WantedField').AsInteger <= 100 then Exit;
    if YourTable.FieldByName('WantedField').AsInteger >= 150 then Exit;
    PrintRecord := True;  // 100 < 值 < 150 才列印
end;

PrintRecord 為 var 參數,設為 True 列印該筆,False 略過。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved