Как получить в пользовательском окне фильтрации ID выбранного элемента?
Добрый день!
Достаточно тривиальная задача, но не могу разобраться с разбегу.
Создаю пользовательское окно фильтрации FastReport, само окно зависит от выбранного элемента.
Собственно, внимание вопрос: как получить ID выбранного элемента в окне фильтрации?
Нравится
Вы хотите выбрать в гриде запись и по ней строить отчёт?
Может, grdData.SelectedIDs?
Нет, не совсем. Запись уже строится, я редактирую пользовательское окно фильтрации FastReport.
То есть, запись УЖЕ выбрана и отчёт по ней УЖЕ строится стандартными средствами, но для фильтрации мне нужно поймать ID этой записи.
Логика запуска построения отчёта по выбранной записи определена в функции ReportMenuItemExecute в скрипте scr_ReportUtils. Насколько вижу, там вызывается одна функция ShowSelectedRecordsReport для отчёта по выбранным записям, но без окна фильтрации, а другая ShowReport — по всем записям, но с окном.
Можно специально для Вашего отчёта дописать третий случай — и с окном, и с выбранными записями. Например, передавать в окно отчёта wnd_BaseFastReportPreview ID записи или IDs записей, а затем в scr_BaseFastReportPreview передавать их в окно фильтрации.
Я сначала несколько удивился тому, что в окно не передаётся ID выбранных записей. Потом почитал исходники и выяснил, что таки передаются. ID банально берутся из Атрибута Self.