FastReport4 动态报表制作Word格式文档下载.docx
- 文档编号:19890546
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:9
- 大小:16.47KB
FastReport4 动态报表制作Word格式文档下载.docx
《FastReport4 动态报表制作Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《FastReport4 动态报表制作Word格式文档下载.docx(9页珍藏版)》请在冰豆网上搜索。
//DataPage:
TfrxDataPage;
Page:
TfrxReportPage;
PageTitle:
TfrxReportTitle;
PageHeader:
TfrxPageHeader;
//Band:
TfrxBand;
MastData:
TfrxMasterData;
PageSummary:
TfrxReportSummary;
Memo:
TfrxMemoView;
i:
MLeft:
Real;
//表头字段在mastdata中的左边距
PaperWidth:
//纯报表(不含边距)宽度(毫米)
begin
//清除报表
FR.Clear;
//1====添加页
=TfrxReportPage.Create(FR);
Page.CreateUniqueName;
//创建唯一名称
//Page.SetDefaults;
//设置默认字段大小,
纸张
//自定义纸张大小
//Page.PaperWidth:
=210;
//纸张宽
//Page.PaperHeight:
=297;
//纸张高
Page.PaperSize:
=9;
//a4纸
Page.Orientation:
=poPortrait;
//纸张纵向
//Page.Orientation:
=poLandscape;
//纸张横向
Page.TopMargin:
=25;
//上边距
Page.BottomMargin:
=15;
Page.LeftMargin:
Page.RightMargin:
//2====添加一个报表标题栏
=TfrxReportTitle.Create(Page);
PageTitle.CreateUniqueName;
PageTitle.Top:
=0;
PageTitle.Height:
=140;
//留出空白行
//得到报表不含边距的宽度(毫米)转换为像素时需乘以3.77953
//SetBounds中用的是像素值
=(Page.PaperWidth-page.LeftMargin-page.RightMargin)*3.77953;
//添加标题memo
=TfrxMemoView.Create(PageTitle);
Memo.CreateUniqueName;
Memo.HAlign:
=haCenter;
//左右居中
Memo.VAlign:
=vaCenter;
//上下居中
Memo.Font.Size:
=14;
Memo.Text:
='
药品批发单'
;
Memo.Height:
=40;
Memo.Align:
=baWidth;
//伸展坐标到标题栏的宽度
//摘要第一行
=haLeft;
单号:
'
+LEdit_dh.Hint;
=20;
Memo.Frame.Typ:
=[ftLeft,ftRight,ftTop,ftBottom];
//显示边线
Memo.SetBounds(0,60,PaperWidth/3,20);
//
单位:
+LEdit_dwmc.Text;
Memo.SetBounds(PaperWidth/3,60,PaperWidth/3,20);
批发金额:
+LEdit_SumPfj.Text;
Memo.SetBounds(PaperWidth/3*2,60,PaperWidth/3,20);
//摘要第二行
结算方式:
+LEdit_jsfsmc.Text;
Memo.SetBounds(0,80,PaperWidth/3,20);
制单人:
+LEdit_zdr.Text;
Memo.SetBounds(PaperWidth/3,80,PaperWidth/3,20);
制单日期:
+LEdit_zdrq.Text;
Memo.SetBounds(PaperWidth/3*2,80,PaperWidth/3,20);
//摘要第三行
操作员:
+UserName;
Memo.SetBounds(0,100,PaperWidth/3,20);
打印日期:
+DateToStr(Date)+'
^^^'
+TimeToStr(GetTime);
Memo.SetBounds(PaperWidth/3,100,PaperWidth/3,20);
Memo.SetBounds(PaperWidth/3*2,100,PaperWidth/3,20);
//=3==添加Pageheader
(表头)
=TfrxPageHeader.Create(Page);
PageHeader.CreateUniqueName;
//PageHeader.Top:
=PageTitle.Height+120;
//其总是紧随PageTitle之后
PageHeader.Height:
=20;
//添加表头memo
fori:
=0toADOQ_List.FieldCount-1do
Begin
=TfrxMemoView.Create(PageHeader);
//上下对齐
Memo.Frame.TopLine.Style:
=fsSolid;
Memo.Frame.BottomLine.Style:
Memo.Frame.LeftLine.Style:
Memo.Frame.RightLine.Style:
//边线格式
Memo.Text:
=Trim(ADOQ_List.Fields[i].FieldName);
ifi<
ADOQ_List.FieldCount-1then
Memo.SetBounds(MLeft,0,Prn_FieldWidth[i]*7.5,20);
End
Else
Begin//最后一列时
页面剩余宽度都给他
Memo.SetBounds(MLeft,0,PaperWidth-MLeft,20);
End;
=MLeft+Prn_FieldWidth[i]*7.5;
//下一列左起位置
//4=====主数据
(记录)
=TfrxMasterData.Create(Page);
MastData.CreateUniqueName;
MastData.Top:
=PageTitle.Height+PageHeader.Height;
MastData.Height:
MastData.DataSet:
=frDB;
//添加
memo
=TfrxMemoView.Create(MastData);
//Memo.HAlign:
Memo.DataSet:
Memo.DataField:
//5=====页尾
=TfrxReportSummary.Create(page);
PageSummary.CreateUniqueName;
PageSummary.Height:
//添加summarymemo
=TfrxMemoView.Create(PageSummary);
Memo.Top:
Memo.Left:
=10;
=MyCompany.Name;
FR.DesignReport();
exit;
//显示报表
FR.ShowReport;
end;
自定义函数代码:
//===============================================================
//====得到欲打印的查询结果中各字段的最长值,结果保存在Prn_FieldWidth======
//================================================================
ProcedureGetPrnFieldWidth(MyADOQ:
TADOQuery);
FindSql:
String;
SetLength(Prn_FieldWidth,MyADOQ.FieldCount);
//先使表头字段宽度等于标题宽度
fori:
=0toMyADOQ.FieldCount-1do
//ADOQ_List.Fields[i].FieldName
默认为宽字符型
widestring,用length只能取得其字符长度
//用Pchar可将其转换为AnsiString类型,这样length可以取得其字节长度
Prn_FieldWidth[i]:
=Length(Pchar(Trim(MyADOQ.Fields[i].FieldName)));
MyADOQ.Next;
//再用查询结果各字段结果长于标题着替换
='
SELECTMax(Datalength('
+Trim(MyADOQ.Fields[i].FieldName)+'
))as
字段最长值'
+'
FROM('
+MyADOQ.SQL[0]+'
)DERIVEDTBL'
DM.ADOQ_Find.Close;
DM.ADOQ_Find.SQL.Clear;
DM.ADOQ_Find.SQL.Add(FindSql);
DM.ADOQ_Find.Open;
ifDM.ADOQ_Find.RecordCount>
0then
ifStrToInt(DM.ADOQ_Find.FieldByName('
).AsString)>
Prn_FieldWidth[i]then
=StrToInt(DM.ADOQ_Find.FieldByName('
).AsString);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FastReport4 动态报表制作 动态 报表 制作
![提示](https://static.bdocx.com/images/bang_tan.gif)