我想知道我是否可以在报告本身中创建条件 Caml 过滤。根据提供的过滤器参数修改 Caml 查询。
如果没有,那么我正在寻求有关在 SP2010 中创建 SSRS 报告的最佳方法的建议。
谢谢
我想知道我是否可以在报告本身中创建条件 Caml 过滤。根据提供的过滤器参数修改 Caml 查询。
如果没有,那么我正在寻求有关在 SP2010 中创建 SSRS 报告的最佳方法的建议。
谢谢
这是做这种事情的方法
([Parameter1] = "" or Field1 contains [Parameter1])
and
([Parameter2] = "" or Field2 contains [Parameter2])
感谢君拉萨克
旧的,但我在上面浪费了几个小时,所以这里是:
(澄清一下,据我了解,问题在于 SharePoint CAML 查询中使用的报告参数不能是可选的;AFAIK 您无法实现我们在 SQL 中使用的模式“@parameter IS NULL OR column = @parameter”。)
创建从 SharePoint 检索所有记录的数据集。
创建一个接受空白的报告参数,并将空白(SSRS 中的空字符串)作为默认值。
将过滤器添加到(详细信息)行组(选项卡视图 > 分组以显示行和列组窗格,行组 >(详细信息)上下文菜单 > 组属性 > 过滤器 > 添加):
=Iif(Parameters!Client.Value = "", 1, Fields!Client.Value)
=Iif(Parameters!Client.Value = "", 1, Parameters!Client.Value)
因此,由于参数接受空白并具有空白作为默认值,因此在首次加载报表时将显示所有项目,因为在过滤器上,表达式和值都将评估为“1”。如果用户在 "Client" 参数文本框中提供了一个值,Expression 将评估为Fields!Client.Value
,Value 将评估为Parameters!Client.Value
并且项目将被过滤到与用户提供的值相对应的客户端。要返回完整列表,您只需清除客户端参数文本框中的值。该示例假设“=”作为过滤运算符,但它可以与“Like”一起使用;只需根据需要在值表达式上添加“*”。