Транспонирование набора строк в виде столбца в таблице данных Flex - PullRequest
0 голосов
/ 26 августа 2009

У меня есть массив, подобный следующему

public var sal:Array=[
     {empNo:1001, sal:1000, exp:400},
     {empNo:1002,    sal:3000, exp:240},
     {empNo:1003,    sal:1000, exp:452},
     {empNo:1004,    sal:5000, exp:348},
     ......
     {empNo:1550,    sal:2000, exp:330},

     ];

Мне нужно показать данные, используя 3-рядную гибкую сетку данных, где в первой строке будет отображаться empNo, во второй строке будет отображаться соответствующий оклад (поле sal), а в третьей строке будет отображаться Расход (поле exp).

Можете ли вы сказать мне, как это сделать?

Ответы [ 2 ]

0 голосов
/ 27 августа 2009

Вот ваше решение

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="formatData()">
    <mx:Script>
        <![CDATA[
            import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
            import mx.collections.ArrayCollection;
            [Bindable]
            var dp:ArrayCollection=new ArrayCollection();

            private function formatData():void
            {
                var salArray:Array=[{empNo: 1001, sal: 1000, exp: 400}, {empNo: 1002, sal: 3000, exp: 240}, {empNo: 1003, sal: 1000, exp: 452}, {empNo: 1004, sal: 5000, exp: 348}];
                var i:int=0;
                var empNo:Object=new Object();
                var sal:Object=new Object();
                var exp:Object=new Object();
                var columns:Array = new Array();

                for (i=0; i < salArray.length; i++)
                {
                    empNo["col"+i]=salArray[i].empNo;
                    sal["col"+i]=salArray[i].sal;
                    exp["col"+i]=salArray[i].exp;
                    var advancedDataGridColumn:AdvancedDataGridColumn=new AdvancedDataGridColumn();     
                    advancedDataGridColumn.dataField="col"+i;
                    columns.push(advancedDataGridColumn);
                }

                dp.addItem(empNo);
                dp.addItem(sal);
                dp.addItem(exp);
                adg1.columns=columns;
                adg1.invalidateDisplayList();
            }
        ]]>
    </mx:Script>
    <mx:AdvancedDataGrid x="40.5" y="163" id="adg1" designViewDataType="flat" dataProvider="{dp}">      
    </mx:AdvancedDataGrid>

</mx:Application>

Я думаю, это то, что вы спросили:)

0 голосов
/ 27 августа 2009

На самом деле я хотел сказать, что данные будут поступать в dataGrid в формате, указанном ниже. Ряд 1: -> Emp № 1001 1002 1003 Ряд 2: -> Sal 1000 3000 1000 Строка 3: -> exp 400 240 452

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...