procedure TPrintLbl.Button1Click(Sender: TObject);
begin
frUserDataset1.RangeEnd := reCount;
frUserDataset1.RangeEndCount := QueryGrid.RowCount ;
frReport1.ShowReport;
end;procedure TPrintLbl.frReport1GetValue(const ParName: String;var ParValue: Variant);
var i : integer;
begin
if trim(ParName) = 'cell4' then ParValue := QueryGrid.Cells[1,frUserDataset1.RecNo];
end;因为QueryGrid有一个fixed row,所以在frUserDataset1.RangeBegin里面是默认的rbFirst,也就是fixed row的内容了,如何才能让他从第二行开始打印呢???
begin
frUserDataset1.RangeEnd := reCount;
frUserDataset1.RangeEndCount := QueryGrid.RowCount ;
frReport1.ShowReport;
end;procedure TPrintLbl.frReport1GetValue(const ParName: String;var ParValue: Variant);
var i : integer;
begin
if trim(ParName) = 'cell4' then ParValue := QueryGrid.Cells[1,frUserDataset1.RecNo];
end;因为QueryGrid有一个fixed row,所以在frUserDataset1.RangeBegin里面是默认的rbFirst,也就是fixed row的内容了,如何才能让他从第二行开始打印呢???
frUserDataset1.DataSet.RecNo := 2;
begin
frUserDataset1.RangeBegin := rbCurrent;
frUserDataset1.RangeEnd := reCount;
frUserDataset1.RangeEndCount := QueryGrid.RowCount - 1 ;
//把数据定位到第二条记录
frReport1.ShowReport;
end;
只有frUserDataset1.RecNo
且frUserDataset1.RecNo是只读属性
不过方法应该是一样,你把frUserDataset换成frDBDataSet应该可以!我的系统中都有这样用!
然后再用上面的方法,一定可以!
procedure TPrintLbl.Button1Click(Sender: TObject);
begin
frDBDataSet.RangeBegin := rbCurrent;
frDBDataSet.RangeEnd := reCount;
frDBDataSet.RangeEndCount := QueryGrid.RowCount - 1 ;
//把数据定位到第二条记录
frReport1.ShowReport;
end;
procedure TPrintLbl.Button1Click(Sender: TObject);
begin
frDBDataSet.RangeBegin := rbCurrent;
frDBDataSet.RangeEnd := reCount;
frDBDataSet.RangeEndCount := QueryGrid.RowCount - 1 ;
QueryGrid.Col := 1;
QueryGrid.Row := 2;
frReport1.ShowReport;
end;