微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SSRS - 报表生成器:使用工具提示在柱形图中显示组中的项目

如何解决SSRS - 报表生成器:使用工具提示在柱形图中显示组中的项目

我认为这可能很容易,但我不知道如何使它起作用。

我有一个柱状图,里面有按时间分组的票(四舍五入到 15 分钟)

  • X 轴 - 时间组(四舍五入为 15 分钟)
  • Y 轴 - 计数(票数)

我想在一列中显示所有分组票的“票号”和“标题”作为工具提示

我已经尝试过 lookup / lookupset / miltiplelookup - 它没有用。我也尝试加入归档 -> =Join(Fields!IB.Value,",")。那也没有用。我只是通过将鼠标悬停在我的专栏上来获得 #error。如果我只是显示该字段,我只会得到一个=Fields!IB.Value

有什么想法吗?

附言im 使用 Report-Builder 和 Ssrs2016

它的样子:

enter image description here

正如我之前提到的,我使用了一些舍入函数来按时间列对票证进行分组。这是代码

=Mid(Fields!time.Value,1,3) & Replace( Mid(Fields!time.Value,4,5),Mid(Fields!time.Value,Switch(

Cint(Mid(Fields!time.Value,5)) >= 00 And Cint(Mid(Fields!time.Value,5)) <= 14,"00",Cint(Mid(Fields!time.Value,5)) >= 15 And Cint(Mid(Fields!time.Value,5)) <= 29,"15",5)) >= 30 And Cint(Mid(Fields!time.Value,5)) <= 44,"30",5)) >= 45 And Cint(Mid(Fields!time.Value,5)) <= 59,"45" ))

解决方法

正如您可能猜到的,您的 lookupset() 将不起作用,因为它会将 11 进行比较,因此返回所有值。

假设您的时间组列名为 TimeGroup,并且您的票号和标题列名为“TicketID”和“TicketTitle”,则..

您需要将lookupset更改为类似

=JOIN(
    LOOKUPSET(
        Fields!TimeGroup.Value,Fields!TimeGroup.Value,CSTR(Fields!TicketID.Value) & ": " & Fields!TicketTitle.Value,"DataSet1"),"," + vbcrlf
    )

时间组将始终在工具提示的上下文中进行评估,因此如果您将鼠标悬停在时间组 A 上,时间组将被评估为 A,因此查找集将仅返回与 { 匹配的值{1}}。

表达式的返回部分将票号转换为字符串,添加一个冒号,然后附加标题。

我们将整个内容包装在 JOIN() 中,以在每个实例之间使用 A, 将 LOOKUPSET 数组的结果组合成单个字符串,以便结果每行显示 1。

,

我已经使用 TimeGroup 的 @Alan Schofield 函数解决了这个问题,但为此我不得不重新定义我的组设置:

  1. 使用我在问题中提到的组函数将自定义字段添加到我的数据集
  2. 按此字段将我的 ColumnChart 分组
  3. 使用 count(Fields!TimeGroup.Value) 作为 Y 轴(而不是 count(Fields!TicketID.Value)
  4. 从图表中加入组和数据集中的组,并在工具提示
  5. 中列出所有结果

P.S.我讨厌这个解决方案,但效果很好

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。