FastReport4(Delphi)动态生成报表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字段名、字段数不确定时,用FastReport4 动态生成报表
Delphi xe3 + FastReport4.14.1
ADOConnection,ADOQuery,DatasetProvider,ClientDataSet,DataSource,FrxDBDataset1,FrxReport屬性設置,不在這裡詳述。
效果圖:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Grids, Vcl.DBGrids, Datasnap.Provider, Data.Win.ADODB, Data.DB, Datasnap.DBClient, frxClass, frxPreview, frxDesgn, frxDBSet;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
DataSource1: TDataSource;
ClientDataSet1: TClientDataSet;
ADOQuery1: TADOQuery;
DataSetProvider1: TDataSetProvider;
DBGrid1: TDBGrid;
Button1: TButton;
Button2: TButton;
frxDBDataset1: TfrxDBDataset;
frxDesigner1: TfrxDesigner;
frxPreview1: TfrxPreview;
frxReport1: TfrxReport;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
clientdataset1.Close;
mandText:= 'select user_id,user_name ,sal_no from t_user '; clientdataset1.Open;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
pDataPage :TfrxDataPage;
pPage :TfrxReportPage ;
pBand :TfrxBand;
pDataBand :TfrxMasterData ;
pMemo :TfrxMemoView ;
i:integer;
x,y,z,width:extended;
begin
// 清除原报表内容
frxReport1.Clear;
// 设置Report 的DataSet
frxReport1.DataSets.Add(frxDBdataset1);
// 添加Report 的Data 页
pDataPage := TfrxDatapage.Create(frxReport1);
// 增加报表显示内容
pPage := TfrxReportPage.Create(frxReport1);
ppage.CreateUniqueName();
// 设置Fields 的默认尺寸
pPage.SetDefaults;
// 页面方向
// pPage.Orientation := poLandscape;
// 页面边距
pPage.TopMargin := 20;
pPage.LeftMargin := 20;
pPage.RightMargin := 20;
pPage.BottomMargin := 20;
// 创建报表Title Band
pBand := TfrxReportTitle.Create(pPage);
pBand.CreateUniqueName();
pBand.Top := 0;
pBand.Height := 20;
// 创建显示Field 的Memo
pMemo := TfrxMemoView.Create(pBand);
pMemo.CreateUniqueName();
pMemo.Text := 'Hello FastReport!';
pMemo.Height := 20;
// 风格
pMemo.Align := baWidth;
// 创建DataBand
pDataBand := TfrxMasterData.Create(pPage);
pDataBand.CreateUniqueName();
pDataBand.DataSet := frxDBDataset1;
pDataBand.Top := 100;
pDataBand.Height := 20;
// 将Memo 添加到DataBand 上
pMemo := TfrxMemoView.Create(pDataBand);
pMemo.CreateUniqueName();
// 连接数据
pMemo.DataSet := frxDBDataset1;
// 显示username 字段
pMemo.DataField := 'user_name';
pMemo.SetBounds(0, 0, 100, 20);