Хранение и редактирование отчета в базе Firebird

отредактировано 16:27 Раздел: FastReport 4.0
Вот так я делаю редактирование отчета в базе firebird:
procedure TSettsForm.EditReport(id:integer);
var bs:TStringStream;
begin
DMod.TR.StartTransaction;
ReadQ.SQL.Clear;
ReadQ.SQL.Add('select * from docs where id='+inttostr(id));
ReadQ.Open;
bs:=TStringStream.Create(ReadQ.FieldByName('body').AsString);
DMod.TR.Commit;
DMod.Report.LoadFromStream(bs);
DMod.Report.DesignReport;
bs.Free;
bs:=TStringStream.Create('');
DMod.Report.SaveToStream(bs);
DMod.TWR.StartTransaction;
bs.Seek(0,soFromBeginning);
WriteQ.Params.Clear;
WriteQ.Params.CreateParam(ftString,'p',ptInputOutput);
WriteQ.SQL.Clear;
WriteQ.SQL.Add('UPDATE DOCS SET body=: p where id='+inttostr(id));
WriteQ.ParamByName('p').AsString:=bs.ReadString(bs.Size);
WriteQ.ExecSQL;
DMod.TWR.Commit;
end;


Работает на УРА. Только есть оговорки:
- если отчет был открыт, то обязательно будет пересохранен.
- когда открываешь и редактируешь отчет, при закрытии выдается сообщение: Хотите сохранить бла-бла-бла? И варианты соотв-но ДА, НЕТ, ОТМЕНИТЬ. Если нажать НЕТ, отчет закроется и СОХРАНИТСЯ в базе. Если ДА, то предложит сохранить его в файл.

Вопрос таков: как можно обработать этот диалог сохранения? DesignReport не возвращает значений...

Комментарии

  • отредактировано 16:27
    Нужно править код в самом дизайнере.
    это обсуждалось уже давно ищи поиском.
    где как поменять

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.