我希望报告根据用户选择的位置参数选择默认日期时间值,但问题是当用户选择其他位置时,日期时间参数不会更新。我确保将location参数放在日期时间参数之上,但它仍然没有按照我的预期运行,我在这里做错了什么?
答案 0 :(得分:3)
不幸的是,这是“按设计”。 Microsoft Connect - SSRS - default not refreshed for cascading parameters.
2007年微软发布:“如上所述,事实并非如此 一个bug。我们不会重新评估后续的默认值 参数,除非所选值不再是有效值 名单。我们不知道目前的价值是否具体 由用户请求或由于默认值而存在。你可以 通过某种方式来控制这种行为 但它目前按设计工作。“
我认为这是SSRS中的一个错误。但微软已经解决了这个问题。如果它也影响你,请登录连接并投票确认
Microsoft Connect - Your feedback improving Microsoft products.
解决方法/黑客在这里:Boyan Penev - SSRS Cascading Parameters Refresh: Solved.
然而,只有依赖参数具有有效值的LIST,并且其他用户报告它仅适用于第一个依赖参数时,hack才有效。
如果依赖参数是自由格式条目或日期,则根本不能使用hack。
答案 1 :(得分:1)
考虑将您的日期时间值放在具有基于位置参数
的逻辑的数据集中SELECT CASE @Location WHEN 'Paris' THEN GETDATE()+10
WHEN 'Berlin' THEN GETDATE()+11
WHEN 'New York' THEN GETDATE()+8
ELSE GETDATE() END as DefaultDate
然后将日期参数默认值设置为此数据集。
答案 2 :(得分:0)
不幸的是,SSRS一旦设置就不刷新级联参数。除了重新加载报告之外,我所知道的唯一方法是使用ReportViewerDialog创建自定义UI。
答案 3 :(得分:0)
我发现如果你使用存储过程渲染子参数,通过传入父选择,数据集将被刷新
答案 4 :(得分:-1)
我一直有同样的问题,并意识到导致这个问题是一个简单的错误。在这里发布OP和其他任何寻找此问题的人。
您需要确保SSRS中的所有参数都设置为正确的值字段,而不是显示字段。您可以通过简单地在参数默认值中选择“名称”字段而不是请求的“值”字段来复制许多已识别的级联参数问题。这将正确填充下拉列表,但不会选择任何内容,并且级联将停止。然后,由于Closed be Design问题,可能看起来好像级联参数没有刷新。