繁体   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