3

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

このコードの後、すべてのデータをロードしてグラフを表示します。これは機能しますが、スプライングラフとして開始したいと思います。これは、グラフの上にあるチャートコントロールを使用し、スプラインタイプを選択するだけで、ロード後に簡単に実行できますが、この設定ではグラフをロードできません。

Graphics.parmSeriesType(#line);を使用しようとすると (または#pieなど)コードでエラーは発生しませんが、実行するとエラーが発生します。

ヌルを取得できませんでした。

これらのマクロのいくつかを試してみましたが、#series_pointを使用する場合を除いて、すべて同じエラーが発生します。また、1〜25の通常のintを挿入して、これが機能するかどうかを確認しようとしましたが、同じエラーが発生します。

なぜこれが起こるのかについて何か考えはありますか?

4

1 に答える 1

3

Graphicsクラスとマクロを調べてChartFX、列のスタイルが設定されている方法と場所を見つけました。独自のグラフスタイルを設定し、AXの現在のパターンに従うには、次のことを試してください。

  1. 次のリストを検索して、SeriesChartType列挙型の整数値を見つけます。http: //msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.seriescharttype.aspx(このリストは順番に並んでおり、0-です。ベース。スプラインは列挙値4)です。

  2. この値のマクロをChartFXlikeで作成します#DEFINE.SERIES_SPLINE(4)ChartFXこのような3つの値(ポイント、バー、および列)は、マクロですでに定義されています。

  3. クラスのを変更してclassDeclarationGraphics別のマクロを追加します。#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);

于 2012-11-15T16:16:27.350 に答える