我在网上找了大写转换函数,总共有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是一样的。谢谢!

解决方案 »

  1.   

    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 := ntoc(frParser.Calc(p1), frParser.Calc(p2));
         if AnsiCompareText('numtoc', Name) = 0 then
           val := numtoc(frParser.Calc(p1));
         if AnsiCompareText('change', Name) = 0 then
           val := change(frParser.Calc(p1), frParser.Calc(p2));
       end;
    !報表中:
        [ntoc([DataSet."FieldName"], [DataSet."FieldName"])] 或
        [ntoc(報表變量, 報表變量)]   
       
        [numtoc([DataSet."FieldName"])]
        
        [change()]//同ntoc