FastReport文件中引用的所有必需的DatabaseField

时间:2015-01-08 08:59:46

标签: delphi delphi-xe2 fastreport

有人知道如何获取FastReport报告所需的所有数据库字段吗?

背景: 通常,我们报告的所有数据都直接来自delphi,而不是通过直接数据库连接。 我们有一个编辑器来编辑快速报告文件。我们希望显示用户输入数据的报告预览。因此,我们需要知道所有使用过的数据集以及报告所需的数据集字段。

可以使用属性获取报告所需的数据集:

var
  rpReport: TfrxReport
begin
  rpReport.DataSets 

但是我们怎样才能获得数据集字段的数量和名称?

2 个答案:

答案 0 :(得分:1)

每个TfrxDataSet后代都有公共 FieldsCount GetFieldList 函数。

var
  fl: TStringList;

 fl := TStringList.Create;
 rpReport.DataSets[0].DataSet.GetFieldList(fl);

答案 1 :(得分:0)

对我来说,它通过解析.fr3文件来工作,这是一个xml文件。

我使用以下正则表达式获取所有字段(包括表达式使用的字段):

mDatasetName + '\.&#34;(?<fieldname>[^&]+)&#34;'

其中mDatasetName是需要字段的数据集的名称。我通过集合得到的数据集的所有名称:

for I := 0 to rpReport.DataSets.Count - 1 do
  mDatasetName := rpReport.Datasets[I].DatasetName;