Function CutString(SrcString:string;n:integer;Pattern:String):string;是我定义的函数。
问:
TfrxMemoView.Create(theReport).Text :=  '[CutString(<frxDBDatasetPrint."as">,1,'''+'|'''+')]';
这样写对么?引号有没写错,我是要cutstring(字段内容,1,'|')这样的效果。哪位帮忙看看。

解决方案 »

  1.   

    先定义报表的单个函数:
        //---为报表准备的函数
        function ChinaDate(Sdate:Tdatetime):string;
        function GetWorkerName(Number:string):string;
        function GetPrinter(Number:string):string;
        //---为报表准备的函数
    ...
    分开实现上述三个函数:function TFrm1.ChinaDate(Sdate: Tdatetime): string;
    begin
    ...
    end;function TFrm1.GetWorkerName(Number: string): string;
    begin
    ...
    end;function TFrm1.GetPrinter(Number:string): string;
    begin
    ...
    end;最后在frReport中的UserFunction事件定义各事件:
    procedure TFrm1.frReportPrintUserFunction(const Name: String; p1, p2,
      p3: Variant; var Val: Variant);
    begin
      if AnsiCompareText('UpperDate', Name) = 0 then Val:=ChinaDate(frParser.Calc(p1));
      if AnsiCompareText('WorkerName', Name) = 0 then Val:=GetWorkerName(frParser.Calc(p1));
      if AnsiCompareText('Operater', Name) = 0 then Val:=GetPrinter(frParser.Calc(p1));
    end;