Есть ли способ отфильтровать отчет Salesforce по списку значений?

#filter #reporting #salesforce #apex-code

#Фильтр #отчетность #salesforce #apex-code

Вопрос:

Хорошо, итак, я хочу иметь отчет, который не требует от конечного пользователя знаний о написании и настройке отчетов или запоминании значений полей. В конечном итоге я хочу, чтобы пользователь мог использовать коллекцию предварительно заполненных фильтров на основе списка выбора на странице apex, которую я создал, для фильтрации своего отчета.

Пока у меня есть это, поскольку я могу фильтровать по одному значению для каждого поля:

  1. Создайте отчет по учетной записи
  2. Добавьте фильтр для состояния выставления счетов, равного пустому (это фильтр № 1 или индекс 0)
  3. Создайте страницу со списком выбора и используйте контроллер для заполнения ее списком состояний
  4. Создайте CommandButton на странице и используйте объект PageReference для перенаправления на отчет
  5. В конце 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:

Или вы можете просто разделить все значения запятыми в конструкторе отчетов.