我的fastreport报表的其中一部分内容动态改变,又不知道其中的值,要生成报表时运算后才能得到,应该在什么事件中处理?给点示例.还有怎样让报表的控件根据需要显示和不显示?

解决方案 »

  1.   

    OnGetValue事件中,如下所示,主要判断ParName,再设定ParValue就可以。procedure TProdChargeAnalyse.frReport1GetValue(const ParName: String;
      var ParValue: Variant);
    var
      nPar:integer;
    begin
      for nPar:=1 to 12 do
      begin
        if ParName='lbl_'+IntToStr(nPar) then
        begin
          if nPar<10 then
            ParValue:=IntToStr(SpinEdit1.Value)+'/0'+IntToStr(nPar)
          else
            ParValue:=IntToStr(SpinEdit1.Value)+'/'+IntToStr(nPar);
          Exit;
        end;    if ParName=('qMain."col_'+IntToStr(nPar)+'"') then
        begin
          if qMain.FieldByName('col_'+IntToStr(nPar)).AsFloat=0 then
          begin
           ParValue:='';
           Exit;
          end;
        end;
      end;
    end;