Ошибка при использования старого стиля прогресса
При использовании старого стиля прогрессбара (OldStyleProgress = true) при нажатии на диалоговом окне кнопки отмены печати либо при закрытии диалога без дальнейшего формирования отчета появлятся следующий эксепшен:
{"Error HRESULT E_FAIL has been returned from a call to a COM component."} System.SystemException {System.Runtime.InteropServices.COMException}
версия fastreport 3.24.24
{"Error HRESULT E_FAIL has been returned from a call to a COM component."} System.SystemException {System.Runtime.InteropServices.COMException}
версия fastreport 3.24.24
Комментарии
Для Managed сред я бы порекомендовал для печати использовать свойство Print, объекта TfrxReport. При чтении этого свойства произойдёт печать документа, и вернётся логическое значение true/false.
Кстати, при использовании свойства Print или метода PrintReport (т.е. отправка на принтер без предварительного показа), документ на принтер НЕ ОТПРАВЛЯЕТСЯ!!! Прошу исправить этот баг!
В свою очередь, managed среды генерять исключение в случае, если код возврата не равен S_OK, то есть нулю.
Так уж получилось, что при многих нештатных ситуациях, например при отмене построения отчёта, возвращается код ошибки E_FAIL. Что воспринимается .NET приложением как исключение.
В данном случае могу посоветовать заворачивать вызовы таких процедур в блоки try {} catch(). Зачастую понять причину исключения помогает анализ свойства Errors объекта TfrxReport