Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Microsoft ReportViewer:自定义Y轴标签以匹配特定格式_C#_Visual Studio_Customization_Reportviewer_Yaxis - Fatal编程技术网

C# Microsoft ReportViewer:自定义Y轴标签以匹配特定格式

C# Microsoft ReportViewer:自定义Y轴标签以匹配特定格式,c#,visual-studio,customization,reportviewer,yaxis,C#,Visual Studio,Customization,Reportviewer,Yaxis,我想自定义使用Microsoft ReportViewer绘制的图形的Y轴标签。 我想要的是有如下逻辑: If (value>1000000) return value/1000000 & "M" else return value 例如,如果标签的值为12000000,则标签值将为12M,否则,如果标签值为1200,则该值将保持为1200 我已尝试自定义数字格式以获得此类行为字符串,例如: = iif(value>1000000,value/1000000

我想自定义使用Microsoft ReportViewer绘制的图形的Y轴标签。 我想要的是有如下逻辑:

If (value>1000000)
   return value/1000000 & "M"
else 
   return value
例如,如果标签的值为12000000,则标签值将为12M,否则,如果标签值为1200,则该值将保持为1200

我已尝试自定义数字格式以获得此类行为字符串,例如:

= iif(value>1000000,value/1000000 'M',value)
(为了有助于我的问题的上下文化,我讨论的是这个窗口=>)

但是,正如预期的那样,它没有起作用

谷歌搜索也帮不上什么忙,似乎这种定制是不可能的。还是这样


多谢各位

我使用表达式窗口和更改图形的数据源内容解决了这个问题

在填充数据源的方法中,我添加了将大数字转换为小数字的逻辑:

reportModel.MillionsSymbol = "";
if (reportModel.TotalValue > 1000000)
{
      reportModel.TotalValue /= 1000000;
      reportModel.MillionsSymbol = "M ";
}
我还向数据源添加了新的
MillionsSymbol
字段,并根据TotalValue更改其内容

然后,我可以在对话框垂直轴属性->编号->类别[自定义]中使用这个新字段

="0.00" & Fields!MillionsSymbol.Value

这里的技巧是,我编写了一个表达式,返回一个字符串,其中包含格式化轴号标签的函数所需的字符掩码。在这个字符串中,我可以放置任何东西,只要它包含掩码(0.00、#、#、#、#、…)

这个方法允许我将一个变量连接到一个值,该值将作为图形垂直轴每个刻度的标签显示。它不允许我处理那个值,因为我没有找到任何方法来访问它。这就是我更改数据源中的值的原因。通过这种方式,我改变了图形点的值,然后改变了垂直轴刻度的值

最终结果:

*为清晰起见,对图像进行了编辑