fastreport 动态打印 dbgrid 里面数据,  现在我想只打印后面的数据,不打印前面两条数据,具体程序是这样的:procedure TqueryForm.frReport1GetValue(const ParName: String;
  var ParValue: Variant);
begin
  if ParName = 'Cell' then
    ParValue := dbgrid4.Fields[frUserDataset1.RecNo].Value;
  if ParName = 'Header' then
    ParValue := dbgrid4.Fields[frUserDataset2.RecNo].FieldName;
end;procedure TqueryForm.BitBtn11Click(Sender: TObject);
begin
  frUserDataset1.RangeEndCount := dbgrid4.FieldCount;
  frUserDataset2.RangeEndCount := dbgrid4.FieldCount;
  frReport1.ShowReport;
end;
用到控件里的:   frreport,frdbdataset  ,, fruserdataset1,   fruserdataset2, 
                fruserdataset1, 2设置为: rangebegin: rbfirst   rangeend  rbcount
现在的问题是只想打印后面的数据(除前两条);不通过设置数据源来不显示前面两列。
列可能是3列,也可能是30列。

解决方案 »

  1.   

    楼主可不可以发你这个程序给我看看...~!
    [email protected]
    谢谢~!
      

  2.   

    我没试过,你看看
    procedure TqueryForm.frReport1GetValue(const ParName: String;
      var ParValue: Variant);
    begin
      if ParName = 'Cell' then
        ParValue := dbgrid4.Fields[frUserDataset1.RecNo +2].Value;
      if ParName = 'Header' then
        ParValue := dbgrid4.Fields[frUserDataset2.RecNo+2].FieldName;
    end;procedure TqueryForm.BitBtn11Click(Sender: TObject);
    begin
      frUserDataset1.RangeEndCount := dbgrid4.FieldCount - 2;
      frUserDataset2.RangeEndCount := dbgrid4.FieldCount - 2;
      frReport1.ShowReport;
    end;