Доброго времени суток!
Создал отчет в FastReport. Создал для него окно фильтрации. Но возникла проблема, если для этого окна не прописывать событие OnNotify, то все нормально работает. Но если же оно прописано (в данном случае оно необходимо, так как использую множественный выбор), то функция
не отрабатывает, пишет "Исключение брошено, но не поймано". Помогите решить проблему. Все сервисы отчета и полный код во вложении.
Нравится
Дмитрий, загрузила сервисы. Для проверки отчета не хватает таблиц tbl_OfferingInRealization, tbl_Realization, tbl_Plan, tbl_CommodityGroups.
Убрала из запроса, датасета и отчета поля из указанных таблиц. Ошибки нет при обращении к
SendNotify(Self, MSG_OK);
Допускаю, что при тестировании много кода закомментировала в функции SaveDatePeriod(), поэтому не воcпроизвелаcь ошибка.
Поставьте debugger перед строкой SendNotify(Self, MSG_OK); и проверьте в режиме отладки что вызывает сбой.
В функции
SendNotify(Window, NotifyMessage, NotifyData)
Сбой вызывает строка
NotifyObject.Notify(Window, NotifyMessage, NotifyData);
Заметил, если закомментировать строку SaveDatePeriod(), то SendNotify(Self, MSG_OK) выполняется. В этой функции что-то может вызывать такие проблемы? Недостающие таблицы прилагаю.
Проверьте, пожалуйста, что все используемые фильтры в sq_Plan, sq_Realization, sq_OfferingInRealization имеют одинаковое название с применяемыми для них параметрами.
Есть вопрос по функциям MultiSelectOnNotify, LookupControlOnPrepareMultiSelectWindow – что они из себя представляют?
С фильтрами все нормально, да и до них мне кажется все равно не доходит, ошибка вылетает раньше. А функции отсюда
Что-то непонятное происходит. Закомментировал строку:
ReportPreviewer.Report.Attributes('AccountIDs') = edtAccounts.Value; //обработчик окна фильтрации
SendNotify проходит (правда дальше по коду там другая ошибка), думал дело в параметре отчета, удалил параметр, создал другой с другим именем, и раза 3 все срабатывало!, т.е. даже с этой строкой все работало. НО! На четвертый раз все опять вернулось назад, ошибка снова возникает из-за этой строки.
Сейчас еще раз пересоздал параметр, и теперь пока SendNotify работает. Но дальше возникает другая ошибка в скрипте scr_BaseFastReportPreview:
function frpMainOnPageChange(FastReportPreviewer, CurrentPageNumber) { RefreshPages(FastReportPreviewer, CurrentPageNumber); }
После выполнении этой функции возникает ошибка "Исключение брошен и не поймано" (т.е. дебаггер показывает ошибку после знака "}")
Дмитрий, если вложите сервисы запросов и датасетов (таблиц недостаточно) может быть получится воспроизвести. Без воспроизведения сложно сказать в чем ошибка.