2011-10-11 122 views
1

好的,所以我想要一份報告,不需要最終用戶知道所有關於編寫和定製報告或記憶字段值的信息。我最終希望用戶能夠在我創建的apex頁面上使用一組預先填充的基於SelectList的過濾器來過濾他們的報告。有沒有辦法通過值列表來過濾Salesforce報表?

到目前爲止,我有這個,只要能夠通過一個值的每個字段進行過濾:

  1. 創建帳戶報告
  2. 添加過濾器BillingState的Equals 空白(這是過濾器#1或索引0)
  3. 使用SelectList創建頁面並使用控制器以狀態列表填充它
  4. 在頁面上創建CommandButton並使用PageRefer ENCE對象重定向到報告
  5. 在URL爲報告結束時,添加PV0(索引0參數值)= [選擇狀態]

因此,這是一個好主意 - 代替讓用戶記住有效的字段值並弄亂報告過濾器,他們可以點擊並點擊內容 - 銷售人員可以做到這一點。

但現在我想過濾一個列表狀態(或其他文本字段)。我可以通過SelectList的multiselect屬性輕鬆獲得一個String []狀態列表,但我不知道如何將其應用於報表。在SQL意義上,我希望在報告查詢的條件中添加「State = x OR State = y OR State = Z」或「State IN(x,y,z)」。


我怎麼能這樣做 - 按字段的有效值列表過濾報表,並從控制器編程它?

  • 有一些方法來可編程動態創建一個臨時報告?克隆一個「模板」報告,然後根據需要添加OR過濾器?

  • 有沒有辦法將一組對象傳遞給報表?一些報告返回了很多結果,所以這看起來很危險。

  • 當進行PageReference重定向時,Redirect屬性指出當它爲false時,所有狀態信息都會保留,但目標頁面必須具有相同的控制器 - 有沒有辦法使用帶有報告的控制器來定製其邏輯?

回答

5

如果我找到了你,你幾乎就在那裏。

將您的條件值逗號分隔爲相應的URL參數。在您的示例中,pv0 URL參數:

/[your-report-id]?pv0=OR,FL 
+1

令人驚歎!在我擔心一些Salesforces函數返回這個以逗號分隔的格式的項目列表(你在想什麼,如果該項目已經有逗號)。我一直擔心Salesforce將無法複製我們獲得人們依賴的某些功能。你讓我今天很開心。現在襪子傀儡帳戶在哪裏,所以我可以給你一次投票。 – David

0

或者您可以在報告構造函數中用逗號分隔所有值。

相關問題