Автономные интерактивные отчеты
Есть таблица в БД с отчетами в BLOB-полях. Приложения независимы от отчетов.
В отчетах используются обработчики событий на PascalScript.
Задача: Средствами PascalScript из одного отчета нужно вызвать другой отчет передав ему параметры.
Попробовал решить проблему так:
procedure Memo2OnPreviewClick(Sender: TfrxView; Button: TMouseButton; Shift: Integer; var Modified: Boolean);
var rpSaw_detail : TfrxReport;
msRpt_data : TMemoryStream;
begin
msRpt_data := TMemoryStream.Create;
//fqrReports_for_SAW - TfrxADOQuery
TBlobField(fqrReports_for_SAW.Fields[1]).SaveToStream(msRpt_data); // здесь в run-time вываливается Access violation
msRpt_data.Position := 0;
rpSaw_detail := TfrxReport.Create(Report.Owner);
rpSaw_detail.LoadFromStream(msRpt_data);
msRpt_data.Free;
rpSaw_detail.ShowReport();
rpSaw_detail.Free;
end;
В design-time все нормально, а в run-time вываливается Access violation
Вопросы:
1. Как получить доступ к BLOB-полю из скрипта?
2. Если с помощью только скриптов не решить эту проблему, какое решение посоветуете.
В отчетах используются обработчики событий на PascalScript.
Задача: Средствами PascalScript из одного отчета нужно вызвать другой отчет передав ему параметры.
Попробовал решить проблему так:
procedure Memo2OnPreviewClick(Sender: TfrxView; Button: TMouseButton; Shift: Integer; var Modified: Boolean);
var rpSaw_detail : TfrxReport;
msRpt_data : TMemoryStream;
begin
msRpt_data := TMemoryStream.Create;
//fqrReports_for_SAW - TfrxADOQuery
TBlobField(fqrReports_for_SAW.Fields[1]).SaveToStream(msRpt_data); // здесь в run-time вываливается Access violation
msRpt_data.Position := 0;
rpSaw_detail := TfrxReport.Create(Report.Owner);
rpSaw_detail.LoadFromStream(msRpt_data);
msRpt_data.Free;
rpSaw_detail.ShowReport();
rpSaw_detail.Free;
end;
В design-time все нормально, а в run-time вываливается Access violation
Вопросы:
1. Как получить доступ к BLOB-полю из скрипта?
2. Если с помощью только скриптов не решить эту проблему, какое решение посоветуете.