Question

J'ai un problème peuplant une table de données avec les données correctes.

J'ai un tableau de données que j'utilise sous une forme. Il est appelé userConfigProfiles. Il a 2 colonnes FK groupId (ce joint à UserGroupInfo) et corpProfileId (ce joint à une table que j'ai créé). Ces données en userConfigProfiles est peuplée d'une autre forme et est actuellement peuplée de façon appropriée.

La question est, je dois créer une chute sur le formulaire SalesTable qui montre un sous-ensemble des lignes de userConfigProfiles basés hors de ce UserGroups l'utilisateur actuel est.

J'ai essayé de le faire en ajoutant le code ci-dessous la table, userConfigProfiles sous forme SalesTable:

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

    super();
}

Ensuite, j'ajouté cette méthode de découverte à la table elle-même:

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;
}

Cependant, il semble que même si ma méthode de recherche est appelée et renvoie les données correctes, il ne touche pas les données qui entre dans la liste déroulante sur mon formulaire.

Ma liste déroulante est un champ de StringEdit avec un DataSource de userConfigProfiles et DataField de corpProfileId.

Je suis assez sûr qu'il ya plusieurs façons de résoudre mon problème et je suis ouvert à l'un d'eux, même si cela signifie enlever tout mon code et faire le menu déroulant complètement différente.

Était-ce utile?

La solution

Créer une requête à l'aide UserConfigProfiles de table avec un exist rejoindre (propriété joinMode) à la table UserGroupList, utilisez la relation appropriée, puis ajoutez une gamme sur le champ UserId avec un value de (currentUserId()).

Cette valeur est une dynamique requête expression qui est fournie par la classe < a href = "http://community.dynamics.com/product/ax/axtechnical/b/daxit/archive/2010/01/13/dynamics-ax2009-8211-useful-utility-8220-sysqueryrangeutil-8221.aspx" rel = "nofollow"> SysQueryRangeUtil .

Enfin créer une recherche en utilisant la classe SysTableLookup en utilisant votre requête.

Autres conseils

De loin le meilleur tutoriel sur les méthodes de recherche est par Vanya:

http://kashperuk.blogspot.com/ 2009/04 / consultation-méthodes tutoriel sur mesure-list.html

Télécharger le XPO tutoriel et l'utilisation d'une de ses options pour votre formulaire. Votre code ressemble un peu à un travail hack.

Si vous essayez d'afficher un sous-ensemble d'enregistrements sur la table, vous devez modifier la requête (), mais si vous essayez de changer les valeurs affichées à partir d'une recherche, puis je vérifier son billet de blog .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top