gpt4 book ai didi

reporting-services - SSRS 中的瀑布图

转载 作者:行者123 更新时间:2023-12-01 02:05:11 25 4
gpt4 key购买 nike

我正在尝试在 SSRS Report Builder 2012 3.0 中制作瀑布图。它应该看起来像这样:Chart

我使用了范围图表类型,但我只能得到一堆彼此相邻的条形图。因此,它们不会像示例中那样从顶部开始向下移动。谷歌对 SSRS 中的此类图表非常“空洞”,所以我没有想法。是否有我应该考虑的某种属性(property)。

谢谢你的帮助。

最佳答案

我是从 this 重新发布的Jan Köhler (j.koehler [at] oraylis [dot] de) 的博客条目,所以如果它在某个阶段被删除,答案仍然是相关的。

对于我的示例,我们需要一个数据集,我们称之为 dsSales,作为我们的数据源。为此,我们使用以下查询。

SELECT ProductCategoryName, SalesAmount
FROM
(
VALUES ('Components' , 577.13)
, ('Accessories', 103.77)
, ('Bikes' , 865.08)
, ('Clothing' , 118.84)
, ('Other Vehicles' , -292.16)
) Sales(ProductCategoryName, SalesAmount);

查询结果如下所示。

enter image description here

我们使用范围柱形图作为基础,它链接到数据集 dsSales。 SalesAmount 列最初用于我们的数据系列。作为类别组,我们选择列 ProductCategoryName。为了更好地说明,可以隐藏图表标题、轴标题和图例。图表现在应该与此类似。

enter image description here

瀑布图

让我们看看我们的 SalesAmount 数据系列。

enter image description here

范围柱形图有两个值参数,一个是当前分配给 Sum(SalesAmount) 的高值,另一个是当前未分配任何值的底部值。现在我们如何获得我们的瀑布图?我们要做的是,根据它的前辈稍微向上或向下移动当前范围。一种可能性是通过表达式计算运行总数。为此,我们使用函数 RunningValue。为了更好地理解,我在下面概述了该方法。

enter image description here

因此,我们将获得较高和较低值的这两个表达式。
High Value = RunningValue(Fields!SalesAmount.Value, Sum, Nothing)
Low Value = RunningValue(Fields!SalesAmount.Value, Sum, Nothing)
- Sum(Fields!SalesAmount.Value)

如果我们查看预览,报告现在应该与此类似。

相加总和

现在我们有了瀑布图,我们可以做进一步的修改。总和呢?为了方便起见,我们还需要添加一个单独的数据系列。首先,我们修改数据集 dsSales 中的查询。
WITH Sales
AS
(
SELECT ProductCategoryName, SalesAmount
FROM
(
VALUES ('Components' , 577.13)
, ('Accessories', 103.77)
, ('Bikes' , 865.08)
, ('Clothing' , 118.84)
, ('Other Vehicles' , 118.84)
) Sales(ProductCategoryName, SalesAmount)
)
SELECT *
FROM
(
SELECT 1, ProductCategoryName, SalesAmount, NULL
FROM Sales
UNION ALL
SELECT 2, 'Sum total', NULL, SUM(SalesAmount)
FROM Sales
) Result(CategorySortId, CategoryLabel, SalesAmount, TotalSalesAmount);

查询结果如下所示。

enter image description here

发生了什么变化?
  • TotalSalesAmount 在单独的行中包含所需的总数。
  • CategorySortId 是一个用于排序的新列,因为总和应该是图表上的最后一个。
  • ProductCategoryLabel 已重命名为 CategoryLabel,因为它不再专门包含产品类别的标识符。

  • 由于我们对数据集所做的更改,图表也需要更新。类别组 ProductCategoryName 必须替换为 CategoryLabel。

    enter image description here

    在类别组属性中调整排序以确保正确的顺序。首先按 CategorySortId 排序,然后按 CategoryLabel 排序。

    enter image description here

    缺少的是所需的总和。为此,通过选择 TotalSalesAmount 添加一个新的数据系列。将 CustomAttribute 属性 DrawSideBySide 设置为 false 可防止具有相等 x 值的数据点并排绘制,正如名称所暗示的那样。此外,宽度通过 PointWidth 再次减小到 0.6。最终的结果是这样的。

    enter image description here

    摘要

    我向您展示的是如何通过现有的标准图表类型和一些表达式创建另一种图表类型,该图表类型不作为模板提供。通过组合不同的图表类型,它还具有高度的可定制性和可扩展性。此外,可以添加数据标签。背景颜色可以根据其值进行调整。可以突出显示不寻常或特殊的数据点。无论是增加所观察到的信息的意义所必需的。仍然是进一步刺激你的幻想的预尝。

    enter image description here

    关于reporting-services - SSRS 中的瀑布图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40788439/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com