【问题标题】:Reporting Services Bug and a proposed workaroundReporting Services 错误和建议的解决方法
【发布时间】:2015-02-04 09:13:31
【问题描述】:

我已经建立了一个业务报告,该报告生成每个部门每月销售额的季度报告,并且 Microsoft Reporting Services 中似乎存在错误。 报告模板是这样的

Sales report Q[@Quarter]/[@Year]

Department   Month   Sales
[department] [month] [sales]
             Sum     [Sum(sales)]
Overall sum          [Sum(sales)]

数据源是一个类似的sql查询

SELECT department,DATENAME(MONTH(invoiceDate)) AS month,SUM(invoiceAmount) AS sales
FROM sales WHERE ...
ORDER BY department,MONTH(invoiceDate) 
GROUP BY department,MONTH(invoiceDate)

假设部门 1 全年都存在,部门 2 是在 12 月添加的。生成的输出是:

Department   Month   Sales
Department 1   Oct   $ x
               Nov   $ y
               Dec   $ z
             Sum     $ (x+y+z)
Department 2         $ i
             Sum     $ i
Overall sum          $ (x+y+z+i)

您看,报告中缺少月份名称。我发现这种情况会发生每当一个部门的第一个月与前一个部门在最后一行的月份相同时,就像一个部门在 11 月中旬被替换 - 它在 11 月不复存在,并且新的也将于 11 月开始:

Department Month   Sales
OldDept      Oct   $ x
             Nov   $ y
           Sum     $ (x+y)
NewDept            $ z
             Dec   $ i
           Sum     $ (z+i)
Overall sum          $ (x+y+z+i)

据我所知,这是 Microsoft Reporting Services 中的一个错误,对吧?还是我忽略了一些选择?

否则,要解决这个问题,我认为最好的解决方案是让 DLL 认为月份名称不同 - 但它们在用户看来不应该不同。所以我想,如何在月份名称中添加不同数量的空格?由于我认为空格将用于计算列宽,因此每行的空格不应该太多。我将不得不在每隔一行添加一个空格字符。我如何在 SQL Server 中实现 THAT

【问题讨论】:

    标签: c# sql-server reporting-services webforms


    【解决方案1】:

    我试图重现你的问题。

    这是我的示例数据:

    这是表格在 SSRS 设计器中的样子:

    这是输出:

    它看起来对我来说是正确的。也许你在设计器中制作了错误的表格?

    【讨论】:

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