Dynamics AX 4.0, sous forme d'ouverture sans application du filtre sur le disque en cours

StackOverflow https://stackoverflow.com/questions/1320414

  •  19-09-2019
  •  | 
  •  

Question

Je forme avec grille VendTable par exemple, qui a CustAccount champ.

Je veux placer le bouton, cliquez sur qui ouvrira ses portes sous forme CustTable où tous les clients sont visibles.

Si je viens de mettre CustTable menuitem, puis en cliquant sur elle ouvrira ses portes sous forme CustTable, mais sous cette forme un seul enregistrement est affiché - celui qui a la même accountNum que dans vendTable.CustAccount.

Comment ouvrir toute CustTable? Y at-il une meilleure solution que de créer le bouton, puis utilisez ClassFactory :: FormRunOnClient pour afficher la forme?

PS. J'ai besoin bouton, alors RMB -> « Aller au formulaire Tableau principal » ne compte pas

.
Était-ce utile?

La solution

Le problème est que le dossier de VendTable est appliqué comme argument à la forme CustTable, ce qui crée alors un dynalink. La solution est d'éviter l'argument.

Substituer la méthode de clicked dans l'élément de menu d'affichage CustTable comme suit:

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

appelle le formulaire de CustTable avec l'appelant objet uniquement et sans l'argument record.

Autres conseils

Je sais que c'est une question assez ancienne mais si quelqu'un vient ici chercher la réponse, juste appeler la méthode clearDynalinks() sur le QueryBuildDataSource objet.

Par exemple, vous avez créé un formulaire et le filtrage automatiquement votre source de données en raison des Dynalinks que la dynamique crée automatiquement, vous le résoudre en mettant le code suivant dans la méthode init(), sur votre formulaire Datasource:

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

it helps ...

Vous avez 2 options, vous pouvez créer un bouton et remplacer la méthode clicked (), ou utiliser un MenuItemButton et attribuer une action MenuItem à lui.

Utilisation MenuItems est une meilleure pratique, car il vous permet d'utiliser le cadre de la sécurité AX et configuration. Vous pouvez associer une classe à la méthode MenuItem et main () de la classe que vous pouvez exécuter les choses FormRunOnClient () au besoin.

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