原創|其它|編輯:郝浩|2012-11-12 11:25:23.000|閱讀 1179 次
概述:如何在FastReport中實現打印TListView數據,附加源碼
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在FastReport中實現打印TListView數據,主要的步驟如下:
界面與組件屬性設置
示例界面如下:
在窗體上入一個FrxReport組件和一個FrxUserDataSet組件;雙擊frxReport,報表樣式編輯如圖2示:
把frxUserDataSet對象引用添加到右側的數據源視圖中;方法 【Report】--【Data...】選擇數據源并確認就行。
在報表模板中放入三個bind,分別是Titel、MasterData、PageFooter。
再在bind中添加相應的memo組件,同時設置MasterData的DataSet屬性為上面所添加的frxUserDataSet組件的引用;
設置完成后,關閉報表模板編輯窗體。
源碼如下:
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, frxClass; type TForm1 = class(TForm) lv1: TListView; frxrprt1: TfrxReport; frxsrdtst1: TfrxUserDataSet; btn1: TButton; procedure FormCreate(Sender: TObject); procedure btn1Click(Sender: TObject); procedure frxrprt1GetValue(const VarName: String; var Value: Variant); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin lv1.Items.BeginUpdate; try lv1.Items.Clear; while lv1.items.Count < 30 do with lv1.items.Add do begin Caption := IntToStr(Index); SubItems.Add('item '+inttostr(index)); subitems.Add('test address'); SubItems.Add(IntToStr(index *20 +5)); end; finally lv1.Items.EndUpdate; end; end; procedure TForm1.btn1Click(Sender: TObject); begin frxsrdtst1.RangeEnd := reCount; frxsrdtst1.RangeEndCount := lv1.items.Count; frxrprt1.ShowReport(); end; procedure TForm1.frxrprt1GetValue(const VarName: String; var Value: Variant); var item:TListItem; begin item:=lv1.Items.Item[frxsrdtst1.recno]; if CompareText(VarName,'id')=0 then Value := item.Caption ; if CompareText(VarName,'name')=0 then Value := item.SubItems.Strings[0]; if CompareText(VarName,'address')=0 then Value := item.SubItems.Strings[1]; if CompareText(VarName,'money')=0 then Value := item.SubItems.Strings[2]; end; end. 效果圖如下:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件