4 Stimmen

Kann man einen String von einer summaryObjectFunction zurückgeben

In einer Flex AdvancedDatGrid Wir gruppieren viel. Die meisten Spalten sind für die Eltern und für die Kinder gleich, daher möchte ich den ersten Wert der Gruppe als Zusammenfassung anzeigen und nicht den MAX, MIN oder AVG

Dieser Code funktioniert bei numerischen, aber nicht bei textuellen Werten (ohne die kommentierte Zeile erhalten Sie NaN's):

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 richtig zu beurteilen, OfferDescription s nicht.

3voto

Wenn Sie eine Zeichenkette anzeigen lassen möchten, verwenden Sie die Labelfunktion für die Spalte advancedDataGridColumn. Dadurch wird die Zusammenfassungszeile angezeigt.

(mx:AdvancedDataGridColumn headerText="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;

                }

            }

1voto

Raleigh Buckner Punkte 8303

Es sieht so aus, als müsse die summaryFunction eine Zahl zurückgeben. Gemäß der Adobe Bug Tracker Es handelt sich um einen Fehler in der Dokumentation:

Kommentar von Sameer Bhatt:

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

So können sich die Leute ein Bild machen, aber ich stimme Ihnen zu, dass wir deutlich erwähnen sollten, dass der Rückgabetyp eine Zahl sein sollte.

Wir haben es als Objekt beibehalten, damit es in Zukunft einfach ist, weitere Dinge hinzuzufügen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X