0

データテーブルに正しいデータを入力する際に​​問題が発生しました。

フォームで使用しているデータテーブルがあります。これはuserConfigProfilesと呼ばれます。2つのFK列groupId(これはUserGroupInfoに結合します)とcorpProfileId(これは私が作成したテーブルに結合します)があります。userConfigProfilesのそのデータは別のフォームから入力され、現在適切に入力されています。

問題は、現在のユーザーが含まれているUserGroupsに基づいて、userConfigProfilesの行のサブセットを表示するSalesTableフォームにドロップダウンを作成する必要があることです。

以下のコードをSalesTableフォームのuserConfigProfilesテーブルに追加して、これを実行しようとしました。

public void init()
{
    userConfigProfiles.data(userConfigProfiles::find());

    super();
}

次に、このfindメソッドをテーブル自体に追加しました。

static public userConfigProfiles find()
{
    userConfigProfiles userProfile;
    UserGroupList userGroupList;

    str 8 u = curUserId();

    select *
    from userProfile
    order by userProfile.bdcProfileId
        join userGroupList
    where userProfile.groupId == userGroupList.groupId
        && userGroupList.userId == u;

    return userProfile;
}

ただし、findメソッドが呼び出されて正しいデータが返されたとしても、フォームのドロップダウンリストに表示されるデータには影響がないようです。

ドロップダウンリストは、userConfigProfilesのデータソースとcorpProfileIdのDataFieldを持つStringEditフィールドです。

私の問題を解決する方法はいくつかあると確信しており、コードをすべて削除してドロップダウンボックスをまったく別の方法で実行することを意味する場合でも、それらのいずれにもオープンです。

4

2 に答える 2

2

ルックアップメソッドに関する最も優れたチュートリアルは、Vanyaによるものです。

http://kashperuk.blogspot.com/2009/04/lookup-methods-tutorial-custom-list.html

彼のチュートリアルXPOをダウンロードし、フォームに彼のオプションの1つを使用してください。あなたのコードはハックジョブのように見えます。

テーブルにレコードのサブセットを表示しようとしている場合は、query()を変更する必要がありますが、ルックアップから表示された値を変更しようとしている場合は、彼のブログ投稿を確認します。

于 2012-02-17T21:25:49.863 に答える
1

UserConfigProfilesテーブルへの既存の結合(プロパティjoinMode)を持つテーブルを使用してクエリを作成し、適切な関係を使用してからUserGroupList、フィールドUserIdに範囲を追加します。value(currentUserId())

この値は、クラスSysQueryRangeUtilによって提供される動的クエリ式です。

最後に、クエリを使用してクラスSysTableLookupを使用してルックアップを作成します。

于 2012-02-18T07:10:31.750 に答える