0

複数の列セットが必要なグラフを作成していますが、flexによって奇妙な結果が得られます。パセリフレームワークを使用しています。

これが私のmxmlコードです

  <mx:ColumnChart id="columnChart" 
            width="100%" height="100%"
            dataProvider="{myPM.myData}" 
            showDataTips="true"                         
            click="handleChartClick(event)"
            backgroundElements="{backgroundGrids}"                                  
            dataTipFunction="{myPM.formatColumnChartToolTipData}"   
            type="clustered"                            
            >

                <mx:horizontalAxis>
                    <mx:CategoryAxis id="hAxis" 
                             categoryField="{myPM.xFieldLabel}"
                             title="{myPM.xAxisDisplayLabel}"/>
                </mx:horizontalAxis>                                

                <mx:verticalAxis>
                    <mx:LinearAxis id="vAxis" 
                               title="{myPM.yAxisDisplayLabel}"/>
                </mx:verticalAxis>

                <mx:series> 
**works perfecly fine if i change type="clustered"**                
                    <mx:ColumnSet series="{myPM.columnSeries}"                                
                              type="stacked"
                              verticalAxis="{vAxis}"
                                      >
                    </mx:ColumnSet>
                    <mx:ColumnSet>
                        <mx:ColumnSeries xField="{myPM.xFieldLabel}" 
                                 yField="{myPM.yFieldLabel}"
                                 displayName="year"/>
                    </mx:ColumnSet>                                              
                </mx:series>

    </mx:ColumnChart>

私のプレゼンテーションモデルでは、次のコードで表示される列シリーズを返しています

public class MyPM
{

public var columnSeries:Array;

public void init()
{
        columnSeries=getColumnSeries();
}
public function getColumnSeries():Array
{
    var series:Array = new Array();
    var columnSeries:ColumnSeries;


    columnSeries=new ColumnSeries();
    //columnSeries.xField=xFieldLabel;
    columnSeries.yField="quarter1_profit_count";
    columnSeries.displayName="quarter1_title";                  
    series.push(columnSeries);

    columnSeries=new ColumnSeries();
    //columnSeries.xField=xFieldLabel;
    columnSeries.yField="quarter2_profit_count";
    columnSeries.displayName="quarter2_title";
    series.push(columnSeries);

    columnSeries=new ColumnSeries();
    //columnSeries.xField=xFieldLabel;
    columnSeries.yField="quarter3_profit_count";
    columnSeries.displayName="quarter3_title";
    series.push(columnSeries);

    columnSeries=new ColumnSeries();
    //columnSeries.xField=xFieldLabel;
    columnSeries.yField="quarter4_profit_count";
    columnSeries.displayName="quarter4_title";
    series.push(columnSeries);

    return series;  

}   
}

私がここで得ている問題は、「最初の列には4つのスタック列シリーズがあるはずですが、フレックスは4つのスタック列シリーズのうち1つをドロップします(残りの1つをドロップするのは3つまたは2つの列しか表示できません)。コードをデバッグしました。すべての列セットを削除して次のように書き込むと、最初のスタック列に対して正しい結果が得られます。ただし、2番目の列も必要なので、すべてのデータが1か所に合計されます。たとえば、1番目の積み上げ列には四半期ごとの利益額が表示され、2番目の列には年間の総利益を表示する必要があります。」

あなたはここでチャートを見ることができます

-定義で列セットとバインディングシリーズを直接使用せずに <mx:columnchart>定義で列セットとバインディングシリーズを直接使用せずに -四半期がここにドロップされていることがわかります。両方のグラフのデータソースは同じです ご覧のとおり、四半期はここにドロップされます。 両方のグラフのデータソースは同じです

私はここで何が間違っているのかわかりません。どんな種類の助けもいただければ幸いです。前もって感謝します。

4

1 に答える 1