2011-10-11 119 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

或者您可以在报告构造函数中用逗号分隔所有值。

相关问题