xml 파일로 채워진 두 개의 임시 테이블을 포함하는 데이터 세트를 만들고 싶습니다. OpenEdge TEMP-TABLE에서 기본 키로 RECID 사용
DEF TEMP-TABLE ttOrder NO-UNDO
FIELD iOrderNo AS INT
FIELD iOrderDate AS DATE
INDEX ix RECID. // This also won't work, but this is needed to use the `OF` statement when retrieving records.
DEF TEMP-TABLE ttOrderLine NO-UNDO
FIELD iParent AS RECID
FIELD iArticleNo AS INT
FIELD dPrice AS DECIMAL.
DEF DATASET dsOrder FOR ttOrder, ttOrderLine
DATA-RELATION Order_OrderLine FOR ttOrder, ttOrderLine
RELATION-FIELDS ttOrder.RECID, ttOrderLine.iParent. // This is what won't work, but what I would like to do.
보통 난 그냥
ttOrderLine
에
iOrderNo
필드를 생성하고 데이터 세트
RELATION-FIELDS
속성에 일치합니다. 데이터가 XML 파일에서로드되기 때문에이 작업은 어려울 것입니다.
최종 목표는 대신 이것이다 :
FIND FIRST ttOrder.
FOR EACH ttOrderLine WHERE ttOrderLine.iParent = RECID(ttOrder):
// Do something
END.
내가이 일을하고 싶습니다 :
이FIND FIRST ttOrder.
FOR EACH ttOrderLine of ttOrder:
// Do something
END.
마지막 방법을 사용하는 경우 지금 얻을 오류가 Index field of table1 must be fields in table2
입니다.
누군가이 작업을 어떻게 수행 할 수 있는지 말해 줄 수 있습니까?
이것은 좋은 지적입니다! – Jensd
정말로 좋은 점. @MikeFechner. 주문 행을로드 할 때 orderid에 액세스 할 수 없다면 어떻게 해결할 수 있습니까? –
이럴 경우 OrderLine에서 참조되는 Order에 keyfield가 있어야합니다. PUK 필드 또는 주문 (액세스)이없는 경우 GUID를 사용하십시오. ABL GUID 함수는 필요할 때마다 GUID 값을 제공합니다. –