lazreport對報表變量賦值使用GetValue方式,這方式不直觀簡便。
procedure TForm1.frReport1GetValue(const ParName: String; var ParValue: Variant ); begin if ParName='aa' then Parvalue:='測試'; end;
一、修改步驟:
對lazreport增加SetCustomVariables功能。
打開lr_class.pas
在1283行增加:
procedure SetVariables(vName:string;V: Variant);
在10704行增加:
procedure TfrReport.SetVariables(vName:string;V: Variant); var i,k:Integer; s:String; begin for k:=0 to Pages.Count-1 do begin for i:=0 to Pages[k].Objects.Count-1 do Begin s:=trim(TfrObject(Pages[k].Objects[i]).Memo.Text); if pos(vName,s)>0 then begin s:=s.Replace('['+vName+']',VartoStr(v),[rfReplaceAll, rfIgnoreCase]); if v.Types TfrObject(Pages[k].Objects[i]).Memo.Text:=s; Break; end; end; end; end;
保存并重新編譯lazreport就可以。
二、使用方法:
procedure TForm1.Button1Click(Sender: TObject); begin frReport1.SetVariables('aa','客運中心'); frReport1.ShowReport; end;
報表模板:
報表預覽:


浙公網安備 33010602011771號