【问题标题】:SQL Reporting Services 2005 - Non-queried Report ParametersSQL Reporting Services 2005 - 非查询报表参数
【发布时间】:2009-01-27 15:33:41
【问题描述】:

我正在 Reporting Services 中处理报表,但我无法弄清楚为什么我在使用非查询报表参数时遇到问题。

我正在尝试获取当前年份并尝试过:

=YEAR(TODAY())    
=DATEPART("yyyy",TODAY())    

我也尝试过 TODAY 而不是 TODAY()

所有这些似乎都破坏了我报告中的“年份”下拉菜单。我想如果出了什么问题,它就不会得到正确的默认值……但是不,它破坏了整个领域。

有什么想法吗?文章?

更新:
等等,等等,等等……最奇怪的事情。 Year 参数是此报告的第二个参数。并且它变灰(没有值)直到我选择第一个参数(我的情况是“类别”)。我是否以某种方式告诉 Year 参数这样做?或者 SSRS 2005 是否按顺序处理参数?我想我以前从未注意到这一点。

更新 2:
请查看所有cmets

【问题讨论】:

    标签: sql-server reporting-services


    【解决方案1】:
    =DateTime.Today.Year
    

    应该也可以。

    编辑:布鲁诺 - 我的行为和你看到的一样。我创建了一个示例报告,其中第一个参数为没有默认值的字符串,第二个参数的默认值为 =DateTime.Today.Year。当我将默认设置为订单中的第二个参数时,它显示为空且已禁用。

    我可以通过两种方式解决此问题:首先,将默认值 =String.Empty 添加到我的第一个参数中,第二种方法是更改​​参数的顺序。

    不确定这种行为是设计使然还是错误 - 但就像你说的,直到今天你在问题中指出它时我才注意到它。

    【讨论】:

    • 这会杀死该领域。它不加载并变灰。
    • 感谢您对此进行测试。我认为这是因为引擎不知道您的函数是否使用了它之前的参数。即使它只是 =DateTime.Now.Year。所以我不想让我的用户感到困惑。他们可能认为我的报告现在不知何故被破坏了。下一条评论中的解决方案。
    • 我在数据集中创建了一个额外的结果:SELECT YEAR(GETDATE()) AS [CurrentYear]。然后更改报告参数以将此查询用作默认值。另见 smb 的回答 +1
    【解决方案2】:

    试试:

    =Year(Now)
    

    我不确定这是否是您需要的,但它对我有用。我用它来形成一个日期字符串,所以我使用了 =Year(Now).ToString()。

    【讨论】:

    • 这两个都杀死了这个领域。它不加载并变灰。
    • 我应该添加到“让它工作”中,我在 2009 年手动输入了 5 个报告的非查询默认值。这行得通。
    • 普通的旧 2009 有效,但 =2009 无效。应该是?有人可以在他们的服务器上测试它吗?
    • 有谁知道这可能与 Service Pack 修复有关吗?
    【解决方案3】:

    SSRS 确实按顺序处理报告参数 - 如果您的参数之间存在依赖关系,则顺序可能很重要。

    来自 MSDN:“参数顺序是 级联时很重要 参数,或者当你想显示 users 一个的默认值 选择值之前的参数 其他参数。”

    因此,它会一直等到您为第一个参数设置默认值或输入第一个参数的值,然后再处理下一个参数,依此类推。

    http://msdn.microsoft.com/en-us/library/cc281392.aspx

    【讨论】:

      【解决方案4】:

      我通过确保我的所有参数至少有一些默认值来找到它,那么您将不会遇到它们变灰的日期时间选择器。因此,您的日期时间参数之前的每个参数都需要有一个(默认)值,否则它将不起作用。

      【讨论】:

        【解决方案5】:

        Def 由于参数的评估顺序。

        简单的解决方法;在参数选项卡中,您可以更改参数的顺序 - 这会将日期选择器移到列表顶部,然后立即启用,至少在我的服务器上。

        有人提出了基于查询的默认值的日期过滤器的问题 - 如果您这样做,您会注意到一个非常烦人的连锁反应,即在您有机会之前在日期更改时刷新屏幕重新查询报告。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多