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