[英]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.