我目前在Openedge 10.1c上。我正在使用READ-XML填充數據集。我無法更改源XML,並想知道如何在我的連接中沒有父子關係唯一鍵時迭代數據集。迭代使用READ-XML填充的數據集而不使用父 - 子關係的列?
當我到我的桌子時,我會包括示例XML和顯示循環。
在它的東西,像這樣同時...
<data>
<fulfillments>
<field1>field1</field1>
<field2>field2</field2>
<field3>field3</field3>
<customer>
<name>test</name>
</customer>
</fulfillments>
<fulfillments>
<field1>field11</field1>
<field2>field22</field2>
<field3>field33</field3>
<customer>
<name>test2</name>
</customer>
</fulfillments>
</data>
我使用讀取XML後,我得到的所有數據,但試圖遍歷它,我不知道如何來滿足每一個客戶的顯示。相反,它只會顯示所有客戶的每個履行。
示例代碼讀取和顯示數據集...
PROCEDURE _read_xml:
DEFINE INPUT-OUTPUT PARAMETER DATASET-HANDLE idshndl.
DEFINE INPUT PARAMETER ifileloc AS CHARACTER NO-UNDO.
DEFINE OUTPUT PARAMETER oreturn AS LOGICAL NO-UNDO.
DEFINE VARIABLE cSourceType AS CHARACTER NO-UNDO.
DEFINE VARIABLE cReadMode AS CHARACTER NO-UNDO.
DEFINE VARIABLE lOverrideDefaultMapping AS LOGICAL NO-UNDO.
DEFINE VARIABLE cFile AS CHARACTER NO-UNDO.
DEFINE VARIABLE cEncoding AS CHARACTER NO-UNDO.
DEFINE VARIABLE cSchemaLocation AS CHARACTER NO-UNDO.
DEFINE VARIABLE cFieldTypeMapping AS CHARACTER NO-UNDO.
DEFINE VARIABLE cVerifySchemaMode AS CHARACTER NO-UNDO.
IF SEARCH(ifileloc) <> ? THEN
DO:
ASSIGN
cSourceType = "file"
cFile = ifileloc
cReadMode = "empty"
cSchemaLocation = ?
lOverrideDefaultMapping = ?
cFieldTypeMapping = ?
cVerifySchemaMode = ?.
oreturn = idshndl:READ-XML(cSourceType,
cFile,
cReadMode,
cSchemaLocation,
lOverrideDefaultMapping,
cFieldTypeMapping,
cVerifySchemaMode).
END.
ELSE
DO:
oreturn = FALSE.
END.
END PROCEDURE.
PROCEDURE _fulfillment_display_data:
DISPLAY "DATA".
FOR EACH tt_biz_fulfillments NO-LOCK,
EACH tt_biz_ship_to:
DISPLAY "FULFILLMENTS".
DISPLAY tt_biz_fulfillments WITH SIDE-LABELS.
DISPLAY tt_biz_ship_to WITH SIDE-LABELS.
END.
END PROCEDURE.
示例XML ...
<?xml version="1.0" encoding="UTF-8"?>
<data>
<fulfillments>
<shipping_method>AIM - Direct</shipping_method>
<picker_id />
<sales_order_id>234722</sales_order_id>
<packaging_id>1</packaging_id>
<scheduled_delivery_date>07/01/2016</scheduled_delivery_date>
<net_weight>225</net_weight>
<shipper_name>TEST</shipper_name>
<external_note>Test Note</external_note>
<packaging_type>box</packaging_type>
<bill_to>sender</bill_to>
<shipping_cost />
<fulfillment_id>12345</fulfillment_id>
<ship_to>
<city>Pittsburgh</city>
<name>Bizowie</name>
<zip>15219</zip>
<is_residential>0</is_residential>
<company />
<address>429 Fourth Avenue Suite 1206</address>
<phone_extension />
<contact_id>8</contact_id>
<phone />
<state>PA</state>
<country />
<email />
</ship_to>
<location_id>1</location_id>
<parent_fulfillment_id />
<location_name>201 - PA</location_name>
<manifest_number />
<picker_name />
<scheduled_pick_date />
<pick_timestamp />
<delivery_timestamp />
<packaging_weight>0.150000</packaging_weight>
<insured_value />
<bill_to_zip />
<internal_note>test note internal</internal_note>
<bill_to_account />
<status>shipped</status>
<dock_number />
<route_id>1</route_id>
<delivery_latitude />
<shipper_id>1</shipper_id>
<scheduled_ship_date>06/29/2016</scheduled_ship_date>
<acceptance_timestamp />
<shipping_carrier />
<packaging_height>4.0000</packaging_height>
<packaging_length>4.0000</packaging_length>
<gross_weight>225.15</gross_weight>
<packaging_width>4.0000</packaging_width>
<delivery_longitude />
<delivery_signer_location />
<packing_layer />
<truck_number />
<route_name />
<flag_message />
<delivery_signer_name />
<tracking_number />
<packing_row />
<ship_timestamp>06/09/2016 07:15:15 AM</ship_timestamp>
</fulfillments>
<fulfillments>
<shipping_method>TEST</shipping_method>
<picker_id />
<sales_order_id>234722</sales_order_id>
<packaging_id>1</packaging_id>
<scheduled_delivery_date>08/05/2016</scheduled_delivery_date>
<net_weight>440</net_weight>
<shipper_name>BLAH</shipper_name>
<external_note>TESTING</external_note>
<packaging_type>box</packaging_type>
<bill_to>sender</bill_to>
<shipping_cost />
<fulfillment_id>12346</fulfillment_id>
<ship_to>
<city>Wyoming</city>
<name />
<zip>18644</zip>
<is_residential />
<company>Walmart</company>
<address>10 Moosic St</address>
<phone_extension />
<contact_id>1226058</contact_id>
<phone />
<state>PA</state>
<country />
<email />
</ship_to>
<location_id>1</location_id>
<parent_fulfillment_id />
<location_name>201 - PA</location_name>
<manifest_number />
<picker_name />
<scheduled_pick_date />
<pick_timestamp />
<delivery_timestamp />
<packaging_weight>0.150000</packaging_weight>
<insured_value />
<bill_to_zip />
<internal_note>TESTING NOTE</internal_note>
<bill_to_account />
<status>shipped</status>
<dock_number />
<route_id>1</route_id>
<delivery_latitude />
<shipper_id>1</shipper_id>
<scheduled_ship_date>07/18/2016</scheduled_ship_date>
<acceptance_timestamp />
<shipping_carrier />
<packaging_height>4.0000</packaging_height>
<packaging_length>4.0000</packaging_length>
<gross_weight>440.15</gross_weight>
<packaging_width>4.0000</packaging_width>
<delivery_longitude />
<delivery_signer_location />
<packing_layer />
<truck_number />
<route_name />
<flag_message />
<delivery_signer_name />
<tracking_number />
<packing_row />
<ship_timestamp>06/09/2016 07:15:15 AM</ship_timestamp>
</fulfillments>
</data>
你的代碼是什麼樣的? –
添加了我正在做的示例代碼。我遇到的問題是,它會循環所有船舶的每次履行。根據代碼,我預測會發生什麼。問題是我如何在顯示父母子女關係時保持這種關係,以便我只顯示每個滿足的shipto信息,而不是每個滿足的每個shipto信息。 – dayv2005