2

我在ssrs中有一個折線圖。每當最高的行值是1或2,而不是得到0,1,2的比例,這是我想要的,我得到0,1,1,2,2。這種情況沒有意義,特別是因爲數字值不是小數,也不是格式化的。SSRS折線圖。如何停止重複在垂直軸上的數字

請幫忙。

+0

您可以告訴我,您正在使用的圖表中的= count(fields!Item.Value)或值爲 – 2012-04-09 10:43:51

回答

5

垂直軸間距的表達式應低於表達式。

如果你的價值總和

= IIF(MAX(總和(領域!Item.Value))< 20,1, 「自動」)

如果你的價值數

= IIF(Max(Count(Fields!Item.Value))< 20,1,「Auto」)

注意:我使用20作爲上面的Auto,它會很好地工作。根據您的要求製作。

2

聽起來有在垂直軸格式化:即它實際上試圖表明0,0.5,1.0,1.5,& 2,但舍入後散發出來作爲0,1,1,2,2

您應該將垂直軸間隔從「自動」更改爲1:enter image description here

+0

的Value = Sum(fields!Item.Value)我知道這一點。但是數據庫中的值是整數而不是小數。而且這個圖表的值可能在1到100,000之間,所以我真的不想改變區間屬性。 – Beninja2 2012-04-06 20:13:39

+0

嘗試一個公式,例如'= 10^LEN(ROUND((MAX(Fields!MyField.Value,「MyDataSetName」)))'只有數據庫中的整數不會改變這個:SSRS仍然會將分數間隔。 – 2012-04-06 20:38:17

0

這裏的問題不僅是間隔,而且是軸使用範圍的最大值。您可以使用此類型的表達式IIF(Max(Sum(Fields!Item.Value))< 20,1,「Auto」)設置間隔的值,但該軸仍然可能使比例過大。然後它往往用小數填充,或者如果你壓縮小數點,你會重複整數。

使用這樣的自定義代碼:

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(字段Field.Value))

通過這樣做,您可以強制範圍的最大值與圖表中的最大值具有相似的大小。這解決了這個問題。