سؤال

في فليكس AdvancedDatGrid, ، نحن نقوم بالكثير من التجميع.معظم الأعمدة هي نفسها بالنسبة للوالدين والأطفال، لذا أرغب في إظهار القيمة الأولى للمجموعة كملخص بدلاً من MAX أو MIN أو AVG

يعمل هذا الرمز على قيم رقمية وليس نصية (بدون السطر الذي تم التعليق عليه تحصل على 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]
}      

ملف 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لا تفعل ذلك.

هل كانت مفيدة؟

المحلول

يبدو أن وظيفة الملخص يجب أن تُرجع رقمًا.بحسب ال أدوبي تعقب الأخطاء, ، إنه خطأ في الوثائق:

تعليق من سمير بهات:

في الوثائق ، يذكر ذلك - وظائف الملخص المدمجة لـ Sum و Min و Max و Avg و Count جميعها إرجاع رقم يحتوي على بيانات الموجزة.

حتى يتمكن الأشخاص من الحصول على فكرة ولكني أتفق معك في أنه يجب علينا أن نذكر بوضوح أن نوع الإرجاع يجب أن يكون رقمًا.

لقد احتفظنا به ككائن حتى يكون من السهل في المستقبل إضافة المزيد من الأشياء إليه.

نصائح أخرى

إذا كنت بحاجة إلى الحصول على سلسلة لإظهارها، فاستخدم وظيفة التسمية في 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