日々のアンテナ

日々アンテナを貼って、いろんな情報をキャッチ、発信したいと思います。
2017年10月 ≪  123456789101112131415161718192021222324252627282930 ≫ 2017年12月
TOPお仕事のこと ≫ [flex]積み上げグラフのdatatipでtotalを出力する。

[flex]積み上げグラフのdatatipでtotalを出力する。

日々、javaとflexに明け暮れてますが・・・
javaは一通りコーディングが終わったので、flexの最終調整中。
なんといっても本が少ない。でっかい本屋さんにいっても3,4冊しかなかった。
サイトを参考にさせてもらうも、ほとんど英語。苦手。

とはいえ、やらなきゃならないので必死です。
ColumnChartのtypeが100%だったりstackedだったりするグラフのdatatipにtotalを表示する方法です。
デフォルトでは表示してますが、type=100%にすると100%になる割合でグラフを作ってくれるのはいいのですが、データチップ内の値が小数点以下14桁ぐらい表示されちゃう。
これをカスタマイズすると、デフォルトの値全てを自分で取ってこなくちゃならない。

んでもって
Flex Stacked Chart: Display custom dataTip total value
を参考にさせてもらいましたが、期待通りの動きにならず・・・

コードを読み解くうちに、
最初の
for(var property:Object in hitData.item){
itemsDictionary[property] = hitData.item[property];
}

// Have to get instance of hitData.element (a ColumnSeries) to
// access element.series.stacker.series which holds the yField
// values e.g. toys. Note: needed as hitData.element.
// series.stacker is not accessible directly.
var series:ColumnSeries = ColumnSeries(hitData.element);
for( var key:Object in itemsDictionary)
{
for( var i:int = 0; i < series.stacker.series.length; i++){
// Need to check that we only add yField values, as "period-Q1"
// is also in hitData.item along with "toys-900" etc
if(series.stacker.series[i].yField == key.toString()){
total += itemsDictionary[key];
}
}
}

for( var i:int = 0; i < series.stacker.series.length; i++){
total += Number(hitData.item[series.stacker.series[i].yField]);
}
でいいんじゃない?と気付きました。
type="100%"でしか検証してないのでどうかわからないですけど。

Comment













非公開コメントにする
Trackback

Trackback URL