fastreport如何加入自定义函数?(高手帮帮忙吧)(100分)

  • 主题发起人 主题发起人 whxxr
  • 开始时间 开始时间
W

whxxr

Unregistered / Unconfirmed
GUEST, unregistred user!
我在网上找了大写转换函数,总共有3个
function ntoc(a:real;bool:boolean):string;
function change(a:real;bool:boolean):string;
function numtoc(c:string):string;

procedure TForm1.frReport1UserFunction(const Name: String;
p1, p2, p3: Variant; var val: Variant);
begin
if AnsiCompareText('ntoc', Name) = 0 then
val := My_Convertion_Routine(frParser.Calc(p1));
if AnsiCompareText('numtoc', Name) = 0 then
val := My_Convertion_Routine(frParser.Calc(p1));
if AnsiCompareText('change', Name) = 0 then
val := My_Convertion_Routine(frParser.Calc(p1));
end;
!
编译时总是说 My_Convertion_Routine没定义,如果将其去掉,可以编译成功。
但在文本框中调用时ntoc(111.11,false),只是显示数字,根本没转换,
你可以给我写的详细一些吗?我也看了例子和帮助文件,看不懂!你给我的和控件带的FAQ是一样的。谢谢!
 
我用了很久没有问题阿。

哎呀 人家是说要你在这里调用你自己定义的函数而已。

procedure TForm1.frReport1UserFunction(const Name: String;
p1, p2, p3: Variant; var val: Variant);
begin
try
if AnsiCompareText('ntoc', Name) = 0 then
val :=ntoc(p1);
if AnsiCompareText('numtoc', Name) = 0 then
val := numtoc(p1);
if AnsiCompareText('change', Name) = 0 then
val := change(p1);
except
end;
end;

// 说明;
const Name 就是你的函数名 fastreport 判断查找出来的
p1,p2,p3就是参数。
val 就是返回值;

这下 你可以随心所欲的了,你要想用几十个自定义函数都可以(速度有一定影响);
 
后退
顶部