แปลงผลลัพธ์วัตถุระยะไกลเป็นคอลเลกชันอาร์เรย์ในรูปแบบดิ้น

สวัสดีทุกคน ฉันใช้ zend_amf และ flex ปัญหาของฉันคือฉันต้องเติม DataGrid ล่วงหน้าโดยใช้การรวบรวมอาร์เรย์ คอลเลกชันอาร์เรย์นี้มีลูก

ตัวอย่าง:

    [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'}])
         ]};

แต่แหล่งข้อมูลของ DataGrid ของฉันควรมาจากฐานข้อมูล ฉันจะแปลงผลลัพธ์จากวัตถุระยะไกลเป็นคอลเลกชันอาร์เรย์ที่มีรูปแบบเดียวกันกับในตัวอย่างของฉันหรือด้วยวิธีอื่นได้อย่างไร

นี่คือ datagrid ขั้นสูงของฉัน

<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;

หากข้อมูลที่ส่งคืนเป็น Array ฉันพบว่าคุณต้องทำสิ่งนี้: myArrayCollection=new ArrayCollection(event.result);

หวังว่านี่จะช่วยได้

person Francisc    schedule 08.07.2010