Question

Dans un Flex AdvancedDatGrid , nous faisons beaucoup de regroupement. La plupart des colonnes sont les mêmes pour les parents et pour les enfants, donc j'aimerais montrer la première valeur du groupe sous forme de résumé plutôt que MAX, MIN ou AVG

Ce code fonctionne sur des valeurs numériques mais pas textuelles (sans la ligne commentée, vous obtenez 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]
}      

Le 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)
Le

travail de l'ID de l'offre est correct. La description de l'offre n'est pas.

Était-ce utile?

La solution

Il semble que summaryFunction doit renvoyer un nombre. Selon le l'outil de suivi des bogues Adobe , il s'agit d'un bogue dans la documentation:

  

Commentaire de Sameer Bhatt:

     

Dans la documentation, il est mentionné que -   Les fonctions de résumé intégrées pour SUM, MIN, MAX, AVG et COUNT renvoient toutes un numéro contenant les données de résumé.

     

Les gens peuvent donc avoir une idée, mais je suis d'accord avec vous pour dire qu'il faut clairement mentionner que le type de retour doit être un nombre.

     

Nous l'avons conservé en tant qu'objet afin qu'il soit facile d'ajouter d'autres éléments à l'avenir.

Autres conseils

Si vous devez afficher une chaîne, utilisez la fonction labelfunction sur advancedDataGridColumn. Cela rendra la ligne de résumé.

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


                }

            }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top