Вопрос

В гибком режиме AdvancedDatGrid, мы делаем много группировок.Большинство столбцов одинаковы для родителей и детей, поэтому я хотел бы показать первое значение группы в виде сводки, а не MAX, MIN или AVG.

Этот код работает с числовыми, но не текстовыми значениями (без закомментированной строки вы получаете 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]
}      

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работает Правильно, OfferDescriptionнет.

Это было полезно?

Решение

Похоже, что summaryFunction должна возвращать число.Согласно Трекер ошибок Adobe, это ошибка в документации:

Комментарий Самира Бхатта:

В документации упоминается, что - встроенные сводные функции для суммы, MIN, MAX, AVG и подсчета все возвращают число, содержащее сводные данные.

Итак, люди могут получить представление, но я согласен с вами, что мы должны четко указать, что тип возвращаемого значения должен быть числом.

Мы сохранили его как объект, чтобы в будущем можно было легко добавлять в него новые элементы.

Другие советы

Если вам нужно отобразить строку, используйте функцию label в AdvancedDataGridColumn.Это отобразит итоговую строку.

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


                }

            }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top