Динамическое создание Tfrxgroupheader
В frxReport загружается готовый отчет состоящий из одной страницы, все компоненты находящиеся нанем переносятся приведенным кодом на динамически добавленый компонент TfrxMasterData. Так же создается еще и TfrxGroupHeader. При вызове frxReport1.PrepareReport(True) выдается сообщение:
Error
The following error(s) have occured:
No data band for the group GroupHeader1
ОК
В чем проблема?
Код:
var
ds: Integer;
procedure TForm3.FormCreate(Sender: TObject);
var
i, j: Integer;
List: TList;
Page: TfrxReportPage;
Group: TfrxGroupHeader;
Data: TfrxMasterData;
begin
ds := 0;
for i := 0 to frxReport1.PagesCount - 1 do
if frxReport1.Pages.ClassName = 'TfrxReportPage' then
begin
Page := TfrxReportPage(frxReport1.Pages);
List := TList.Create;
try
for j := Page.Objects.Count - 1 downto 0 do
begin
List.Add(Page.Objects[j]);
TfrxComponent(Page.Objects[j]).Parent := nil;
end;
Group := TfrxGroupHeader.Create(Page);
Group.CreateUniqueName;
Group.Condition := '[frxUserDataSet1."q"]';
Group.StartNewPage := True;
Group.Height := 10;
Group.Stretched := True;
Data := TfrxMasterData.Create(Group);
Data.CreateUniqueName;
Data.DataSet := frxUserDataSet1;
for j := 0 to List.Count - 1 do
begin
if TfrxComponent(List[j]).Top + TfrxComponent(List[j]).Height > Data.Height then
Data.Height := TfrxComponent(List[j]).Top + TfrxComponent(List[j]).Height;
TfrxComponent(List[j]).Parent := Data;
end;
finally
List.Free;
end;
frxReport1.PrepareReport(True);
Break;
end;
end;
procedure TForm3.frxUserDataSet1CheckEOF(Sender: TObject; var Eof: Boolean);
begin
Eof := ds > 10000;
end;
procedure TForm3.frxUserDataSet1First(Sender: TObject);
begin
ds := 0;
end;
procedure TForm3.frxUserDataSet1GetValue(const VarName: string;
var Value: Variant);
begin
Value := ds;
end;
procedure TForm3.frxUserDataSet1Next(Sender: TObject);
begin
ds := ds + 1;
end;
Error
The following error(s) have occured:
No data band for the group GroupHeader1
ОК
В чем проблема?
Код:
var
ds: Integer;
procedure TForm3.FormCreate(Sender: TObject);
var
i, j: Integer;
List: TList;
Page: TfrxReportPage;
Group: TfrxGroupHeader;
Data: TfrxMasterData;
begin
ds := 0;
for i := 0 to frxReport1.PagesCount - 1 do
if frxReport1.Pages.ClassName = 'TfrxReportPage' then
begin
Page := TfrxReportPage(frxReport1.Pages);
List := TList.Create;
try
for j := Page.Objects.Count - 1 downto 0 do
begin
List.Add(Page.Objects[j]);
TfrxComponent(Page.Objects[j]).Parent := nil;
end;
Group := TfrxGroupHeader.Create(Page);
Group.CreateUniqueName;
Group.Condition := '[frxUserDataSet1."q"]';
Group.StartNewPage := True;
Group.Height := 10;
Group.Stretched := True;
Data := TfrxMasterData.Create(Group);
Data.CreateUniqueName;
Data.DataSet := frxUserDataSet1;
for j := 0 to List.Count - 1 do
begin
if TfrxComponent(List[j]).Top + TfrxComponent(List[j]).Height > Data.Height then
Data.Height := TfrxComponent(List[j]).Top + TfrxComponent(List[j]).Height;
TfrxComponent(List[j]).Parent := Data;
end;
finally
List.Free;
end;
frxReport1.PrepareReport(True);
Break;
end;
end;
procedure TForm3.frxUserDataSet1CheckEOF(Sender: TObject; var Eof: Boolean);
begin
Eof := ds > 10000;
end;
procedure TForm3.frxUserDataSet1First(Sender: TObject);
begin
ds := 0;
end;
procedure TForm3.frxUserDataSet1GetValue(const VarName: string;
var Value: Variant);
begin
Value := ds;
end;
procedure TForm3.frxUserDataSet1Next(Sender: TObject);
begin
ds := ds + 1;
end;
Комментарии
мне говорится 'groupHeader1 : error in expression '[frxUserDataSet1.''GroupType]' : Identifier expected
это что я не так сделал ?
Уже нашел там ненужны скобочки frxGroupHeader.Condition := 'frxUserDataSet1."GroupType"';