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号
浙公网安备 33010602011771号