即使值很低,SSRS条形图也会显示数据

时间:2012-04-20 13:45:48

标签: sql-server ssrs-2008 reporting-services

见图片: enter image description here

橙色项目总是明显低于蓝色项目,但图表上的橙色不显示,无论橙色值有多低,都有任何方法,总是有一个小的橙色线,以便用户可以清楚地看到哪个数字指的是橙色值。

3 个答案:

答案 0 :(得分:3)

有一种更简单,更优雅的方法(至少在SSRS 2008 R2中)。我不确定SSRS 2008或2005中有什么可用。

对于要显示小值的轴,

  • CrossAtMinimum属性设置为负数,大小足以显示在报告上。
  • IntervalOffset属性设置为相同的数字,但为正数。

这将使报告的另一个轴低于0,因此非常低(或甚至0)的值仍将显示少量颜色。您选择的负值和图表的最大值将决定此颜色切片的大小。

以下是此技术的示例,显示0%的少量颜色:

bar chart with 0% showing

如果省略CrossAt属性,则条形图离开y轴,留下间隙。您必须使用我上面提到的所有属性才能使颜色一直到0到轴线。

重要提示:设计模式下的图表无法正确显示。它将显示一个从x轴开始而不是0的负数,但不相信你的眼睛。实际预览报表时,结果将是正确的。不要让自己被设计模式预览所甩掉!

答案 1 :(得分:2)

根据对最终用户最重要的事情,我使用了几种方法:

1)将数据栏增加最大值的1% - 即字段B +(MAX(字段!a.value)/ 100),然后确保数据标签仅显示字段B的值,以便数据栏不会100%准确,但标签将是。

2)在辅助轴上绘制字段B的数据,然后将最大值固定为最大字段A值的一部分。

这两个都依赖于没有包含值的轴,但这些值是从标签本身派生的。

3)将条形图的数据标签格式化为蓝色/橙色字体或蓝色/橙色填充 - 当您需要保留轴上的值时,这非常有用。然后,如果值太小而无法在条形图中显示(即<最大图表值的1%),则可以使用条件格式仅对标签着色。

我个人会推荐选项3)因为如果有其他开发人员出现,可能会出现操纵数据栏长度的问题!

答案 2 :(得分:1)

1)将图表中的MAX值存储到变量(nChartMaxVal)。

2)创建一个函数,以便在值引用发生时放置在CHART上:

伪代码:

SubstValueNegligableValue( pValue, nChartMaxVal) as Double
                If pValue < (nChartMaxVal / 10) then

                    pValue = nChartMacVal / 10    'Sets Value to 10% of MaxChartValue'

                Endif

                Return pValue

3)pValue应该是您要评估的图表值。

希望这能指导你。

如果您正在使用存储过程,那么您可以在那里构建此逻辑并返回适用的调整值。我建议有一个由proc返回的标志,虽然它说如果已经进行了替换,那么你可以自动对你的报告进行评论,告诉用户查看图表已经进行了替换。

请参阅上面关于条件格式的Davins输入。这将有助于从真正的替代值中找出替代值。即也许用相同的颜色划分替代值以显示差异。

干杯

的Mac