Как получить в пользовательском окне фильтрации ID выбранного элемента?

Добрый день!

Достаточно тривиальная задача, но не могу разобраться с разбегу.

Создаю пользовательское окно фильтрации FastReport, само окно зависит от выбранного элемента.

Собственно, внимание вопрос: как получить ID выбранного элемента в окне фильтрации?

Нравится

4 комментария

Вы хотите выбрать в гриде запись и по ней строить отчёт?
Может, grdData.SelectedIDs?

Нет, не совсем. Запись уже строится, я редактирую пользовательское окно фильтрации FastReport.

То есть, запись УЖЕ выбрана и отчёт по ней УЖЕ строится стандартными средствами, но для фильтрации мне нужно поймать ID этой записи.

Логика запуска построения отчёта по выбранной записи определена в функции ReportMenuItemExecute в скрипте scr_ReportUtils. Насколько вижу, там вызывается одна функция ShowSelectedRecordsReport для отчёта по выбранным записям, но без окна фильтрации, а другая ShowReport — по всем записям, но с окном.

Можно специально для Вашего отчёта дописать третий случай — и с окном, и с выбранными записями. Например, передавать в окно отчёта wnd_BaseFastReportPreview ID записи или IDs записей, а затем в scr_BaseFastReportPreview передавать их в окно фильтрации.

Я сначала несколько удивился тому, что в окно не передаётся ID выбранных записей. Потом почитал исходники и выяснил, что таки передаются. ID банально берутся из Атрибута Self.

Показать все комментарии