FastReport
От: MaxxSoft Россия  
Дата: 01.12.04 05:19
Оценка:
Не могу разобраться с генерацией отчетов.
Допустим, есть запрос GetGamesReport_SQL — выборка из таблиц БД, например такой: "SELECT GUEST FROM GUESTS";
В отчете (BReport) созданы MasterHeader и MasterData.
MasterData содержит Memo-поле, в котором записано: [Guest].
Создан Dataset (BReport.DataSet := BonusDataSet), его функции реализованы след. образом:

procedure TReceptionData.BonusDatasetCheckEOF(Sender: TObject;
  var Eof: Boolean);
begin
  Eof := GetGamesReport_SQL.Eof;
  if Eof then CommonData.Read_trans.Commit;
end;

procedure TReceptionData.BonusDatasetFirst(Sender: TObject);
begin
  try
    if not CommonData.Read_trans.InTransaction then CommonData.Read_trans.StartTransaction;
    with GetGamesReport_SQL do
    begin
      if not Prepared then Prepare;
      ExecQuery;
    end;
  except
    Application.MessageBox('Запрос не выполнен.', CAPTION_MAIN);
    if CommonData.Read_trans.InTransaction then CommonData.Read_trans.Rollback;
  end;
end;

procedure TReceptionData.BonusDatasetNext(Sender: TObject);
begin
  GetGamesReport_SQL.Next;
end;


Функция получения параметра:
procedure TReceptionData.BReportGetValue(const ParName: String; var ParValue: Variant);
begin
  if (ParName = 'Guest') then ParValue := GetGamesReport_SQL.FieldByName('FULL_NAME').AsString;
end;


Вызов отчета:

procedure TReceptionData.CreateGameReport();
begin
  if BReport.PrepareReport then BReport.ShowPreparedReport
  else Application.MessageBox('Не удалось загрузить отчет', CAPTION_MAIN);


Выводится отчет без данных.
Как результаты запроса вывести в отчет?
Re: FastReport
От: DarkMaster Украина http://www.bdslib.at.ua
Дата: 01.12.04 08:06
Оценка:
Здравствуйте, MaxxSoft, Вы писали:

MS>Не могу разобраться с генерацией отчетов.

MS>Допустим, есть запрос GetGamesReport_SQL — выборка из таблиц БД, например такой: "SELECT GUEST FROM GUESTS";
MS>В отчете (BReport) созданы MasterHeader и MasterData.

[Sorry, skipped]

MS>Выводится отчет без данных.

MS>Как результаты запроса вывести в отчет?

Что-то ты перемудрил, как мне кажется...
1) Попробуй вместо ExecQuery использовать Open.
2) вынеси старт транзакций и коммит из обработчиков событий.
3) откажись от CheckEof, First, Next, GetValue — эти события больше для "юзердата" отчетов предназначены.
WBR, Dmitry Beloshistov AKA [-=BDS=-]
Re[2]: FastReport
От: MaxxSoft Россия  
Дата: 01.12.04 09:41
Оценка:
Здравствуйте, DarkMaster, Вы писали:

DM>3) откажись от CheckEof, First, Next, GetValue — эти события больше для "юзердата" отчетов предназначены.


А как тогда связать DataSet и FReport?
Re[3]: FastReport
От: DarkMaster Украина http://www.bdslib.at.ua
Дата: 01.12.04 11:11
Оценка:
Здравствуйте, MaxxSoft, Вы писали:

DM>>3) откажись от CheckEof, First, Next, GetValue — эти события больше для "юзердата" отчетов предназначены.


MS>А как тогда связать DataSet и FReport?


TfrDBDataset тебе зачем даден?

Report.DataSet:=frDBDataset;
frDBDataset.DataSet:=Query;  
//- дополнительные проперти, если надо


Все
WBR, Dmitry Beloshistov AKA [-=BDS=-]
Re[3]: FastReport
От: Shtirliz Россия  
Дата: 01.12.04 11:15
Оценка:
Здравствуйте, MaxxSoft, Вы писали:

MS>Здравствуйте, DarkMaster, Вы писали:


DM>>3) откажись от CheckEof, First, Next, GetValue — эти события больше для "юзердата" отчетов предназначены.


MS>А как тогда связать DataSet и FReport?


frDataSet.DataSet := DataSet;


И в отчете исользовать frDataSet.
... -= RSDN@Home 1.1.4 beta 3 rev 222 =- А в Winamp'e Весь в работе
Дункан Маклауд любил ходить в лес и издеваться над кукушками.
138385660
Re[4]: FastReport
От: MaxxSoft Россия  
Дата: 01.12.04 12:21
Оценка:
Здравствуйте, DarkMaster, Вы писали:

MS>>А как тогда связать DataSet и FReport?


DM>TfrDBDataset тебе зачем даден?


DM>
DM>Report.DataSet:=frDBDataset;
DM>frDBDataset.DataSet:=Query;  
DM>//- дополнительные проперти, если надо
DM>


Не понял, Query, это что?
Re[5]: FastReport
От: DarkMaster Украина http://www.bdslib.at.ua
Дата: 01.12.04 12:32
Оценка:
Здравствуйте, MaxxSoft, Вы писали:

DM>>
DM>>Report.DataSet:=frDBDataset;
DM>>frDBDataset.DataSet:=Query;  
DM>>//- дополнительные проперти, если надо
DM>>


MS>Не понял, Query, это что?


Что-либо, отнаследованное от TDataset, чаще всего — TQuery etc...
WBR, Dmitry Beloshistov AKA [-=BDS=-]
Re[6]: FastReport
От: MaxxSoft Россия  
Дата: 01.12.04 13:18
Оценка:
Здравствуйте, DarkMaster, Вы писали:

DM>Что-либо, отнаследованное от TDataset, чаще всего — TQuery etc...

TQuery это компонент или класс? В справке не могу найти, файл справки говорит не найден (с моей то удачей!).
Если я использую TIBSQL из него можно выдернуть этот DataSet? Там ведь он как-то хранится...
И еще вопросик появился — как зарегистрировать переменные в FastReport?
Re[7]: FastReport
От: DarkMaster Украина http://www.bdslib.at.ua
Дата: 01.12.04 13:38
Оценка:
Здравствуйте, MaxxSoft, Вы писали:

DM>>Что-либо, отнаследованное от TDataset, чаще всего — TQuery etc...

MS>TQuery это компонент или класс? В справке не могу найти, файл справки говорит не найден (с моей то удачей!).

Компонент. Вкладка "BDE" начиная с D6.

MS>Если я использую TIBSQL из него можно выдернуть этот DataSet? Там ведь он как-то хранится...


У тебя TIBQuery есть. Его и пользуй.

MS>И еще вопросик появился — как зарегистрировать переменные в FastReport?


Сходи на сайт ФастРепорта и скачай доку по его использованию и факи — там все это есть, причем на русском и с примерами.
WBR, Dmitry Beloshistov AKA [-=BDS=-]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.