版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、FastReport几个问题1.FastReport中如何共用TFrxreport及TfrxDBDataSet一个程序中,不管多么大的程序,只要打印或预览时是模式的,则完全可以共用一个TFrxreport变量及几个TfrxDBDataSet。只不过,要注意完成一个报表程序的步骤,主要是下面几步1)清除报表,得到一个全新的报表内容。Frxreport1.clear。2)设置要使用的TfrxDBDataSet的别名,如果不需要可以省略这一步,但一般最好不同的报表用不 写成函数是 2.如何打印空白处?在打印报表的Band处的OnBeforePrint事件中添加代码:while F
2、reeSpace > 20 do ShowBand(Child1) 3.如何打印指定行数后换页?在master band中OnBeforePrint事件中写代码:var vLineCount: integer;begin vLineCount := vLineCount + 1; if vLineCount = 10 then begin vLineCount := 0;
3、60; NewPage; end;end; 4.fastreport中如何把数据显示为百分比DisplayFormat属性,其中的Kind你设置成fkNumeric,FormatStr<frxDBDataset1."sjl">*100 #n%2.2f%” 5.FastReport如何打印表格式的空行?var PageLine: integer; /在現在頁列印到第幾行 PageMaxRow
4、: integer=15; /設定每頁列數 procedure MasterData1OnBeforePrint(Sender: TfrxComponent); begin PageLine := <Line> mod PageMaxRow; if (PageLine = 1) and (<line> > 1) then
5、0; Engine.newpage; child1.visible := False; end; /Footer1高度設為0 procedure Footer1OnBeforePrint(Sender: TfrxComponent); var i: integer; begin
6、 i := iif(PageLine=0, PageMaxRow, PageLine); child1.visible := True; while i < PageMaxRow do begin i := i + 1;
7、160; Engine.ShowBand(Child1); /印空白表格 end; child1.visible := False; end;beginend. 6.在首页打印本页小计,最后一页打印本页小计和合计(如果只有一页,则打印本页小计和合计) frxReport1.PrepareReport(); frxReport1.Varia
8、bles'pageQ' := pageQ; frxReport1.Variables'hander' := QuotedStr(hander); frxReport1.Variables'doubleline' := QuotedStr(StringOfChar('=', Length(hander) + 12); whName :='设备资产' frxReport1.Variables'p1' := QuotedStr('仓库:' +
9、 whName); frxReport1.Variables'p9' := QuotedStr('领用科室:' + DepName); frxReport1.Variables'p2' := QuotedStr('日期:' + ywDate); frxReport1.Variables'p3' := QuotedStr('单据号:' + VoucherNo); 在FastReport写入代码procedure ColumnFooter1OnBeforeP
10、rint(Sender: TfrxComponent);var bVisible: boolean;
11、0; begin bVisible := <Page> = <pageQ> Memo12.visible := bVisible; Memo21.visible := bVisible; Memo16.visible := bVisible; Memo14.visible := bVisible; &
12、#160; if not bvisible then begin p8.Top := 27; p7.Top := 27; p4.Top := 27; p5.Top
13、 := 27; p6.Top := 27; end else begin p8.Top := 49.46; p7.Top := 49.46; p4.Top := 49.46;
14、p5.Top := 49.46; p6.Top := 49.46; end; end;procedure Page1OnBeforePrint(Sender: TfrxComponent);var bV
15、isible: boolean;
16、160; begin bVisible := <Page> = <pageQ> if not bvisible then begin ColumnFooter1.Height:=48; end else begin
17、 ColumnFooter1.Height:=69.35; end;end;beginend. 7.加入自定义函数(1)在delphi程序中定义函数 frxReport1.AddFunction('function MoneyCn(mmje: Double): String;','Myfunction','小写金额转大写的函数'); frxReport1.OnUserFunction :=frxUserFunction;(2)在frxUserFuncti
18、on事件中加载函数function TFunComm.frxUserFunction(const MethodName: string; var Params: Variant): Variant;begin if UpperCase(MethodName) = UpperCase('MoneyCn') then Result := MoneyCn(Params0);end;(3)实现函数(数字转大写)function MoneyCn(mmje: Double): string;const s1: stri
19、ng = '零壹贰叁肆伍陆柒捌玖' s2: string = '分角元拾佰仟万拾佰仟亿拾佰仟万' function StrTran(const S, s1, s2: string): string; begin Result := StringReplace(S, s1, s2, rfReplaceAll); end;var S, dx: string; i, Len: Integer;begin if mmje < 0 then
20、0; begin dx := '负' mmje := -mmje; end; S := Format('%.0f', mmje * 100); Len := Length(S); for i := 1 to Len do dx := dx + Copy(s1, (Ord(Si) - Ord('0') * 2 + 1, 2) + Copy(s2, (Len - i)
21、60; * 2 + 1, 2); dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零仟', '零'), '零佰', '零'), '零拾', '零'), '零角', '零'), '零分', '整'); dx := StrTran(StrTran(StrTran(Str
22、Tran(StrTran(dx, '零零', '零'), '零零', '零'), '零亿', '亿'), '零万', '万'), '零元', '元'); if dx = '整' then Result := '零元整' else Resul
23、t := StrTran(StrTran(dx, '亿万', '亿零'), '零整', '整');end;(4) FastReport中引用函数如:MoneyCn(<SUM(<frxDBDataset1."M3">,MasterData1,2)>) 8.在FastReport中将两字段连接起来(用脚本实现) Trim(<frxDBDataset1."C2">)+' '+Trim(<frxDBDataset1.&q
24、uot;C3">) 9.数据栏的动态调试设置MasterData根据数据自动设置其高度(1)首先设置MasterData栏的Stretch为True (2) 再右键单击MasterData栏的各个字段,选中Stretch to Max Height即可 10.在Delphi中定义数据字段 var frxMemo: TfrxMemoView; 11.分组时打印页号,如1/1,2/1,1/2,2/2,3/2,4/2在FastReport的脚本中写入:var G
25、Page,GIndex,FGIndex:integer; PageList:array of integer;
26、; procedure PageFooter1OnBeforePrint(Sender: TfrxComponent);begin GPage := GPage + 1; FGIndex :=0;
27、60; end; procedure Page1OnBeforePrint(Sender: TfrxComponent);begin GPage :=1;
28、160; end; procedure GroupFooter1OnBeforePrint(Sender: TfrxComponent);begin if Engine.FinalPass then /二次遍历时增加分组索引 FGIndex := FGIndex + 1 else begin setLength(PageList,GIndex + 1);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全员消防安全培训活动课件
- 《税法》第3章:消费税法
- 全员参加安全培训课件
- 零零后视角下的医患关系
- 现代物流职业发展指南
- 药学专科生就业前景分析
- 光阳安全驾驶培训教程课件
- 安全生产管理红线讲解
- 消防安全与健康意识培训
- 2025-2026学年人教新课标七年级英语上册Unit 3 My School单元检测卷(含答案)
- 信息分类分级管理制度
- DB32T 5124.3-2025 临床护理技术规范 第3部分:成人危重症患者有创动脉血压监测
- 英文电影鉴赏知到智慧树期末考试答案题库2025年北华大学
- 某温室工程施工资料
- 外墙铝板维修合同协议
- CNAS-CC01:2015 管理体系认证机构要求
- 皮尔逊Ⅲ型曲线的离均系数Φ值表完整版
- 2025年湖南铁道职业技术学院单招职业技能测试题库带答案
- 2023冷库地面工程技术规程
- DB32 T538-2002 江苏省住宅物业管理服务标准
- 湖南师范大学课程毛概题库
评论
0/150
提交评论