FastReport

Вопросы стыковки визуальных компонент (DataControls, EhGrid, VirtualTreeView, DevExpress и т.п.) с данными из БД.

Модераторы: kdv, CyberMax

Ответить
S.H.S
Сообщения: 65
Зарегистрирован: 25 ноя 2005, 02:18

FastReport

Сообщение S.H.S » 14 ноя 2006, 13:04

Скажите можно ли формы отчетов хранить в базе. Если можно то как. Спасибо.

Monk
Сообщения: 38
Зарегистрирован: 30 май 2006, 12:33

Re: FastReport

Сообщение Monk » 19 ноя 2006, 14:52

S.H.S писал(а):Скажите можно ли формы отчетов хранить в базе. Если можно то как. Спасибо.
можно

1. создаешь табличку (например, T1 с полями T1.ID integer и T1.FORM bloab)
2. на форму кидаешь компонент TfrReport (назовем его frReport)
3. туда же компонент для доступа к БД (назовем его qReportForm, он возвращает поля T1.ID и T1.FORM)
4. отчет вызывается примерно так

Код: Выделить всё

    if qReportForm.Locate('ID', номер отчета, []) then
      begin   
	frReport.LoadFromBlobField(TBlobField(qReportForm.FieldByName('FORM').Value));
        frReport.Title := 'можно хранить в базе';

        if dbBase1.ConnectParams.RoleName = 'ADMIN' then
          begin
            //открывается дизайнер, для создания новых форм из клиента
            frReport.Preview := nil;
            frReport.DesignReport;
          end
        else
          begin
            //если ты не в группе ADMIN то тебе отчет сразу на привью
            if frReport.PrepareReport then
              frReport.ShowPreparedReport;
          end
      end
    else
      begin
        frReport.Clear;
        frReport.Title := 'новый отчет';'';
        if dbBase1.ConnectParams.RoleName = 'ADMIN' then
          frReport.DesignReport;
        else
          ShowMessage('Отчет НЕ существует');
      end;

Ответить