如何在图表中设置默认系列/样式?

时间:2012-11-12 09:38:13

标签: graph charts axapta dynamics-ax-2012

在Ax2012中使用图表,我们工作正常。但我想改变它启动时显示的图形类型,例如“样条线”图,而不是默认的“列”图。

这就是我现在拥有的: http://i.stack.imgur.com/RyR9v.png

这就是我想要的: http://i.stack.imgur.com/4cIIO.png

这是我的基本代码:

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();

在此代码之后,我加载所有数据并显示图表。这有效,但我希望它以Spline图形开始。这可以通过使用图表上方的图表控件加载后轻松完成,只需选择样条曲线类型,但我无法使用此设置加载图表。

如果我尝试使用Graphics.parmSeriesType(#line); (或#pie或其他) 我的代码中没有出错,但是当我运行它时出现错误:

  

无法获得Null。

我已尝试使用其中几个宏,但除非我使用#series_point,否则它们都会产生相同的错误。我也试过从1-25插入常规的整数以查看是否有效,但它们给了我同样的错误。

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:3)

我查看了Graphics类和ChartFX宏,找到了列样式的设置方式和位置。要设置自己的图表样式并按照AX中的当前模式,请尝试以下操作:

  1. 通过搜索此列表找到SeriesChartType枚举整数值:http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.seriescharttype.aspx(此列表按顺序排列,并且从0开始。样条曲线为枚举值4)。

  2. ChartFX #DEFINE.SERIES_SPLINE(4)中为此值创建一个宏。这样的三个值(对于Point,Bar和Column)已经在ChartFX宏中定义。

  3. 修改classDeclaration类的Graphics以添加另一个宏:#DEFINE.SeriesChartTypeEnum_Spline("Spline")

  4. 修改setChartType类的Graphics方法。在方法中存在的当前if语句之后,添加以下内容:

    else if (seriesType == #SERIES_SPLINE)
    {
        newChartType = ClrInterop::parseClrEnum(#SeriesChartTypeEnum, #SeriesChartTypeEnum_Spline);
    }
    
  5. 现在,您可以返回原始代码示例,代替Graphics.parmSeriesType(#line);,放置Graphics.parmSeriesType(#SERIES_SPLINE);