【问题标题】:SSRS line chart. How to stop numbers from repeating in vertical axisSSRS 折线图。如何阻止数字在垂直轴上重复
【发布时间】:2012-04-06 17:54:01
【问题描述】:

我在 ssrs 中有一个折线图。每当最高线值为 1 或 2 而不是得到我想要的 0,1,2 比例时,我得到 0,1,1,2,2。这没有意义,尤其是因为数字值不是小数且未格式化。

请帮忙。

【问题讨论】:

  • 你能告诉我你使用的是图表中的 =count(fields!Item.Value) 还是 =Sum(fields!Item.Value) 的值

标签: sql-server reporting-services ssrs-2008 business-intelligence bids


【解决方案1】:

纵轴区间的表达式应低于表达式。

如果你的值是 sum

=IIF(Max(Sum(Fields!Item.Value))

如果你的价值是计数

=IIF(Max(Count(Fields!Item.Value))

注意:我在上面使用了 20 表示 Auto 可以正常工作。根据您的要求制作。

【讨论】:

    【解决方案2】:

    听起来垂直轴上有格式:它实际上试图显示 0、.5、1.0、1.5 和 2,但在四舍五入后显示为 0、1、1、2、2

    您应该将垂直轴间隔从“自动”更改为 1:

    【讨论】:

    • 我知道这一点。但是数据库中的值是整数而不是小数。而且这个图表的值可能在 1 到 100,000 之间,所以我真的不想更改间隔属性。
    • 试试=10 ^ LEN( ROUND((MAX(Fields!MyField.Value, "MyDataSetName")))这样的公式,它只是数据库中的整数不会改变这一点:SSRS仍然会放入小数区间。
    【解决方案3】:

    我知道这是一个很老的帖子。还是想回复一下..

    当比例较小时,我在柱形图上遇到了同样的问题......

    所以我在axis properties->interval中使用了以下表达式

    =IIF(Max(Fields!count_Items.Value)>=6,0,1) - [注意:这里 0 表示 - 自动间隔]

    希望这个答案对某人有所帮助。 :)

    【讨论】:

      【解决方案4】:

      这里的问题不仅是区间,还有轴使用的范围的最大值。您可以使用这种类型的表达式 IIF(Max(Sum(Fields!Item.Value))

      使用这样的自定义代码:

      Public Shared Function AxisRange(ByVal Number As Double) As String
      Dim RangeString as String
      If Number <=5 Then 
      RangeString ="5" 
      Else If Number <=10 Then
      RangeString =  "10"
      Else RangeString = "Auto" 
      End If
      Return RangeString
      End Function
      

      在范围的最大值中使用如下表达式:

      =code.AxisRange(Max(Fields!Field.Value))

      通过这样做,您可以强制范围的最大值与图表中的最大值的大小相似。这样就解决了问题。

      【讨论】:

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