Reporting services 在SSRS中,将组标签居中放置在图表中

Reporting services 在SSRS中,将组标签居中放置在图表中,reporting-services,vbscript,Reporting Services,Vbscript,我在SSRS的报告中有一个图表来显示票数。共有3个组:已提交、已关闭-FCR、已打开。每组有4种票证类型:已提交、已关闭、FCR、打开。对于已提交和打开的组,我希望图形上的标签位于条形图的中心。当计数为0时,不显示类型。这就是图表现在的样子: 这是添加到票证类型系列组的开关语句,用于订购类型: =Switch( Fields!TicketGroup.Value = "Submitted" AND Fields!TicketType.Value = "Submitted", 1, Fields!

我在SSRS的报告中有一个图表来显示票数。共有3个组:已提交、已关闭-FCR、已打开。每组有4种票证类型:已提交、已关闭、FCR、打开。对于已提交和打开的组,我希望图形上的标签位于条形图的中心。当计数为0时,不显示类型。这就是图表现在的样子:

这是添加到票证类型系列组的
开关
语句,用于订购类型:

=Switch(
Fields!TicketGroup.Value = "Submitted" AND Fields!TicketType.Value = "Submitted", 1,
Fields!TicketGroup.Value = "Submitted" AND Fields!TicketType.Value = "Closed", 2,
Fields!TicketGroup.Value = "Submitted" AND Fields!TicketType.Value = "Open", 3,
Fields!TicketGroup.Value = "Submitted" AND Fields!TicketType.Value = "FCR", 4,

Fields!TicketGroup.Value = "Closed" AND Fields!TicketType.Value = "Open", 1,
Fields!TicketGroup.Value = "Closed" AND Fields!TicketType.Value = "Closed", 2,
Fields!TicketGroup.Value = "Closed" AND Fields!TicketType.Value = "FCR", 3,
Fields!TicketGroup.Value = "Closed" AND Fields!TicketType.Value = "Submitted", 4,

Fields!TicketGroup.Value = "Open" AND Fields!TicketType.Value = "Submitted", 1,
Fields!TicketGroup.Value = "Open" AND Fields!TicketType.Value = "Closed", 2,
Fields!TicketGroup.Value = "Open" AND Fields!TicketType.Value = "Open", 3,
Fields!TicketGroup.Value = "Open" AND Fields!TicketType.Value = "FCR", 4)
闭合-FCR对中正确。提交和打开的定心需要更正。
switch
语句中的语法是否错误?我不明白为什么它不居中

更新 在每个组中添加要排序的列仍然不起作用。使用第一组对顺序进行排序。此外,我尝试对每种票证类型使用相同的值。因此,Submited、Closed和Open设置为2,FCR设置为3,但这也不起作用。这些值被标识为提交=3、关闭=1、FCR=4、打开=2

更新 我试图使用Lookup函数连接列,以获得每个组的正确排序顺序。它仍然不起作用。 提交的是,关闭=2,FCR=3,打开=4。 排序值必须不同吗?在不同的组中,它们不能是相同的排序值吗

更新
有没有办法改变x轴标签上的距离?

我已经整理了一张图表,如果我正确理解了您的意思,它似乎是有效的

我使用以下查询构建了一个虚拟数据集

declare @data table(TicketGroup varchar(20), TicketType varchar(20), Amount int)

insert into @data
VALUES
('Submitted', 'Submitted', 10),
('Submitted', 'Submitted', 11),
('Submitted', 'Closed', 9),
('Submitted', 'Closed', 12),
('Submitted', 'Closed', 13),
('Submitted', 'Open', 8),
('Submitted', 'FCR', 14),
('Closed - FCR', 'Open', 7),
('Closed - FCR', 'Open', 6),
('Closed - FCR', 'Closed', 10),
('Closed - FCR', 'Closed', 11),
('Closed - FCR', 'Closed', 12),
('Closed - FCR', 'FCR', 3),
('Closed - FCR', 'Submitted', 8),
('Open', 'Submitted', 4),
('Open', 'Closed', 5),
('Open', 'Open', 6),
('Open', 'Open', 7),
('Open', 'FCR', 9),
('Open', 'FCR', 10)

select *
    ,   CASE 
            WHEN d.TicketGroup = 'Submitted' THEN 1
            WHEN d.TicketGroup = 'Closed - FCR' THEN 3
            WHEN d.TicketGroup = 'Open' THEN 3
        END AS SortLevel1   
    ,   CASE 
            WHEN d.TicketGroup = 'Submitted' and d.TicketType = 'Submitted' THEN 1
            WHEN d.TicketGroup = 'Submitted' and d.TicketType = 'Closed' THEN 2
            WHEN d.TicketGroup = 'Submitted' and d.TicketType = 'Open' THEN 3
            WHEN d.TicketGroup = 'Submitted' and d.TicketType = 'FCR' THEN 4

            WHEN d.TicketGroup = 'Closed - FCR' and d.TicketType = 'Open' THEN 1
            WHEN d.TicketGroup = 'Closed - FCR' and d.TicketType = 'Closed' THEN 2
            WHEN d.TicketGroup = 'Closed - FCR' and d.TicketType = 'FCR' THEN 3
            WHEN d.TicketGroup = 'Closed - FCR' and d.TicketType = 'Submitted' THEN 4

            WHEN d.TicketGroup = 'Open' and d.TicketType = 'Submitted' THEN 1
            WHEN d.TicketGroup = 'Open' and d.TicketType = 'Closed' THEN 2
            WHEN d.TicketGroup = 'Open' and d.TicketType = 'Open' THEN 3
            WHEN d.TicketGroup = 'Open' and d.TicketType = 'FCR' THEN 4
        END as SortLevel2
from
    (SELECT TicketGroup, TicketType, SUM(Amount) as Amount FROM  @data GROUP BY TicketGroup, TicketType) d
然后我创建了一个简单的柱状图

然后,对于这两个类别组,单击设计器中的下拉列表,然后单击类别组属性

转到“排序”选项卡,并将排序分别设置为SortLevel 1或SortLevel 2

最终输出(需要一些整理!)如下所示


不幸的是,对图表只进行一次排序-不能对每个组分别进行排序。也许把不同的图表放在一起看起来像一张?如果条上有数字,可以删除线(和轴)。“少即是多”是当前的趋势(灰色而不是黑色)。您可以在数据集中添加一个新列来设置排序顺序,然后按该列排序吗。本质上是在SQL中复制switch语句(假设它来自SQL Server)。聪明!让我试试。我尝试了@AlanSchofield建议,但它只是从第一组中选择排序顺序。我尝试将第一个排序表达式添加为票证组,第二个添加为票证类型,但这也不起作用。如何为票证类型创建一个表达式以使用票证组,然后使用票证类型?谢谢您的示例。我今天会调查的。这个例子和我想要达到的目标有一些不同。我不知道这是否重要。在我尝试调和这些差异并将它们应用到我的例子中之后,我会让你知道它是如何进行的。我认为这行不通。在x轴上使用2种排序,但在x轴上只能有1组。我只希望在x轴上提交、关闭FCR和打开。该子组仅用于在一个组中分组Closed和FCR。“已提交”组将只包含“已提交”项目,“打开”组将只包含“打开”项目。FCR是Closed的一个子集,所以我想把它们放在一个组中。现在我要看的是如何定义和表达x轴间隔,以便第一个文本位于左侧,最后一个文本位于右侧。