#filter #reporting #salesforce #apex-code
#Фильтр #отчетность #salesforce #apex-code
Вопрос:
Хорошо, итак, я хочу иметь отчет, который не требует от конечного пользователя знаний о написании и настройке отчетов или запоминании значений полей. В конечном итоге я хочу, чтобы пользователь мог использовать коллекцию предварительно заполненных фильтров на основе списка выбора на странице apex, которую я создал, для фильтрации своего отчета.
Пока у меня есть это, поскольку я могу фильтровать по одному значению для каждого поля:
- Создайте отчет по учетной записи
- Добавьте фильтр для состояния выставления счетов, равного пустому (это фильтр № 1 или индекс 0)
- Создайте страницу со списком выбора и используйте контроллер для заполнения ее списком состояний
- Создайте CommandButton на странице и используйте объект PageReference для перенаправления на отчет
- В конце URL-адреса отчета добавьте pv0 (значение параметра для индекса 0) = [выбранное состояние]
Так что все это хорошо — вместо того, чтобы заставлять пользователя запоминать действительные значения полей и путаться с фильтрами отчетов, они могут указывать и нажимать на вещи — так просто, что это может сделать продавец.
Но теперь я хочу отфильтровать по списку состояний (или какому-либо другому текстовому полю). Я могу легко получить список состояний String[] с атрибутом multiselect списка выбора, но я не знаю, как применить его к отчету. В смысле SQL я хочу добавить «Состояние = x ИЛИ состояние = y ИЛИ состояние = Z» или «Состояние В (x, y, z)», где условие к запросу отчетов.
Как я мог бы это сделать — фильтровать отчет по списку допустимых значений для поля и выполнять это программно с контроллера?
-
Существует ли какой-либо способ программного создания временного отчета «на лету»? Клонируйте «шаблонный» отчет, а затем добавляйте или фильтруйте по мере необходимости?
-
Есть ли способ передать набор объектов в отчет? Некоторые отчеты возвращают много результатов, поэтому это кажется опасным.
-
При перенаправлении ссылки на страницу атрибут перенаправления указывает, что при значении false вся информация о состоянии сохраняется, но на целевой странице должен быть тот же контроллер — есть ли способ использовать контроллеры с отчетами для настройки их логики?
Ответ №1:
Если я вас правильно понял, вы почти на месте.
Добавьте значения ваших критериев через запятую в соответствующий параметр URL. В вашем примере параметр URL pv0:
/[your-report-id]?pv0=OR,FL
Комментарии:
1. Потрясающе! И после того, как я побеспокоился о некоторых функциях Salesforces, возвращающих списки элементов в этом формате, разделенном запятыми (как вы думаете, что, если в элементе уже есть запятая). Я беспокоился, что Salesforce не сможет воспроизвести некоторые функции, от которых зависят люди. Вы только что сделали мой день. Теперь, где учетная запись sock puppet, чтобы я мог проголосовать за вас еще раз.
Ответ №2:
Или вы можете просто разделить все значения запятыми в конструкторе отчетов.