0

AXがフォームとグリッドを生成すると、すべてのルックアップが適切に入力されますが、ルックアップアイテムのIDがフォームに表示されます。意味のある値を確認する唯一の方法は、フィールドをクリックすることです。これは実際には理想的ではありません。ルックアップ値をその背後にあるID番号の代わりにフォームに表示する方法はありますか?

「tableB」フォームで、tableA_idの代わりにtableA_valueを表示したいと思います。

tableA

  • tableA_id(int-一意)
  • tableA_value(文字列-一意ではない)

tableB

  • tableB_id(int-一意)
  • tableA_id(int-tableAとの関係)
  • tableB_datafields(その他)

ありがとう

4

1 に答える 1

1

ルックアップ自体の値を変更する方法が見つからなかったので、ルックアップが変更されるたびに更新される静的フィールドを横に置きました。これが私がそれをやった方法です:

表 A の表示方法:

display [datatype] lookupName(tableA _tableA)
{
    ;
    return tableB::find(_tableA.[tableA id column]).[tableB string column];
}

テーブル B の検索方法:

static tableB find([datatype] [lookup variable], boolean _forUpdate = false,
 ConcurrencyModel _concurrencyModel = ConcurrencyModel::Auto)
{
[TableB] [tableB];

if ([lookup variable])
{
    if (_forUpdate)
    {
        tableB.selectForUpdate(_forUpdate);
        if (_concurrencyModel != ConcurrencyModel::Auto)
        {
            tableB.concurrencyModel(_concurrencyModel);
        }
    }

    select firstonly tableB
        where tableB.[lookup column] == [lookup variable];
}
return tableB;

}

テーブル A と B の両方をフォームのデータソースとして追加しました。

フォームに文字列フィールドを追加しました。

テーブル A をフィールドの DataSource として設定し、lookupName を DataMethod として設定します。

ルックアップ フィールドに変更されたメソッドを追加して、静的フィールドを更新します。

element.redraw();

これが誰かに役立つことを願っています。

于 2009-11-14T14:54:05.190 に答える