ここで私と一緒に耐えなさい。必要なことを達成するための奇妙な設定があります。基本的に、WebServiceによって返されたデータを表示するAdvancedDataGridがあります。データはXML形式です。
<children label="parent 1" value="3100">
<children label="child 1" value="1100">
<children label="grandchild 1" value="200">
</children>
<children label="grandchild 2" value="300">
</children>
<children label="grandchild 3" value="600">
</children>
</children>
<children label="child 2" value="2000">
<children label="grandchild 4" value="1200">
</children>
<children label="grandchild 5" value="800">
</children>
</children>
</children>
<children label="parent 2" value="1000">
<children label="child 3" value="1000">
<children label="grandchild 6" value="300">
</children>
<children label="grandchild 7" value="700">
</children>
</children>
</children>
XMLをWebService結果ハンドラーでHierarchicalDataオブジェクトに変換します。AdvancedDataGridの列も動的に作成します。これは、ユーザー入力に応じて異なる列を表示するために使用されていたためです。ただし、AdvancedDataGridの下部に合計「行」も表示する必要があります。XMLListCollectionをGroupingCollectionに変換して、この方法で合計行を作成する方法がわからないため、実際にWebServiceで合計を計算し、これをXMLのノードとして返します。
<totals value="4100" />
この「合計」データを使用して、最初のADGのすぐ下にあるヘッダーのない2番目のAdvancedDataGridにデータを入力し、最初のADGの「最後の行」のように「表示」します。両方のADGは、同じBindable列の配列を使用します。
<mx:AdvancedDataGrid id="reportADG" dataProvider="{__model.reportData}"
columns="{__model.adgDrillColumns}" width="100%" height="100%" />
<mx:AdvancedDataGrid id="reportTotalsADG"
dataProvider="{__model.reportTotalsData}"
folderOpenIcon="{null}" folderClosedIcon="{null}"
disclosureClosedIcon="{null}" disclosureOpenIcon="{null}"
defaultLeafIcon="{null}" showHeaders="false"
selectable="false" rowCount="1"
columns="{__model.adgColumns}" width="100%" />
ただし、最初のADGで列のサイズが変更された場合、2番目のADGの列もサイズ変更する方法が見つかりません。私に何ができる?