comment créer un nouvel enregistrement dans la forme de la source de données à partir de x++
En forme Journal Voucher
(AR>Journal> PaymentJournal> en cliquant sur le boutonLines
). Je veux créer un nouvel enregistrement à partir de x++ code.
J'ai vu quelques méthodes dans la forme, à savoir créer(), initvalue(), ledgerJournalEngine_custPayment... etc qui sont appelés lorsque l'on presse ctrl+n
. Comment nous pourrions utiliser ces méthodes par le biais de x++ code pour créer un enregistrement à l'aide des fonctions standard.
plz help.
- Vous devez étendre la fonctionnalité de base correctement avec le ledgerjournal classes. Pouvez-vous donner plus de détails? Voulez-vous créer un ou plusieurs des lignes immédiatement en cliquant sur "lignes"? Ou voulez-vous créer un journal & lignes à partir d'un X++ classe ou quelque chose? Il y a tout un framework de formulaire (LedgerJournalForm*) et d'une table de cadre (LedgerJournalT*), et le moteur d'enregistrement. Donc, si vous voulez des fonctionnalités de formulaire, il serait logique d'utiliser le framework de formulaire, alors que si vous essayez de créer simplement des lignes sur un journal existant, par exemple via une autre fonction, il ne serait pas.
- ce que j'essaie est après avoir cliqué sur
Lines
et l'ouverture d'une nouvelle formeJournal Voucher
ajouté un bouton personnaliséFunction>settlement using cust group
après avoir cliqué sur ce formulaireCustTransOpen
ouvre basé sur cust groupe selelcted. Maintenant basé sur le marquage, je dois résumeramounts
basé surAccountNum
et de créer des dossiers en conséquence en formeJournalVoucher
. Je suis juste coincé avec la dernière partie. - J'ai suivi un peu. Veuillez expliquer plus.
Func>Settlement
est ce que vous essayez de le copier ressemble, mais il faut de 1 ligne, puis s'installe sur la base des enregistrements marqués. Vous voulez faireFunc>SettleUseCustGrp
(personnalisé) à partir des lignes de l'écran (F\LedgerJournalTransCustPaym) et il suffit de créer automatiquement plusieurs lignes de transaction dans le journal? La différence étantFunc>Settlement
utilise le LedgerJournalTrans record, alors que vous ne sera pas. Puis-je avoir ce droit? - absolument.. je vais il suffit de sélectionner le
Settlement cust group
de sorte que le nouveau règlement sur la base d'cust Group
va s'ouvrir et après j'ai marquer/enlever, les montants sont résumées sur la base des AccountNum et de créer un ou plusieurs dossiers en conséquence en formeJournalVoucher
.. j'ai ajouté le code ci-dessus(voir photo ci-jointe)dansclose()
événement pour la formecustOpenTrans
Vous devez vous connecter pour publier un commentaire.
Avant élaboré, j'ai pensé que vous étiez en train de créer votre propre formulaire d'étendre le journal de la fonctionnalité. Si vous êtes juste en train de créer un outil, il vous suffit de créer un nouveau
Settlement Using Cust Group
bouton. Dans l'cliqué événement, appelez votre opération de marquage forme ou tout ce que vous faites pour faire des transactions que vous souhaitez utiliser. Ensuite, mettre quelque chose comme ça:Puis dans la nouvelle méthode que vous avez créé, j'ai nommé
settleTransCustGroup
, vous pouvez faire une boucle sur vos documents dans lestestLedgerJournalSpecTrans
modélisation hors de quelque chose de similaire à ceci (méthode personnalisée créée sur le moteur de la classe):LedgerJournalTrans
dossier C1, C2, C3 sont créés... j'ai aussi besoin de tenir compte de ce que sont l'enregistrement a été marqué plus tôt pour un client en particulier, par exemple C1Généralement, votre X++ code devrait ressembler à quelque chose comme ceci:
Vous pouvez remplacer les champs et les valeurs nécessaires. Si tous les champs sont manquants, le message d'erreur s'affiche dans la infolog (par exemple, si vous exécutez le ci-dessus, vous obtiendrez un "code de la Devise doit être spécifié" d'erreur), alors assurez-vous que tous les champs requis sont abordés.
Dans la plupart des cas, vous pouvez également appeler
ledgerJournalTrans.initValue();
avant d'assigner des valeurs de pré-remplir le dossier par défaut AX valeurs. Je crois que ce sera la même chose que ce que vous voyez lorsque vous utilisez Ctrl + N sur la forme. Dans l'exemple ci-dessus, ainsi, le Code de la Devise à être rempli, et l'enregistrement doit être enregistré correctement (au moins dans notre système).ledgerJournalEngine.formMethodDataSourceCreatePost();
void initValue() { ; super(); ledgerJournalEngine.formMethodDataSourceCreatePost(); ledgerJournalEngine.initValue(ledgerJournalTrans); }
ledgerJournalTrans.initValue();
et en passantledgerJournalTrans
dans leledgerJournalEngine
.Il n'y a pas de formule magique d'appel standard funcionality de la cadres de cité ici sur d'autres commentaires. Pour chaque Type de Livre (Comptabilité, gestion des Stocks, Commandes, Paiements, ...), la voie de la création et l'initialisation des lignes est différent et vous avez à travailler de cette façon si vous voulez le journal à afficher correctement.
Il y a beaucoup d'exemples sur google de X++ code qui insère le journal des transactions pour presque chaque type d'entre eux. Il n'est pas facile, mais au moins, c'est presque toujours le même code et il peut être facilement réutilisé.