Openedge バージョン 11.2 と Progress Developer Studio を使用。
DataSet を形成するために、いくつかの TEMP-TABLE 定義 (それぞれ別のインクルード ファイル内) を使用しています。1 つのデータ関係に対して RELATION-FIELDS のペアを 1 つだけ使用すると、すべて問題ないように見えます。別の RELATION-FIELDS ペアを定義に追加し、インクルード ファイルをフォームにドロップすると (または [ファイルからスキーマをインポート] ボタンを使用してスキーマをインポートすると)、DataSet に列のない重複した子テーブルが表示されます。単純化とテストのために、次の 3 つのテスト ファイルを設定しました。
tt1.i - 最初の TEMP-TABLE:
/* Temp Table 1 */
DEFINE TEMP-TABLE tt1
FIELD tt_test AS CHARACTER
FIELD tt_rel_field_1 AS INTEGER
FIELD tt_rel_field_2 AS INTEGER
INDEX tt_idx tt_rel_field_1 tt_rel_field_2.
tt2.i - 2 番目の TEMP-TABLE:
/* Temp Table 2 */
DEFINE TEMP-TABLE tt2
FIELD tt_test2 AS CHARACTER
FIELD tt_rel_field_1 AS INTEGER
FIELD tt_rel_field_2 AS INTEGER
INDEX tt_idx tt_rel_field_1 tt_rel_field_2.
dsTest.i - データセット定義:
/* Dataset Definition */
{tt1.i}
{tt2.i}
DEFINE DATASET dsTest FOR tt1 , tt2
DATA-RELATION drTest FOR tt1 , tt2
RELATION-FIELDS (
tt_rel_field_1,tt_rel_field_1,
tt_rel_field_2,tt_rel_field_2
).
フォームに dsTest.i をドロップするとどうなるかの印刷画面:
2 番目のペアを削除すると、GUI に関してはすべて正常に動作します。ここで明らかな何かが欠けていますか?これまでに見つけたすべての例は、すべて単一の RELATION-PAIR を使用しています。なぜだろう。Progress Knowledgebase の記事000018088によると、ブードゥー教は関与していません。