проблема с LoadFromStream
Отчет хранятся в blob, хочу его загрузить оттуда
TStream* Stream1=
dasetREPORTS->CreateBlobStream(dasetREPORTSFILES,bmRead);
frxReport1->LoadFromStream(Stream1);
frxReport1->ShowReport(true);
Результат - пустой Prewiev
если считываю из blob сначала в файл, а потом загружаю файл через LoadFromFile то все нормально!
Как правильно считывать напрямую используя LoadFromStream ???
TStream* Stream1=
dasetREPORTS->CreateBlobStream(dasetREPORTSFILES,bmRead);
frxReport1->LoadFromStream(Stream1);
frxReport1->ShowReport(true);
Результат - пустой Prewiev
если считываю из blob сначала в файл, а потом загружаю файл через LoadFromFile то все нормально!
Как правильно считывать напрямую используя LoadFromStream ???
Комментарии
// На чтение
procedure TfmDesigner.LoadReport;
var Stream:TStream;
begin
frReport.Clear;
Stream:=TMemoryStream.Create;
try
// taReportREPORT - поле BLOB (memo) из DBF файла
taReportREPORT.SaveToStream(Stream);
Stream.Position:=0;
if Stream.Size>0 then frReport.LoadFromStream(Stream);
finally
Stream.Free;
end;
end;
// на запись
procedure TfmDesigner.DesignReport;
var
Stream:TStream;
begin
frReport.DesignReport;
if (MessageDlg('Сохранить отчет ?',mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
begin
Stream:=TMemoryStream.Create;
frReport.SaveToStream(Stream);
end;
if Assigned(Stream) then
try
taReport.Edit;
try
Stream.Position:=0;
taReportREPORT.LoadFromStream(Stream);
taReport.Post;
except
taReport.Cancel;
end;
finally
FreeAndNil(Stream);
end;
с TMemoStream та же история.... не выводит отчет
A ты после
frReport.LoadFromStream(Stream);
пробовал frReport.ShowReport ??? работает?
taReportREPORT.SaveToStream(Stream);
Что-то я не понял - как мне сначала его описать то????
А то я раньше грузил из blob-поля "Rep1" базы данных.
if not ADOQuery1FRBody.IsNull then begin
ms := TADOBlobStream.Create(ADOQuery1FRBody, bmRead);
frxReport1.LoadFromStream(ms);
ms.Free;
frxReport1.PrepareReport;
frxReport1.ShowPreparedReport;
end;
У меня работает.