1

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 つの子テーブル

2 番目のペアを削除すると、GUI に関してはすべて正常に動作します。ここで明らかな何かが欠けていますか?これまでに見つけたすべての例は、すべて単一の RELATION-PAIR を使用しています。なぜだろう。Progress Knowledgebase の記事000018088によると、ブードゥー教は関与していません。

4

1 に答える 1