我正在寻找一个简单的示例或使用fastreport从列表视图中打印项目的参考。例如:我有一个列表视图,其中包含三列:id,name和marks。列表视图有n个项目,每个项目包含个别学生的ID,名称和标记。我需要以表格格式使用fastreport打印整个listview。我用谷歌搜索,但找不到我的范围的确切样本。同样,我在fastreport演示中找不到任何关于此的文档。我使用的是Delphi XE8,默认安装了fastreport版本。
答案 0 :(得分:2)
出于演示目的。
在表格上放置以下组件:
双击frxReport。在Fastreport设计师做
插入ReportTitle,MasterData和PageFooter band。
按Report => Data
个菜单项。选中frxUserDataSet
复选框,然后按OK
按钮。
在MasterData band上双击MasterData band并使用frxUserDataSet
并选择frxUserDataSet,然后按“OK”按钮。
在MasterData中插入Text object
(备注)。
在备忘录中写[element]
。
设计师应如下所示:
现在我们可以编写一些代码:
procedure TForm8.FormCreate(Sender: TObject);
var
I: Integer;
Li : TlistItem;
begin
// Just to fill some data in ListView
for I := 1 to 10 do
begin
Li := ListView1.Items.Add;
LI.Caption := 'Col ' + IntToStr(i);
end;
end;
在frxReport1 OnGetValue 事件中写例如:
procedure TForm8.frxReport1GetValue(const VarName: string; var Value: Variant);
begin
if CompareText(VarName, 'element') = 0 then
Value := ListView1.Items[frxUserDataSet1.RecNo].Caption;
end;
现在打印数据
procedure TForm8.Button1Click(Sender: TObject);
begin
frxUserDataSet1.RangeEnd := reCount;
frxUserDataSet1.RangeEndCount := ListView1.Items.Count;
frxReport1.ShowReport();
end;
按下Button1后的结果:
注意:在这个答案中使用了FastReport PrintStringList演示的一部分。