开发人员指南

上传人:j****9 文档编号:47743168 上传时间:2018-07-04 格式:PDF 页数:137 大小:1.09MB
返回 下载 相关 举报
开发人员指南_第1页
第1页 / 共137页
开发人员指南_第2页
第2页 / 共137页
开发人员指南_第3页
第3页 / 共137页
开发人员指南_第4页
第4页 / 共137页
开发人员指南_第5页
第5页 / 共137页
点击查看更多>>
资源描述

《开发人员指南》由会员分享,可在线阅读,更多相关《开发人员指南(137页珍藏版)》请在金锄头文库上搜索。

1、- 1 - FastReport 2.4 开发人员指南 - 2 - FastReport 开发人员指南中文版 说明 1、格式说明 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - FastReport开发人员指南中文版文档格式使用 PDF 格式,阅读需要 Adobe Acrobat Reader 5中文简体版。 下载地址:http:/ - - -

2、- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2、申明 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 我

3、们工作的目的仅为大家的研究学习提供方便,以提高软件开发水平 ! 该电子文档不得用于商业目的,否则责任自负。 这份文档只能作为参考使用,因为水平和时间所限,并且几个主要的翻译人员都没有很详细 的使用过 Fastreport甚至从来没有接触过 Fastreport,所以在词句的表达上可能和原文存在差 异,实际上,我们几乎可以确认文档中必定存在不易理解或翻译错误的地方:) 但可以肯定的是所有参与翻译工作的人员都必定是认真而严肃的在工作的,那些可能存在 错误不是主观造成的。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

4、- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3、缺陷报告 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 如果你在其中发现有字词标点错误,格式不一致,翻译错误等缺陷或者其他建议请向 : 报告。我将尽力修正错误。

5、 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 4、衷心感谢 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

6、- - - - - - FastReport开发人员指南中文版的诞生主要是因为厦门翰都软件有限公司的工作需要, 在网上发布一部分初稿后,几位来自 Delphi大富翁论坛的网友协助完成了部分工作。 所有参与翻译工作的人员名单如附: 薛国顺 (京工之鸟) 张礼涛 大富翁网友 IsABC 大富翁网友 dingxilin 大富翁网友 zhanzehua 大富翁网友 redfox 大富翁网友 GZCYP 大富翁网友 xiao_q654321 大富翁网友 hegyi - 3 - FastReport 常见问题问答 - - - - - - - - - - - - - - - - 使用自定义函数 - - -

7、- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 问: 我怎样才可以自己添加函数? 答: 用 TfrReport.OnUserFunction事件。简单的范例如下: procedure TForm1.frReport1UserFunction(const Name: String; p1, p2, p3: Variant; var val: Variant); begin if AnsiCompareText(SUMTOSTR, Name) = 0 then val := My_Convertio

8、n_Routine(frParser.Calc(p1); end; 然后你就可以在报表中使用 SumToStr函数:) 问: Ok, 但是这个函数仅仅在一个 TfrReport组件中其作用.可以让这个函数在所有的 TfrReport组件中都能使用吗? 答: 给所有报表组件的 OnUserFunction事件赋句柄:)如果你不想这么干的话,你就 只好创建一个函数库了: type TMyFunctionLibrary = class(TfrFunctionLibrary) public constructor Create; override; procedure DoFunction(FNo:

9、Integer; p1, p2, p3: Variant; var val: Variant); override; end; constructor TMyFunctionLibrary.Create; begin inherited Create; with List do begin Add(DATETOSTR); Add(SUMTOSTR); end; end; procedure TMyFunctionLibrary.DoFunction(FNo: Integer; p1, p2, p3: Variant; var val: Variant); begin val := 0; cas

10、e FNo of 0: val := My_DateConvertion_Routine(frParser.Calc(p1); 1: val := My_SumConvertion_Routine(frParser.Calc(p1); end; - 4 - end; 注册函数库可以调用: frRegisterFunctionLibrary(TMyFunctionLibrary); 同样,取消注册可以用: frUnRegisterFunctionLibrary(TMyFunctionLibrary); 问: 怎样可以把自定义函数增加到函数列表中去? 答: 用 frAddFunctionDesc过

11、程(在 FR_Class单元中): frAddFunctionDesc(FuncLib, SUMTOSTR, My functions, SUMTOSTR()/Converts number to its verbal presentation.); 注意: “/“符号是必需的!它标示了哪段是函数的声明部分哪段是描述部分. FuncLib 指向你的函数库(可以为 nil如果你没有使用函数库的话),当函数库取消注册时, 它包含的所有函数自动从函数列表中移出。 - - - - - - - - - - - - - - - - 使用变量 - - - - - - - - - - - - - - - -

12、- - - - - - - - - - - - - - - - - - - - - 问:怎样在程序中给数据字典的变量列表赋值? 答:数据字典中的所有分类和变量都可以用 TfrReport.Dictionary.Variables来访问存取。 with frReport1.Dictionary do begin / creating category (space in category name required!) Variables New category := ; / creating variables VariablesNew Variable := CustomerData.Cu

13、stomers.“CustNo“; VariablesAnother Variable := Page#; end; 问:我自定义了一个变量并赋了一个字符串值给它, with frReport1.Dictionary do VariablesMonth := March; 但当我运行报表时却出错,为什么? 答:因为 FastReport把你赋给变量的值当作了一个需要解析和计算的表达式。你可以加一个引 号上去: with frReport1.Dictionary do VariablesMonth := + March + ; 或者,用 frVariables来传递静态的值给报表。 问:有什么办

14、法可以不要把所有的数据集都显示在数据字典中? 答:用 TfrReport.Dictionary.DisabledDatasets: - 5 - with frReport1.Dictionary do begin / turn of this dataset DisabledDatasets.Add(CustomerData.Bio); / or, turn off entire datamodule/form DisabledDatasets.Add(CustomerData*); end; 问:怎样传递数据给报表? 答:有几种方法都可以实现,第一个方法是使用全局对象 frVariables

15、(定义在 FR_Class单元中 的) frVariablesMy variable := 10; 这行代码用 My variable 作为名字创建一个新变量并赋值为 10。 这是传递静态数据给报表的最好方法。 第二个方法是用 TfrReport.OnGetValue 事件。可以用这个方法来传递动态数据,比如值随着 记 录的不同而改变的数据。 procedure TForm1.frReport1GetValue(ParName: String; var ParValue: Variant); begin if ParName = MyField then ParValue := Table1M

16、yField.Value; end; 最后,第三种方法是用代码在数据字典中定义变量(可参考上面的问题): with frReport1.Dictionary do begin VariablesMyVariable := CustomerData.Customers.“CustNo“; VariablesAnother Variable := 10; end; 问:可以从报表中传递数据给程序吗? 答:用 frVariables对象,如果在报表中任意一个对象的脚本里有写下面的代码: MyVariable := 10 在程序中可以用如下的代码来获取 MyVariable 变量的值: v := frVariables

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号