2012-11-12 73 views
3

使用Ax2012中的圖表,我工作得很好。但是我想改變它啓動時顯示的圖形類型,例如「Spline」 - 圖表,而不是默認的「列」圖表。如何在圖表中設置默認系列/樣式?

這是我現在有: http://i.stack.imgur.com/RyR9v.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(); 

這個代碼,我加載畢竟數據並顯示圖形。這可以工作,但我希望它以樣條曲線圖開始。通過使用圖表上方的圖表控件,只需選擇樣條類型,即可輕鬆完成此操作,但無法使用此設置加載圖表。

如果我嘗試使用Graphics.parmSeriesType(#line); (或#pie或一些其它) 我沒有在我的代碼得到一個錯誤,但是當我運行它,我得到的錯誤:

Null could not be obtained.

我已經試過幾個這些宏,但他們都得到除了如果我使用#series_point相同的錯誤。我也試過從1-25插入常規整數,看看它是否有效,但它們給我的錯誤是一樣的。

任何想法爲什麼發生這種情況?

+0

我不知道它如何在ax 2012中工作,但在ax 4.0中,更改圖形類型是直接在ActiveX控件上完成的,而不是圖形對象。 'myActiveXChartControl.Gallery(#PIE);'例如。 – Pierre

回答

3

我查看了Graphics類和ChartFX宏,並找到了設置列樣式的方式和位置。要建立自己的圖表樣式,然後按照AX當前的模式,請嘗試以下操作:

  1. 通過搜索該列表查找SeriesChartType枚舉整數值:http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.seriescharttype.aspx(這個列表是秩序,是從0開始的。Spline是枚舉值4)。

  2. ChartFX創建此值的宏,如#DEFINE.SERIES_SPLINE(4)。像這樣的三個值(對於點,條和列)已經在ChartFX宏中定義。

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

  4. 修改Graphics類的setChartType方法。目前if語句出現在方法後,補充一點:

    else if (seriesType == #SERIES_SPLINE) 
    { 
        newChartType = ClrInterop::parseClrEnum(#SeriesChartTypeEnum, #SeriesChartTypeEnum_Spline); 
    } 
    
  5. 現在,你可以回到你原來的代碼示例,並代替Graphics.parmSeriesType(#line);,把Graphics.parmSeriesType(#SERIES_SPLINE);

+2

經過進一步的檢查,在我看來''SeriesChartType' enum整數值根本不重要,唯一重要的是當調用'ClrInterop :: parseClrEnum'時,您傳遞的字符串值作爲第二個參數是所需圖表類型的名稱(例如「樣條線」)。 – SShaheen

相關問題