簡體   English   中英

Microsoft ReportViewer:自定義Y軸標簽以匹配特定格式

[英]Microsoft ReportViewer: Customize Y-Axis labels to match a specific format

我想自定義使用Microsoft ReportViewer繪制的圖形的Y軸標簽。 我想要的是具有如下邏輯:

If (value>1000000)
   return value/1000000 & "M"
else 
   return value

例如,如果標簽的值為12000000,則標簽的值為12M,否則,如果標簽的值為1200,則該值將保持為1200。

我試圖自定義數字格式以通過以下方式獲得這種行為:

= iif(value>1000000,value/1000000 'M',value)

(為了幫助將我的問題具體化,我在談論此窗口=> https://dotnetblurb.files.wordpress.com/2012/05/3.jpg

但是,正如預期的那樣,它沒有用。

谷歌搜索沒有太大幫助,似乎這種定制是不可能的。 還是?

非常感謝你!

我同時使用表達式窗口和更改圖形的數據源內容來解決此問題。

在填充數據源的方法中,我添加了將大數字轉換為小數字的邏輯:

reportModel.MillionsSymbol = "";
if (reportModel.TotalValue > 1000000)
{
      reportModel.TotalValue /= 1000000;
      reportModel.MillionsSymbol = "M ";
}

我還向我的數據源添加了新的MillionsSymbol字段,並根據TotalValue更改了其內容。

然后,我可以在“垂直軸屬性->數字->類別[自定義]”對話框中使用此新字段

="0.00" & Fields!MillionsSymbol.Value

表達式窗口

這里的竅門是,我編寫了一個表達式,該表達式返回一個字符串,其中包含格式化軸號標簽的函數所需的字符掩碼。 只要包含掩碼(0.00,#。##,...),我都可以在此字符串中放入任何內容。

這種方法使我可以將變量連接到該值,該值將作為圖的垂直軸的每個刻度顯示為標簽。 它不允許我使用該值,因為我找不到任何途徑來使用它。 這就是為什么我更改了數據源中的值的原因。 但是,通過這種方式,我更改了圖形點的值,然后更改了垂直軸刻度線的值。

最后結果:

在此處輸入圖片說明

*為清晰起見編輯的圖像

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM