Создание Header и Masterdata в скрипте
Добрый день.
Задача - вывод в отчет переменного количества таблиц (прайс-листов).
Данные в запросах есть (проверял). Header и MasterData судя по всему создаются (ошибок нет), но в отчете невидимы.
Задача - вывод в отчет переменного количества таблиц (прайс-листов).
var
L, T, H, W: Double;
Header: TfrxHeader;
MasterData: TfrxMasterData;
Memo: TfrxMemoView;
QueryPriceItems: TfrxFIBQuery;
begin
// Формирование ReportTitle
...
// Формирование прайс-листов
N := 1;
T := 5;
while not QueryPrices.Eof do
begin
if (<QueryPrices."FORMULA_TYPE"> < 0) then
begin
Header := TfrxHeader.Create(Page1);
Header.Top := T;
Header.Height := 1.3;
Header.Visible := True;
Memo := TfrxMemoView.Create(Header);
Memo.SetBounds(0, 0.5, 3, 0.8);
Memo.Text := 'Прайс-лист ' + IntToStr(<QueryPrices."PRICE">);
Memo.Visible := True;
QueryPriceItems := TfrxFIBQuery.Create(Data);
QueryPriceItems.Name := 'Query' + IntToStr(N);
QueryPriceItems.UserName := 'Query' + IntToStr(N);
QueryPriceItems.Database := DBMain;
QueryPriceItems.SQL.Text := 'select pd.distance_from, pd.distance_to, pd.tarif from tprice_distances pd where pd.price = :price order by 1,2';
QueryPriceItems.ParamByName('PRICE').Value := <QueryPrices."PRICE">;
QueryPriceItems.Open;
MasterData := TfrxMasterData.Create(Page1);
MasterData.Top := Header.Top + Header.Height + 0.1;
MasterData.Height := 0.5;
MasterData.Visible := True;
MasterData.DataSet := QueryPriceItems;
Memo := TfrxMemoView.Create(MasterData);
Memo.SetBounds(0, 0, 3, 0.5);
Memo.DataSet := QueryPriceItems;
Memo.DataField := 'TARIF';
Memo.Visible := True;
Memo.Text := '[' + 'Query' + IntToStr(N) + '."TARIF"]';
T := T + 2;
N := N + 1;
end;
QueryPrices.Next;
end;
end.
Данные в запросах есть (проверял). Header и MasterData судя по всему создаются (ошибок нет), но в отчете невидимы.
Комментарии
Во-вторых, попробуйте вместо Page1 написать frxReport1.FindObject('Page1') - именно Object, не Component.
Насчет fr1cm - премного благодарен.
Насчет FindObject - к сожалению, не сработало.
Есть мысль, возможно вышеприведенный код формирования таблиц нужно вызвать в каком-то обработчике, например Page.OnBeforePrint?
Nightmareterrible - большое спасибо еще раз.