2010-06-11 5 views
0

안녕 얘들 아, 메신저를 사용하여 zend_amf와 flex. 내 문제는 배열 컬렉션을 사용하여 내 사전 DataGrid 채울 수있다. 이 배열 컬렉션에는 자식이 있습니다.리모트 오브젝트 결과를 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> 

감사하고, 난 정말 어떤 도움이 필요합니다.

답변

1

가장 좋은 방법은 플래시 빌더의 디버그 모드를 사용하여 어떤 데이터가 정확하게 전달되는지 확인하는 것입니다.

이름 지정 규칙이 MXML labelFields와 일치하지 않거나 labelFields의 이름 만 바꾸면 SQL 쿼리에서 명명 규칙을 설정할 수 있습니다.

ResultEvent의 결과를 변환하려면 일반적으로 다음을 수행하면됩니다. myArrayCollection = event.result as ArrayCollection;

반환 된 데이터가 Array 인 경우 다음을 수행해야합니다. myArrayCollection = new ArrayCollection (event.result);

희망이 도움이됩니다.