Хранение и редактирование отчета в базе Firebird
Вот так я делаю редактирование отчета в базе firebird:
Работает на УРА. Только есть оговорки:
- если отчет был открыт, то обязательно будет пересохранен.
- когда открываешь и редактируешь отчет, при закрытии выдается сообщение: Хотите сохранить бла-бла-бла? И варианты соотв-но ДА, НЕТ, ОТМЕНИТЬ. Если нажать НЕТ, отчет закроется и СОХРАНИТСЯ в базе. Если ДА, то предложит сохранить его в файл.
Вопрос таков: как можно обработать этот диалог сохранения? DesignReport не возвращает значений...
procedure TSettsForm.EditReport(id:integer);
var bs:TStringStream;
beginend;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;
Работает на УРА. Только есть оговорки:
- если отчет был открыт, то обязательно будет пересохранен.
- когда открываешь и редактируешь отчет, при закрытии выдается сообщение: Хотите сохранить бла-бла-бла? И варианты соотв-но ДА, НЕТ, ОТМЕНИТЬ. Если нажать НЕТ, отчет закроется и СОХРАНИТСЯ в базе. Если ДА, то предложит сохранить его в файл.
Вопрос таков: как можно обработать этот диалог сохранения? DesignReport не возвращает значений...
Комментарии
это обсуждалось уже давно ищи поиском.
где как поменять