FastReport设计相关技巧.docx
- 文档编号:24369347
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:17
- 大小:476.43KB
FastReport设计相关技巧.docx
《FastReport设计相关技巧.docx》由会员分享,可在线阅读,更多相关《FastReport设计相关技巧.docx(17页珍藏版)》请在冰豆网上搜索。
FastReport设计相关技巧
1、打印套版功能介绍:
如何实现连打以及选择打印机?
如下图所示:
1)查询数据:
选择多张单据进行连打;
2)是否选择打印机:
是:
打印时会弹出选择打印机的窗口;
否:
打印时会存储为XPS格式的文档。
XPS是一种版面配置固定的电子文件格式,可以保存文件格式,而且具有档案共享的功能。
在在线检视或打印XPS档案时,可以确保其格式与您希望的一样,而且其它使用者无法轻易变更档案中的数据。
2、FASTREPORT中一些常用属性的介绍及用法?
页面属性说明:
PrintOnPreviousPage:
本页可否打印在上页的剩余空间。
应用举例:
多张连打时,如果上页还有空间,如何将下页接着打印?
设置PrintOnPreviousPage为True.
头属性说明:
AllowSplit:
页面内容是否可跨页打印。
ReprintOnNewPage:
在每页重复打印。
应用举例:
表头内容要在每页都显示(包括LOGO)?
设置:
ReprintOnNewPage为True.
主数据域属性说明:
RowCount:
控制总共打印几行;RowCount=0是打印全部;
StartNewPage:
打印前先跳页;每页打印一行;
Stretch:
表身自动伸缩根据表身内容;
应用举例:
单据中有多行数据,但预览时每页只看到一行,且只有一页有显示?
或者打印内容行与行之间有间隔?
设置RowCount=0,StartNewPage为False;Stretched为True.
3、一些常用的属性说明?
明细数据域的一些常见属性说明:
AutoWidth:
自动调整文本的宽度;
Datafield:
数据库的字段名称;
DataSet:
连接至数据库;
DisplayFormat:
数据显示格式
应用举例:
在打印的金额或数量的小数位数?
%2.2f:
显示两位小数;
%2.3f:
显示三位小数位。
FlowTo:
对象内容无法容纳时显示至其它对象;选择显示至的对象。
HideZeros:
数字前面的0是否显示。
应用举例:
当栏位的值为零时显示为空?
设置HideZeros为True
Rotation:
旋转文本。
StretchMode:
对象伸缩的行为;
WordWrap:
文本是否自动换行;
应用举例:
表身栏位数据很长时,如何自动调整行高,自动换行?
1)选择数据单元进行群组;
2)StretchMode为smMaxHtight;WordWrap为True.
SuppressRepeated:
重复的值不打印,显示为空。
Underlines:
文本对象下划线;
URL:
统一资源定位,可输入网址,预览时点击即可打开网页。
4、如何打印合计?
解决方案:
每页合计:
将定义好的合计函数放到‘栏尾’中即可。
全表合计:
将定义好的合计函数放到‘报表合计’中即可。
5、如何将小写转换为大写,例如将金额由数字转换为大写?
解决方案:
大小写转换:
在报表设计中使用函数:
ConbertNumToChinese()
6、如何在套版中插入图片?
解决方案:
插入图片:
7、常用变量介绍
解决方案:
公司变量:
COMPNO:
帐套代号
NAME:
帐套名称
操作员变量:
用户代号:
当前登陆系统的用户的代号
用户名称:
当前登陆系统的用户的名称
单据录入人名称:
单据制单人
单据审核人名称:
单据终审人
系统变量:
Date:
自动抓取当前系统的日期(年月日)
Time:
自动抓取当前系统的时间(时分秒)
Page:
当前页码
TotalPages#:
总页数
Line#:
总行数
8、FastReport打印固定行数,不足补空白行。
解决方案:
1)写入下列代码:
var
PageLine:
integer;//在现在页列印到第几行
PageMaxRow:
integer=7;//设定每页列数
procedureFooter1OnBeforePrint(Sender:
TfrxComponent);
var
i:
integer;
begin
i:
=iif(PageLine=0,PageMaxRow,PageLine);
whilei i: =i+1; Engine.ShowBand(Child1);//印空白表格 end; end; procedureMasterData1OnBeforePrint(Sender: TfrxComponent); begin PageLine: = if(PageLine=1)and( Engine.newpage; end; begin end. 其中procedureMasterData1OnBeforePrint(Sender: TfrxComponent);中的MasterDate1是和套版表身所在栏对应 2、如果要把表头也带下来,那么需要把REPRINTONNEWPAGE勾给打上. 2)进行设置: *单据内容补空白,项次则显示全部 (1)语句如下: var PageLine: integer;//在现在页列印到第几行 PageMaxRow: integer=15;//设定每页列数 procedureFooter1OnBeforePrint(Sender: TfrxComponent); var i: integer; begin i: =iif(PageLine=0,PageMaxRow,PageLine); whilei i: =i+1;memo45.text: =inttostr(i); Engine.ShowBand(Child1);//印空白表格 end; end; procedureMasterData1OnBeforePrint(Sender: TfrxComponent); begin PageLine: = if(PageLine=1)and( Engine.newpage; memo19.text: =inttostr(PageLine); end; begin end. (2)图片 9、打印条形码? 解决方案: 首先,在相应单据自定义“条码”栏位 SELECTBar_CodeFROMPRDTWHEREPRD_NO=: PRD_NO 然后,在套版设计中如下操作即可: 10、每页小计,最后页合计 1)设置为两次报表(报表计算两次) 2)设置小计合计栏位,表尾要用PageFooter 3)脚本语句: procedureMemo3OnBeforePrint(Sender: TfrxComponent); var page: integer= totalpage: integer= begin if(page=totalpage)then memo3.visible: =true; end; begin end.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FastReport 设计 相关 技巧