在Delphi中,我将TfrxUserDataSet分配给报告带:
var
Band : TfrxDataBand;
begin
Band := frxReport1.FindObject('MyBandName') as TfrxDataBand;
Band.DataSet := frxUserDataSet1;
end;
之后我还需要将数据集分配给该频段上的所有MemoView。
var
AMemo : TfrxMemoView;
begin
AMemo:=Form1.frxReport1.FindObject('Memo3') as TfrxMemoView;
AMemo.DataSet:=ABand.DataSet;
//... and so forth, for all MemoViews on the report band
end;
但有没有办法在不知道名字的情况下迭代数据包上的所有备忘录? 我想我可以阅读报告的.FR3文件并使用其结构化规范,但我不愿意。
答案 0 :(得分:1)
您可以迭代 ContainerObjects 集合以访问子组件。例如:
var
I: Integer;
Band: TfrxDataBand;
Control: TfrxComponent;
begin
Band := frxReport1.FindObject('MyBandName') as TfrxDataBand;
for I := 0 to Band.ContainerObjects.Count - 1 do
begin
Control := Band.ContainerObjects[I];
if Control is TfrxMemoView then
begin
TfrxMemoView(Control).DataSet := Band.DataSet;
...
end;
end;
end;