- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 FastReport Designer 创建了一个报表,并使用 Delphi 6 调用它。但是 MasterData
的 DataSet
和字段在设计时未分配。我想根据所选的DataSet
在运行时设置这些属性。我怎样才能做到这一点?在调用预览/打印/设计之前,如何访问Delphi中MasterData
的DataSet
?在 frxReport1BeforePrint
中添加了以下代码。
t := frxReport1.FindObject('MasterData1') as TfrxMasterData;
//if Assigned(t) then
//t.DataSet := frxIBODataset1;
m := frxReport1.FindObject('mTenderType') as TfrxMemoView;
if Assigned(m) then
begin
m.DataSet := frxIBODataset1;
m.DataField := 'ACCOUNTNAME';
m.Text := '[frxIBODataset1."ACCOUNTNAME"]';
end;
但我需要在调用打印/设计/预览之前设置这些属性。如有任何帮助,我们将不胜感激。
最佳答案
您应该首先指定您是尝试使用应用程序中定义的数据集,还是直接在报表中定义的数据集(FastReport 设计器中的“数据”选项卡)?
如果您尝试使用应用程序内部定义的数据集(例如,在数据模块之一中定义的 AdoDataset 实例),出于此目的,您不必将 MasterBand 绑定(bind)到数据集。动态地。在报告中,您的 MasterBand 在设计时绑定(bind)到 TfrxDbDataset 实例。在运行时,您的 frxDbDataset 实例可以连接到项目中的任何数据集。
情况如下:
1- 将 frxReport 组件和 frxDbDataset 组件拖放到表单或数据模块上。2- 在报告设计器中,转到数据集部分,并将可用的 frxDbDataset 添加到报告的数据集列表中。3- 添加主数据带,并将 frxDbDataset 分配给其数据集属性。4-现在在您的代码中,在显示或准备报告之前,您可以编写如下内容:
if MyOption = 1 then
frxDbDataset1.Dataset := AdoDataset1
else
frxDbDataset1.Dataset := AdoDataset2;
您分配给 frxDbDataset 的任何内容都将由主带打印在您的报告中。
如果您使用 FastReport 设计器直接在报表内定义数据集;那么一切都在你的报告中。只需打开 fastreport 设计器并执行以下操作:
1- 转到“数据”选项卡并定义您的数据集(例如 AdoQuery1)。2- 从报告树 Pane 中选择报告对象。3- 在对象检查器中,转到“事件”选项卡。4- 选择合适的事件; OnStartReport 对于您的工作来说是一个很好的事件。双击它打开代码编辑器。5- 现在您可以使用 PascalScript 代码将数据选项卡中定义的数据集分配到主数据带。像这样的事情:
procedure frxReport1OnStartReport(Sender: TfrxComponent);
begin
MasterData1.Dataset := <ADOQuery1."ADOQuery1">;
end;
关于delphi - 如何在FastReport中动态分配数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4065317/
我是一名优秀的程序员,十分优秀!