to zbdzjx: 因为我这个是fastreport中的分页小计,金额是动态的,在程序里没法获取,只能在fastreport里进行动态转换。
那就只能将程序中的转换函数代码放到fastreport中了,而且不一定能完全执行,要试试。
to zbdzjx: 那就只能将程序中的转换函数代码放到fastreport中了,请问转换函数如何放到fastreport中呢?谢谢
一、unit上定义、实现函数 function CN_rmb(Num:string):WideString;//人民币大写转换function CN_rmb(Num: string): WideString; begin //人民币大写转换实现 end;二、datamodule事件onCreate添加函数 procedure TDM.DataModuleCreate(Sender: TObject); //需在UserFunction处定义函数 begin frxReport.AddFunction('function CN_rmb(Num:string):WideString;','Myfunction1','人民币中文大写转换'); //Myfunction1为名字也可其它 end;三、frxReport事件onUserFunction定义函数 function TDM.frxReportUserFunction(const MethodName: string; var Params: Variant): Variant; begin if UpperCase(MethodName) = UpperCase('cn_rmb') then Result:=CN_rmb(Params[0]); end;四、报表中使用:[cn_rmb(<frxDBDataset1."tax_total">)]
to gxgyj: function SmallToBig(NN:Real):AnsiString;//人民币大小写转换 你好,按照你的办法,但是在第四步:[SmallToBig(<frxDBDataset1."tax_total">)] 但是运行后,没有任何反映呀。memo显示是空的
直接在fastreport里这么写?
[SmallToBig(<sum(frxDBDataset1."tax_total")>)]
根本不行呀
因为我这个是fastreport中的分页小计,金额是动态的,在程序里没法获取,只能在fastreport里进行动态转换。
那就只能将程序中的转换函数代码放到fastreport中了,请问转换函数如何放到fastreport中呢?谢谢
function CN_rmb(Num:string):WideString;//人民币大写转换function CN_rmb(Num: string): WideString;
begin
//人民币大写转换实现
end;二、datamodule事件onCreate添加函数
procedure TDM.DataModuleCreate(Sender: TObject); //需在UserFunction处定义函数
begin
frxReport.AddFunction('function CN_rmb(Num:string):WideString;','Myfunction1','人民币中文大写转换'); //Myfunction1为名字也可其它
end;三、frxReport事件onUserFunction定义函数
function TDM.frxReportUserFunction(const MethodName: string;
var Params: Variant): Variant;
begin
if UpperCase(MethodName) = UpperCase('cn_rmb') then
Result:=CN_rmb(Params[0]);
end;四、报表中使用:[cn_rmb(<frxDBDataset1."tax_total">)]
function SmallToBig(NN:Real):AnsiString;//人民币大小写转换
你好,按照你的办法,但是在第四步:[SmallToBig(<frxDBDataset1."tax_total">)]
但是运行后,没有任何反映呀。memo显示是空的