7
votes

Dynamics AX 4.0, Formulaire d'ouverture sans appliquer un filtre sur l'enregistrement actuel

J'ai une forme avec une grille fournissante par exemple, qui a un champ de captaplast.

Je veux placer le bouton, cliquez sur lequel ouvrira la forme en clientèle où tous les clients sont visibles.

Si je viens de mettre en place Menuitem, puis en cliquant sur son formulaire d'ouverture de la clientèle, mais dans ce formulaire, un seul enregistrement est affiché - un qui a le même compte que dans Vendable.custabount.

Comment ouvrir une plaquette entière? Y a-t-il une meilleure solution que Create Button, puis utilisez CLASSFACTORY :: FormRUnonClient pour afficher le formulaire?

ps. J'ai besoin de bouton, donc RMB -> "Aller au formulaire de table principale" ne compte pas.


0 commentaires

3 Réponses :


0
votes

Vous avez 2 options, vous pouvez créer un bouton et remplacer sa méthode cliquée () ou. Utilisez une menuitMbutton et attribuez une action menuitem.

Utilisation de Menuitems est une meilleure pratique, car il vous permet d'utiliser le cadre de sécurité et de configuration AX. Vous pouvez associer une classe à la Menuitem et dans la méthode principale de la classe () que vous pouvez exécuter les trucs de formrunonClient () au besoin.


0 commentaires

6
votes

Le problème est que l'enregistrement Vendble code> est appliqué sous forme d'argument sur le formulaire code> Custtable Code>, qui crée ensuite un dynalink. La solution consiste à éviter l'argument.

Remplacement de la méthode code> cliqué dans la méthode code> dans l'élément de menu CRÉTABLE CODE> DISTRIBUTABLE CODE> CISH: P>

void clicked()
{
    this.menufunction().run(new Args(element));
}


0 commentaires

4
votes

Je sais que c'est une question assez ancienne, mais si quelqu'un vient ici à la recherche de la réponse, juste une méthode d'appel cleardynalinks () code> sur l'objet QueryBuildDataSource.

Par exemple, vous avez créé un formulaire et il filtrait automatiquement votre DataSource en raison des Dynalinks que Dynamics crée automatiquement, vous le résolvez en plaçant le code suivant à l'intérieur de la méthode init () code>, sur votre formulaire DataSource: p>

QueryBuildDatasource qbds;
;


qbds = this.query().dataSourceTable(tablenum(MyTableName));
qbds.clearDynalinks();

// Next line is optional, it clears initial ranges
qbds.clearRanges();

// if you need to add any ranges you can do it right after you clear the initial dynalinks / ranges


0 commentaires