TfrReport+TfrUserDataset 就可以实现procedure TShowPersonnel.frReportGetValue(const ParName: String;var ParValue: Variant); begin if AnsiCompareText(ParName, 'Cell1') = 0 then ParValue :=ListViewBox.Items[Dataset.RecNo].Caption; if AnsiCompareText(ParName, 'Cell2') = 0 then ParValue :=ListViewBox.Items[Dataset.RecNo].SubItems.Strings[0]; if AnsiCompareText(ParName, 'Cell3') = 0 then ParValue :=ListViewBox.Items[Dataset.RecNo].SubItems.Strings[1]; end;procedure TShowPersonnel.DatasetCheckEOF(Sender: TObject; var Eof: Boolean); begin Eof := Dataset.RecNo >= ListViewBox.Items.Count; end;注意:如果ListView中的记录是''的一定要补个空格,不然会报错
begin
if AnsiCompareText(ParName, 'Cell1') = 0 then
ParValue :=ListViewBox.Items[Dataset.RecNo].Caption;
if AnsiCompareText(ParName, 'Cell2') = 0 then
ParValue :=ListViewBox.Items[Dataset.RecNo].SubItems.Strings[0];
if AnsiCompareText(ParName, 'Cell3') = 0 then
ParValue :=ListViewBox.Items[Dataset.RecNo].SubItems.Strings[1];
end;procedure TShowPersonnel.DatasetCheckEOF(Sender: TObject;
var Eof: Boolean);
begin
Eof := Dataset.RecNo >= ListViewBox.Items.Count;
end;注意:如果ListView中的记录是''的一定要补个空格,不然会报错