Добрый добрый.
Поясните пожайлуста такую ситуацию:
Вот такой код:
MemoryStream ms = new MemoryStream();
StiDesigner.DontAskSaveReport = true;
StiReport report = new StiReport();
report.Design();
//report.SavePackedReport(ms);
report.Save(ms);
StiReport reportNew = new StiReport();
//reportNew.LoadPackedReport(ms);
reportNew.Load(ms);
reportNew.Design();
При использовании методов типа Save и Load, при вызове мотода Load, поучаем ошибку: Root element is missing.
Если используем методы типа SavePackedReport и LoadPackedReport все гуд. Ошибка? или я не совсем понял логику работы и назначение методов??
А вообще можно как нить в демо версии добавить пункт меню или еще что либо в дизайнер отчетов для сохранения отчета в БД??? А
В полной версии можно все, т.к. она поставляется вместе с исходниками.. )) а как сделать что то на подобе в демо, что бы посмотреть как все будет работать.
Потому как такой вариант использования с StiDesigner.DontAskSaveReport = true;
Когда мы не спрашиваем о сохранении а после сохранения по любому сохраняем отчет не очень хорош, (мало ли что за эксперименты производились с отчетом и результаты которых не нужно сохранять:)
Спасибо вам за качественные и понятные ответы по существу
Сохранение и загрузка отчетов программно.
Сохранение и загрузка отчетов программно.
Добавьте следующую строку в Ваш код:Xptr писал(а):Добрый добрый.
Поясните пожайлуста такую ситуацию:
Вот такой код:
MemoryStream ms = new MemoryStream();
StiDesigner.DontAskSaveReport = true;
StiReport report = new StiReport();
report.Design();
//report.SavePackedReport(ms);
report.Save(ms);
StiReport reportNew = new StiReport();
//reportNew.LoadPackedReport(ms);
reportNew.Load(ms);
reportNew.Design();
При использовании методов типа Save и Load, при вызове мотода Load, поучаем ошибку: Root element is missing.
Если используем методы типа SavePackedReport и LoadPackedReport все гуд. Ошибка? или я не совсем понял логику работы и назначение методов??
Код: Выделить всё
StiReport reportNew = new StiReport();
ms.Seek(0, SeekOrigin.Begin);
Гораздо проще перехватить операции сохранения и загрузки отчетов. У класса StiDesigner естьА вообще можно как нить в демо версии добавить пункт меню или еще что либо в дизайнер отчетов для сохранения отчета в БД??? А
В полной версии можно все, т.к. она поставляется вместе с исходниками.. )) а как сделать что то на подобе в демо, что бы посмотреть как все будет работать.
Потому как такой вариант использования с StiDesigner.DontAskSaveReport = true;
Когда мы не спрашиваем о сохранении а после сохранения по любому сохраняем отчет не очень хорош, (мало ли что за эксперименты производились с отчетом и результаты которых не нужно сохранять:)
Спасибо вам за качественные и понятные ответы по существу
два статических события:
Код: Выделить всё
StiDesigner.LoadingReport += new StiLoadingObjectEventHandler(OnLoadReport);
StiDesigner.SavingReport += new StiSavingObjectEventHandler(OnSaveReport);
private static void OnSaveReport(object sender, StiSavingObjectEventArgs e)
{
if (e.SaveAs)
{
e.Processed = false;
return;
}
StiDesigner designer = sender as StiDesigner;
StiReport report = designer.Report;
//Saving
}
private static void OnLoadReport(object sender, StiLoadingObjectEventArgs e)
{
StiDesigner designer = sender as StiDesigner;
StiReport report = designer.Report;
//Loading
}
Сохранение и загрузка отчетов программно.
спасибо,
однако при использовании LoadPackedReport Seek для потока делать не надо ...
Упакованный отчет от не упакованого отличается только тем что запакован GZip'ом ???
однако при использовании LoadPackedReport Seek для потока делать не надо ...
Упакованный отчет от не упакованого отличается только тем что запакован GZip'ом ???
Сохранение и загрузка отчетов программно.
Да, отчет упакован zip-архиватором. Строки преобразованы в формате Base64.Xptr писал(а):спасибо,
однако при использовании LoadPackedReport Seek для потока делать не надо ...
Упакованный отчет от не упакованого отличается только тем что запакован GZip'ом ???
Note: Если Вы переименуете отчет *.mrz в *.zip то внутри файла Вы обнаружите файл отчета.
Спасибо.