Pregunta

En un Flex AdvancedDatGrid, estamos haciendo un montón de agrupación.La mayoría de las columnas son los mismos para los padres y para los niños, así que me gustaría mostrar el primer valor del grupo como el resumen en lugar de la de MAX, MIN, o AVG

Este código funciona en numérica, pero no textual valores (sin la línea de comentarios de obtener de 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]
}      

El 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's trabajo Correctamente, OfferDescriptions no.

¿Fue útil?

Solución

Parece que el summaryFunction tiene que devolver un número.De acuerdo a la Adobe bug tracker, es un error en la documentación:

Comentario de Sameer Bhatt:

En la documentación se menciona que - El construido-en funciones de resumen para SUM, MIN, MAX, AVG, y CONTAR todas devolver un Número que contiene el resumen de los datos.

Para que la gente pueda tener una idea, pero estoy de acuerdo con usted en que debemos mencionar claramente que el tipo de retorno debe ser un Número.

Lo guardamos como un Objeto de modo que va a ser fácil en el futuro para añadir más cosas en él.

Otros consejos

Si usted necesita para obtener una cadena a mostrar a continuación, utilizar la labelfunction en el advancedDataGridColumn.Esto hace que la fila de resumen.

(mx:AdvancedDataGridColumn headerText="Comentario" width="140" dataField="comentario" 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;


                }

            }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top