参数值被重置,多值参数不起作用

时间:2015-02-28 06:30:32

标签: sql ssrs-2012

两个问题:

  1. 从主屏幕(报告1)移动到下一个屏幕(报告2)作为当年的第一天时,我设置了日期参数(开始日期)的值。在报告2中,如果我尝试将开始日期更改为另一个日期,则会将其重置为一年的第一天。我将默认值设置为一年中的第一天,甚至在删除后,重置开始日期。

  2. 我在报告1中设置了一个多值参数(Area),它收集了四个整数。我将Area传递给Report 2(通过Join(Parameters!Area.value,“,”))。我还使用了SPLIT(Join(参数!Area.value,“,”),“,”)来获取值。然后,在数据集中,我将此参数称为“选择A1,A2,A3,B1,B2,B3从TEST_VIEW WHERE ID IN(?)”。但是此查询会抛出无法执行查询的错误。我在服务器端运行相同的查询,它运行正常。

  3. 注意:

    1. 我们不能将参数名称引用为@area,例如因为Composite Server不允许这样做。
    2. Split和Join对字符串进行操作,但我的参数是整数类型。这是一个问题吗?
    3. 请帮忙。

1 个答案:

答案 0 :(得分:0)

回复#2:

很少有事情要回答并在这里工作。首先,JOIN可以对整数进行操作,因为它返回一个字符串值,而SPLIT不能对一个整数进行操作,因为它对一个字符串进行操作(需要一个字符串来“拆分”)。我建议JOIN / SPLITS必然会使你想要做的事情变得复杂,尽管他们仍然应该在这种情况下工作。

尝试将您的多值参数从父报告中传递给Report2作为参数!Area.Value(无连接),然后使用多值整数参数再次在report2上捕获它。 SSRS将自动处理报告之间的多值传递,然后您的查询应该有效。

请注意,如果要将多值参数发送到SQL存储过程以进行数据检索,则必须使用JOIN / SPLIT,但必须在SQL端执行拆分。