Frage

In einer Flex AdvancedDatGrid, sind wir viel Gruppierung zu tun. Die meisten Spalten sind die gleichen für die Eltern und für die Kinder, so möchte ich den ersten Wert der Gruppe als Zusammenfassung zeigen, anstatt die MAX, MIN oder AVG

Dieser Code funktioniert auf numerische aber nicht textuelle Werte (ohne die Kommentarzeile erhalten Sie Nans):

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]
}      

Die 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 Arbeit korrekt, OfferDescriptions dies nicht tun.

War es hilfreich?

Lösung

Es sieht aus wie die summaryFunction eine Zahl zurückgeben muss. Nach dem Adobe Bug-Tracker , ist es ein Fehler in der Dokumentation:

  

Kommentar von Sameer Bhatt:

     

In der Dokumentation ist es, dass erwähnt -   Die Einbau-Auswertungsfunktionen für SUM, MIN, MAX, AVG, COUNT und alle geben eine Zahl, die die Zusammenfassungsdaten enthält.

     

So können die Leute eine Vorstellung bekommen, aber ich stimme mit Ihnen überein, dass wir klar erkennen lassen, dass der Rückgabetyp eine Zahl sein sollte.

     

Wir halten es als Objekt, so dass es in der Zukunft leicht sein wird, mehr Dinge in hinzufügen.

Andere Tipps

Wenn Sie eine Zeichenfolge bekommen müssen dann die labelfunction auf dem Advanced verwenden zu zeigen. Dies wird die Zusammenfassungszeile machen.

(mx: Advancedheadertext = "Kommentar" width = "140" datafield = "Kommentar" 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;


                }

            }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top