2008-09-15 5 views
4

In einem Flex AdvancedDatGrid machen wir eine Menge Gruppierung. Die meisten Spalten sind die gleichen für die Eltern und für die Kinder, also würde ich gerne den ersten Wert der Gruppe als die Zusammenfassung statt der MAX, MIN oder AVG zeigenKönnen Sie einen String aus einer summaryObjectFunction zurückgeben

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

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 seine Arbeit korrekt, OfferDescription s nicht.

+0

http://flexgeek.wordpress.com/2007/06/ Dort habe ich meine Nachforschungen gemacht – Dave

Antwort

1

Es sieht so aus, als ob summaryFunction eine Zahl zurückgeben muss. Nach den Adobe bug tracker, es ist ein Fehler in der Dokumentation:

Kommentar von Sameer Bhatt:

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

So können die Leute eine Idee bekommen, aber ich stimme Ihnen zu, dass wir klar erwähnen sollten, dass der Rückgabetyp eine Nummer sein sollte.

Wir behielten es als ein Objekt, so dass es in der Zukunft einfach sein wird, weitere Dinge hinzuzufügen.

3

Wenn Sie eine Zeichenfolge zum Anzeigen benötigen, verwenden Sie die LabelFunction für advancedDataGridColumn. Dadurch wird die Zusammenfassungszeile gerendert.

(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; 


       } 

      } 
Verwandte Themen