Graph 如何在图表中设置默认系列/样式?
在Ax2012和我使用图表时,它们工作正常。但我想更改它启动时显示的图形类型,例如“样条线”图表,而不是默认的“列”图表 这就是我现在拥有的: 这就是我想要的: 以下是我的一些基本代码:Graph 如何在图表中设置默认系列/样式?,graph,charts,axapta,dynamics-ax-2012,Graph,Charts,Axapta,Dynamics Ax 2012,在Ax2012和我使用图表时,它们工作正常。但我想更改它启动时显示的图形类型,例如“样条线”图表,而不是默认的“列”图表 这就是我现在拥有的: 这就是我想要的: 以下是我的一些基本代码: Graphics graphics; Microsoft.Dynamics.AX.Framework.Client.Controls.ChartToolBar chartToolbarControl1; #MACROLIB.ChartFx ; chartToolbarControl1 = chart
Graphics graphics;
Microsoft.Dynamics.AX.Framework.Client.Controls.ChartToolBar chartToolbarControl1;
#MACROLIB.ChartFx
;
chartToolbarControl1 = chartToolbarControlHostChart.control();
chartToolbarControl1.set_ChartControl(Chart.control());
graphics = new graphics();
graphics.ManagedHostToControl(Chart);
graphics.parmCreateType(#ct_cluster| #cT_tool);
Graphics.parmSeriesType(#line);
graphics.create();
在这段代码之后,我加载所有数据并显示图表。这是可行的,但我希望它以样条曲线图开始。加载后,可以通过使用图形上方的图表控件并仅选择样条线类型轻松完成此操作,但我无法使用此设置加载图形
如果我尝试使用Graphics.parmseriesype(#line);(或#派或其他)
我的代码中没有错误,但是当我运行它时,我得到了错误:
无法获取Null
我试过使用其中几个宏,但它们都会产生相同的错误,除非我使用#series_point。我也尝试过只插入1-25之间的常规整数,看看这是否有效,但它们给了我相同的错误
知道为什么会发生这种情况吗?我查看了
Graphics
类和ChartFX
宏,找到了设置列样式的方式和位置。要设置自己的图表样式并遵循AX中的当前模式,请尝试以下操作:
seriechartType
enum整数值:(此列表按顺序排列,以0为基础。样条曲线是枚举值4)ChartFX
中为该值创建一个宏,如#DEFINE.SERIES_样条曲线(4)
。ChartFX
宏中已经定义了三个类似的值(用于点、条和列)图形
类的类声明
以添加另一个宏:#DEFINE.SeriesChartTypeEnum_样条线(“样条线”)
Graphics
类的setChartType
方法。在方法中出现的当前if
语句之后,添加以下内容:
else if (seriesType == #SERIES_SPLINE)
{
newChartType = ClrInterop::parseClrEnum(#SeriesChartTypeEnum, #SeriesChartTypeEnum_Spline);
}
Graphics.parmSeriesType(#line)代码>,放置图形.parmSeriesType(#系列#U样条)代码>
我不知道它在ax 2012中是如何工作的,但在ax 4.0中,更改图形类型是直接在ActiveX控件上完成的,而不是图形对象<代码>myActiveXChartControl.Gallery(#PIE)例如code>。进一步检查后,我觉得
SeriesChartType
enum整数值根本不重要,唯一重要的是,当调用ClrInterop::parseClrEnum
时,作为第二个参数传递的字符串值是所需图表类型的名称(例如“样条线”)。