xmlファイルで埋められる2つの一時テーブルを含むデータセットを作成したいとします。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。オーダーラインを読み込むときにオーダーIDにアクセスできない場合、どうすればこの問題を解決できますか? –
IMHOでは、OrderLineで参照されるOrderにキーフィールドが必要です。 PUKフィールドまたは注文(アクセス)がない場合は、GUIDを使用します。 ABL GUID関数は、必要に応じてGUID値を提供します。 –