fastreport中没有求记录总数的变量或函数,我想加一个这样的变量,应该修改源码的哪些地方
解决方案 »
- 找不到TClientSocket和TServerSocket控件啊?
- 求算法哦!救命用!关于年月日转化为天数,要求判断闰年!
- 如何让一个文件夹隐形
- 奇怪的地方是:同一个属性值改过后再改回来就不行!!!请帮手,在线等…
- 应用程序的输入法问题
- 模糊查询
- 我怎么能把查询来的内容添加到ComboBox1里去呢?
- 怎样对XML数据记录直接进行读取、修改、添加等等数据集操作。[急]
- ListView的快捷菜单怎么在会在右键MouseDown时弹出呢?
- 特急!!!请问新建一个Report时CorIde40.bpl地址出错,怎么办?事关小第的饭碗!!!!!
- mdi子窗口下EDIT控件的回车事件问题
- 通过xml描述生成界面的控件
在报表中插入一个报表合计栏,里面放一个memo.点击"插入合计",选择函数count,选择你的数据band的名字,然后ok,就成了比如
[COUNT(MasterData1)]
procedure TForm1.frReport1GetValue(const ParName: String;
var ParValue: Variant);
begin
if ParName = 'nCount' then
ParValue := ReCount;
end;
这样是可以实现,但要写代码,所以我想加一个系统变量,这样就不用写代码了
AddFunctionDesc('MONEYCONVERT', 'JEDX', 'MoneyConvert( <Number>)/返回金额的中文大写.');
1)、打开FR目录下的fr_Calss.pas文件,然后找到
constructor TfrStdFunctionLibrary.Create
看到一个个系统原带函数名称没? 看到了就依样写上一句 Add('AMTINWORD');
然后往下快到End附近的时候,看到添加入口的语句没?
加上一句
AddFunctionDesc('AMTINWORD', '金额大写', 'AmtInWord( <Number>)/返回金额的中文大写.');
这样到时在报表设计器里面就可以看到 有一个金额大写的分类,里面有AMTINWORD函数。 2)、找到procedure TfrStdFunctionLibrary.DoFunction(FNo: Integer; p1, p2, p3: Variant;
var val: Variant); 过程 在 Case语句里面加上一句,注意,语句的CASE入口“22” 是 上面的 Add('AMTINWORD')的ItemIndex号码,从0开始数数看,是不是22,否则改成正确的。
22: Val := AmtInCnWord(frParser.Calc(p1)); 3)、在FR_Utils.pas单元中添加上下面的函数,函数的内容随便你写了。Function AmtInWord(Num:Double):String;
按照如此步骤可以在fastreport的源码中加自定义函数,也可以使用,可在fastreport的函数列表中并没有出现我的函数,不知为何