Fastreport使用经验

  • 格式:pdf
  • 大小:117.57 KB
  • 文档页数:21

下载文档原格式

  / 21
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Fastreport使用经验

[FORMATDATETIME('mm-dd', [IBqryShipDate."CLOSEDATE"])] [FORMATDATETIME('mm/dd/yy', [IbqryOrderForm."ORDERDATE"])]

金额总计:[FORMATFLOAT('#########0.00', [TotalAmount])] [FORMATFLOAT('#,##0.00',[qryDetail."JinE"])]

订单数量:[COUNT(band1)]

数量合计:[SUM([IBqryShipDate."QUANTITY"])]

婚否:[IF([IbqryPersonal."ISMARRIAGED"]=1, '是', '否')]

[IF([qryData."CLOSEDATE"]=0,'',[FORMATDATETIME('yyyy-mm-dd', [qryData."CLOSEDATE"])])]

[IF([qryCustoms."EXPORTDATE"]=0,'',[DateEngStyle([qryCustoms."EXPORTDATE"])])] [IF([qryPrints."TOTAL1"]=0,'',[qryPrints."TOTAL1"])]

[IF([qryPrint."CURDATE"]=0,'',[FORMATDATETIME('mm-dd',[qryPrint."CURDATE"])])] [IF([qryPrint."STYPE"]='0', [Ban], [Huo])]

[Copy([qryData."WASHMETHOD"],1,8)]

while iCount < 4 do

begin

ShowBand(Child1);

iCount := iCount + 1;

end;

begin

if FreeSpace < SubBand1.Height then

NewPage

else

begin

iTotal10 := iTotal10 + 1;

if iTotal10 > 10 then

NewPage;

end;

end

在Delphi程序中访问报表对象

最基本的方法就是frxReport1.FindObject。然后把返回的对象强制转换成它的类型,当然,在报表中必须真的有这么个东东。如改变一个Tfrxmemoview的内容,可以这样写TfrxMemoView(frxReport1.FindObject('memo1')).Text:='jade';

还可以用TfrxReportPage的FindBand方法,这个方法的参数是Band类,如报表抬头就可以直接使用这个方法,因为抬头一个页中只有一个,如果有多个同样的类。则不能使用这种方法。如果要使用TfrxreportPage,一般可以用这样的代码

TfrxReportPage(frxReport1.Pages[0])。当然,如果你的这个页是对话框型的,则不行了。但一般都是报表型的。

******使用上下标

在Fastreport中使用上下标是很简单的,只要用一个Tfrxmemoview,把AllowHTMLTags 属性设为真,就可以使用网页标签来实现上下标了,如

122与243。就分别是2为上标,3为下标。

******打印页码

打印页码是很简单的,只要加入一些常量即可,如打印第几页共几页就可以使用

第[Page#]页共[TotalPages#]页

这里要注意的一点是如果想正确显示总页数,必须选中二次报表。

******动态建立变量及变量组

建立变量组名

:=' '+变量组名;

建立变量名

frxreport1.Variables.AddVariable('组名,如果为不存的组或空,则为默认组,这里不需要空格',变量名,变量初始值);

例如要建立变量组Yuan,二个变量Yuan1,Yuan2,则为

:=' Yuan';注意前面是空格

frxreport1.Variables.AddVariable('Yuan',Yuan1,初始值)

frxreport1.Variables.AddVariable('Yuan',Yuan2,初始值)

******共用TFrxreport及TfrxDBDataSet

一个程序中,不管多么大的程序,只要打印或预览时是模式的,则完全可以共用一个TFrxreport变量及几个TfrxDBDataSet。只不过,要注意完成一个报表程序的步骤,主要是下面几步:

1)清除报表,得到一个全新的报表内容。

Frxreport1.clear。

2)设置要使用的TfrxDBDataSet的别名,如果不需要可以省略这一步,但一般最好不同的报表用不同的别名。

注意这一步要在加载报表文件之前,因为一般设计报表文件时已经包含了别名信息。erName:=别名;

3)加载报表或动态建立一个TfrxReportPage。

Frxreport1.LoadFromFile(报表文件的完整文件名);

4)关联TfrxDBDataSet与TDataset,并设置要使用哪些TfrxDBDataSet。

Frxreport1.DataSets.Clear;//先清除原来的数据集

frxDBDataSet1.DataSet:=dataset1;//关联Fastreport的组件与TDataset数据集。Frxreport1.DataSets.Add(frxDBDataSet1);//加载关联好的TfrxDBDataSet到报表中。经过这几步后,就可以像单独使用一个Tfrxreport一样使用共用的报表组件了。

******加入自定义函数

Fastreport可以自己加入需要的函数,来实现特定的功能。过程就是:

1)添加函数到报表中。

frxreport1.AddFunction('完整的函数声明');

如有一个自定义函数,为GetName(Old:String):String;这个函数通过数据集的一个字段,得到另一个返回值。

则语句为:frxreport1.AddFunction('Function GetName(Old:String):String;');

2)脚本中使用函数。

在脚本中或报表中使用自定义函数,就像使用其它Fastreport内置函数一样。

3)程序中处理函数。