4

FlexAdvancedDatGridでは、多くのグループ化を行っています。ほとんどの列は親と子で同じなので、MAX、MIN、または AVG ではなく、グループの最初の値を要約として表示したいと思います。

このコードは数値では機能しますが、テキスト値では機能しません (コメント行がないと NaN になります)。

private function firstValue(itr:IViewCursor,field:String, str:String=null):Object 
{
  //if(isNaN(itr.current[field])) return 0  //Theory: Only works on Numeric Values?
  return itr.current[field]
}      

XML:

(mx:GroupingField name="Offer")
  (mx:summaries)
    (mx:SummaryRow summaryPlacement="group")
      (mx:fields)
        (mx:SummaryField dataField="OfferDescription"   label="OfferDescription" summaryFunction="firstValue"/)
        (mx:SummaryField dataField="OfferID"   label="OfferID" summaryFunction="firstValue"/)
        (/mx:fields)
    (/mx:SummaryRow)
  (/mx:summaries)
(/mx:GroupingField)

OfferIDの仕事 正しく、そうでOfferDescriptionはありません。

4

2 に答える 2

3

表示する文字列を取得する必要がある場合は、advancedDataGridColumn で label 関数を使用します。これにより、集計行がレンダリングされます。

(mx:AdvancedDataGridColumn headerText="コメント" width="140" dataField="コメント" labelFunction="formatColumn" /)

            private function getNestedItem(item:Object):Object {

                try {
                    if (item.undefined[0]) {
                        item = getNestedItem(item.undefined[0]);
                    }
                } catch (e:Error) {
                    // leave item alone
                }
                return item;
            }           
            private function formatColumn(item:Object, column:AdvancedDataGridColumn):String {

                var output:String;
                // If this is a summary row
                if (item.GroupLabel) {

                    item = getNestedItem(item);
                } 

                switch (column.dataField) {

                    case 'comment':

                        return item.comment;


                }

            }
于 2009-09-10T17:10:07.600 に答える
1

summaryFunctionは数値を返す必要があるようです。Adobeバグトラッカーによると、これはドキュメントのバグです。

Sameer Bhattからのコメント:

ドキュメントには、次のように記載されています。-SUM、MIN、MAX、AVG、およびCOUNTの組み込みのサマリー関数はすべて、サマリーデータを含む数値を返します。

ですから、人々はアイデアを得ることができますが、リターンタイプは数値でなければならないことを明確に言及する必要があることに同意します。

将来、さらに簡単に追加できるように、オブジェクトとして保持しました。

于 2008-09-16T03:25:16.503 に答える