フレックスアドバンストデータグリッド:概要行のスタイルを設定するにはどうすればよいですか?
-
02-07-2019 - |
質問
GroupingCollection と SummaryRow を持つ AdvancedDataGrid があります。集計行データを太字で表示するにはどうすればよいですか?以下は私のコードです:
<mx:AdvancedDataGrid width="100%" height="100%" id="adg" defaultLeafIcon="{null}" >
<mx:dataProvider>
<mx:GroupingCollection id="gc" source="{dataProvider}">
<mx:Grouping>
<mx:GroupingField name="bankType">
<mx:summaries>
<mx:SummaryRow summaryPlacement="group" id="summaryRow">
<mx:fields>
<mx:SummaryField dataField="t0"
label="t0" operation="SUM" />
</mx:fields>
</mx:SummaryRow>
</mx:summaries>
</mx:GroupingField>
</mx:Grouping>
</mx:GroupingCollection>
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn dataField="GroupLabel"
headerText=""/>
<mx:AdvancedDataGridColumn dataField="name"
headerText="Bank" />
<mx:AdvancedDataGridColumn dataField="t0"
headerText="Amount" formatter="{formatter}"/>
</mx:columns>
</mx:AdvancedDataGrid>
解決
以前は、これを行う必要がある場合、スタイル関数に条件を入力して、それが概要行であるかどうかを判断する必要がありました。
public function dataGrid_styleFunction (data:Object, column:AdvancedDataGridColumn) : Object
{
var output:Object;
if ( data.children != null )
{
output = {color:0x081EA6, fontWeight:"bold", fontSize:14}
}
return output;
}
子がある場合は、概要行にする必要があります。これが引用/引用解除の正しい方法であるかどうかはわかりませんが、少なくとも私の用途では機能します。
HTH
他のヒント
理解できたなら 文書 正しくは、アイテムレンダラーを指定することでこれを実行できるはずです。 rendererProviders
プロパティを設定し、ダミーの dataField 名を使用して概要を rendererProvider にリンクします。
private function styleCallback(data:Object, col:AdvancedDataGridColumn):Object
{
if (data["city"] == citySel)
return {color:0xFF0000,backgroundColor:0xFFF552,
fontWeight:'bold',fontStyle:'italic'};
// Return null if the Artist name does not match.
return null;
}
グループ化フィールドのみをフォーマットしたかったので、ADG で styleFunction を設定し、次に styleCallback() メソッドで、サブ行には存在するがグループ見出しには存在しないデータをチェックしました。
たとえば、グループとして大見出しがあり、次に小見出しや説明などを含むデータ行があります。したがって、私の関数では次のことをチェックします。
if (data["MinorHeading"] == null) return {color:0xFF0000,backgroundColor:0xFFF552,fontWeight:'bold'};
こうすることで、グループの見出しだけが赤と太字で書式設定されます。
参考までに、backgroundColor スタイルは適用されません (これを行うには単色のグラフィック レンダラーが必要だと思います)