1

XML ファイルの例:

<BrowserInformation>
      <Value>
            <Year>2011</Year>
            <Name>Firefox</Name>
            <Count>4952</Count>
        </Value>
            <Year>2011</Year>
            <Name>MSIE</Name>
            <Count>4613</Count>
        <Value>
            <Year>2011</Year>
            <Name>Chrome</Name>
            <Count>1401</Count>
        </Value>
        <Value>
            <Year>2011</Year>
            <Name>Safari</Name>
            <Count>1111</Count>
        </Value>
        <Value>
            <Year>2011</Year>
            <Name>Unknown</Name>
            <Count>1119</Count>
        </Value>
        <Value>
            <Year>2011</Year>
            <Name>Opera</Name>
            <Count>9</Count>
        </Value>
        <Value>
            <Year>2012</Year>
            <Name>Firefox</Name>
            <Count>3544</Count>
        </Value>
            ...
</BrowserInformation>

作成された縦棒グラフ: ここに画像の説明を入力

現在、XML ファイルの各レコードのグラフにバーがあります。各ブラウザーの集計カウントを取得したい (つまり、Firefox の場合は 4952 + 3544 になります)。データおよびストア クラスの構成オプション idProperty および groupers は、同じ名前のバーをチャート内で隣り合わせに配置しているように見えますが、それらを組み合わせているようには見えません。ファイル内のデータは変更できないと仮定します。どうすればこれを達成できますか? モデル、ストア、またはチャートで設定できる特定の構成プロパティはありますか? もしそうならどれ?それとも別の方法がありますか?

4

1 に答える 1

2

モデルで「合計」と言う新しいフィールドを使用し、変換関数を使用することをお勧めします。

Ext JS API ドキュメントから

「より複雑な値抽出戦略が必要な場合は、フィールドを変換関数で構成します。これは行オブジェクト全体に渡され、目的のデータを返すために必要な方法で問い合わせることができます。」

変換関数は次のようになります

function convert2Total(v, record){
    return record.data.firefox + record.data.chrome;
}

モデルの fields 配列は次のようになります。

fields: [ { name: "firefox" },
          { name: "chrome" },
          { name: "total", convert: convert2Total }]
于 2013-06-11T15:32:50.670 に答える