我使用fastreport的自定义函数 在报表中调用我的函数却是空 各位看看
function StrTran(const S, s1, s2: string): string;
begin
Result := StringReplace(S, s1, s2, [rfReplaceAll]);
end;
function TForm1.MoneyConvert(mmje: real): string;
var
S, dx: string;
i, Len: Integer;
begin
if mmje < 0 then
begin
dx := '负';
mmje := -mmje;
end;
S := Format('%.0f', [mmje * 100]);
Len := Length(S);
for i := 1 to Len do
dx := dx + Copy(s1, (Ord(S[i]) - Ord('0')) * 2 + 1, 2) + Copy(s2, (Len - i)* 2 + 1, 2);
dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零仟', '零'), '零佰','零'),'零拾', '零'), '零角', '零'), '零分', '整');
dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零零', '零'), '零零','零'),'零亿', '亿'), '零万', '万'), '零元', '元');
if dx = '整' then
Result := '零元整'
else
Result := StrTran(StrTran(dx, '亿万', '亿零'), '零整', '整');
end;function TForm1.frxReport1UserFunction(const MethodName: String;
var Params: Variant): Variant;
begin
if MethodName='MoneyConvert' then
Result:=MoneyConvert(Params[0]) ;end;procedure TForm1.Button1Click(Sender: TObject);
begin
frxReport1.AddFunction('function MoneyConvert(mmje:real): string;');frxReport1.ShowReport();
end;我在报表中memo1的内容是[moneyconvert(500.00)]
报表显示后是空!
function StrTran(const S, s1, s2: string): string;
begin
Result := StringReplace(S, s1, s2, [rfReplaceAll]);
end;
function TForm1.MoneyConvert(mmje: real): string;
var
S, dx: string;
i, Len: Integer;
begin
if mmje < 0 then
begin
dx := '负';
mmje := -mmje;
end;
S := Format('%.0f', [mmje * 100]);
Len := Length(S);
for i := 1 to Len do
dx := dx + Copy(s1, (Ord(S[i]) - Ord('0')) * 2 + 1, 2) + Copy(s2, (Len - i)* 2 + 1, 2);
dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零仟', '零'), '零佰','零'),'零拾', '零'), '零角', '零'), '零分', '整');
dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零零', '零'), '零零','零'),'零亿', '亿'), '零万', '万'), '零元', '元');
if dx = '整' then
Result := '零元整'
else
Result := StrTran(StrTran(dx, '亿万', '亿零'), '零整', '整');
end;function TForm1.frxReport1UserFunction(const MethodName: String;
var Params: Variant): Variant;
begin
if MethodName='MoneyConvert' then
Result:=MoneyConvert(Params[0]) ;end;procedure TForm1.Button1Click(Sender: TObject);
begin
frxReport1.AddFunction('function MoneyConvert(mmje:real): string;');frxReport1.ShowReport();
end;我在报表中memo1的内容是[moneyconvert(500.00)]
报表显示后是空!
解决方案 »
- 请问怎样做一个接口呢
- report模式下ListView怎么显示的列比我想要的多一列?
- 1000分,请你增长见识,当然还要讨论哦...
- 一个自己做DLL的问题!!!触发异常啊,大家来帮忙,看看啦!!!
- 用ShellExecute打开文件后,如何再将打开的文件关闭?
- 关于COM技术
- 小弟想了解一下有关delphi串口编程的知识,我可是一点也不懂啊,能举个例子让我实现一下就更好了!
- delphi listview如何获取可见部分的列号
- 谁能给我这样的原码...在对数据库进行查询的时候显示一个等待画面,上面有一个动画(一个放大镜在移动)。。。大家一定都见过吧。收到原码后再加分。
- ◆◆◆Delphi中,三层数据库的多表更新问题?◆◆◆
- 大虾救命:我写一个EXE对其他EXE程序自动填表(SENDKEYS),但是,我改成ACTIVEX后,能找到外部的EXE,但是,SENDKEY无效了!
- 用Delphi做管理系统时的用户权限设置问题
if parname='money' then
patvalue:=MoneyConvert(Params[0]);
memo1的内容是[money]
if parname='money' then
parvalue:=MoneyConvert(Params[0]);
memo1的内容是[money]