преобразовать результат удаленного объекта в коллекцию массивов во флексе

Привет, ребята, я использую zend_amf и flex. Моя проблема в том, что мне нужно заполнить свою расширенную сетку данных с помощью коллекции массивов. у этой коллекции массивов есть дочерние элементы.

пример:

    [Bindable]
 private var dpHierarchy:ArrayCollection = new ArrayCollection([
  {trucks:"Truck", children: [
         {trucks:"AMC841", total_trip:1, start_time:'3:46:40 AM'},
         {trucks:"AMC841", total_trip:1, start_time:'3:46:40 AM'}])
         ]};

но источник данных моей сетки данных должен поступать из базы данных, как я могу преобразовать результат из удаленного объекта в коллекцию массивов, которая имеет тот же формат, что и в моем примере, или любым другим способом.

вот моя предварительная сетка данных

<mx:AdvancedDataGrid id="datagrid"
                         width="500" height="200" lockedColumnCount="1" lockedRowCount="0" horizontalScrollPolicy="on" includeIn="loggedIn" x="67" y="131">
        <mx:dataProvider>
            <mx:HierarchicalData id="dpHierarchytest" source="{dp}"/>
        </mx:dataProvider>
        <mx:groupedColumns>
            <mx:AdvancedDataGridColumn dataField="trucks"
                                       headerText="Trucks"/>
            <mx:AdvancedDataGridColumn dataField="total_trip"
                                       headerText="Total Trip"/>
            <mx:AdvancedDataGridColumnGroup headerText="PRECOOLING">
                <mx:AdvancedDataGridColumnGroup headerText="Before Loading">
                    <mx:AdvancedDataGridColumn dataField="start_time" headerText="Start Time"/>
                    <mx:AdvancedDataGridColumn dataField="end_time" headerText="End Time"/>
                    <mx:AdvancedDataGridColumn dataField="precooling_time" headerText="Precooling Time"/>
                    <mx:AdvancedDataGridColumn dataField="precooling_temp" headerText="Precooling Temp"/>
                </mx:AdvancedDataGridColumnGroup>
                <mx:AdvancedDataGridColumnGroup headerText="Before Dispatch">
                    <mx:AdvancedDataGridColumn dataField="bd_start_time" headerText="Start Time"/>
                    <mx:AdvancedDataGridColumn dataField="bd_end_time" headerText="End Time"/>
                    <mx:AdvancedDataGridColumn dataField="bd_precooling_time" headerText="Precooling Time"/>
                    <mx:AdvancedDataGridColumn dataField="bd_precooling_temp" headerText="Precooling Temp"/>
                </mx:AdvancedDataGridColumnGroup>
                <mx:AdvancedDataGridColumn dataField="remarks"
                                           headerText="Remarks"/>
            </mx:AdvancedDataGridColumnGroup>
            <mx:AdvancedDataGridColumnGroup headerText="Temperature Compliance">
                <mx:AdvancedDataGridColumn dataField="total_hit" headerText="Total Hit"/>
                <mx:AdvancedDataGridColumn dataField="total_miss" headerText="Total Miss"/>
                <mx:AdvancedDataGridColumn dataField="cold_chain_compliance" headerText="Cold Chain Compliance"/>
                <mx:AdvancedDataGridColumn dataField="average_temp" headerText="Average Temp"/>
            </mx:AdvancedDataGridColumnGroup>
            <mx:AdvancedDataGridColumnGroup headerText="Productivity">
                <mx:AdvancedDataGridColumn dataField="total_drop_points" headerText="Total Drop Points"/>
                <mx:AdvancedDataGridColumn dataField="total_delivery_time" headerText="Total Delivery Time"/>
                <mx:AdvancedDataGridColumn dataField="total_distance" headerText="Total Distance"/>
            </mx:AdvancedDataGridColumnGroup>
            <mx:AdvancedDataGridColumnGroup headerText="Trip Exceptions">
                <mx:AdvancedDataGridColumn dataField="total_doc" headerText="Total DOC"/>
                <mx:AdvancedDataGridColumn dataField="total_eng" headerText="Total ENG"/>
                <mx:AdvancedDataGridColumn dataField="total_fenv" headerText="Total FENV"/>
                <mx:AdvancedDataGridColumn dataField="average_speed" headerText="Average Speed"/>
            </mx:AdvancedDataGridColumnGroup>
        </mx:groupedColumns>
    </mx:AdvancedDataGrid>

Спасибо, и мне действительно нужна помощь.


person user364199    schedule 11.06.2010    source источник


Ответы (1)


Лучший способ сделать это - использовать режим отладки Flash Builder, чтобы точно увидеть, какие данные обрабатываются.

Соглашения об именах также могут быть установлены из запроса SQL, если они не соответствуют вашему MXML labelFields, или просто переименуйте labelFields.

Чтобы преобразовать результат ResultEvent, обычно достаточно сделать следующее: myArrayCollection = event.result as ArrayCollection;

Если возвращенные данные - это массив, я обнаружил, что вам необходимо сделать следующее: myArrayCollection = new ArrayCollection (event.result);

Надеюсь это поможет.

person Francisc    schedule 08.07.2010