Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article décrit une personnalisation qui peut être utilisée pour rendre un champ requis de manière conditionnelle dans Microsoft Dynamics GP 9.0. Lorsque vous effectuez cette personnalisation, le champ Défini par l’utilisateur 1 doit être défini sur une valeur si le client est en attente.
S’applique à : Microsoft Dynamics GP
Numéro de base de connaissances d’origine : 934695
Introduction
Le code suivant utilise un événement ValidateBeforeOriginal sur le champ SaveRecord au lieu du bouton Enregistrer . Le champ SaveRecord est sélectionné, car l’événement SaveRecord est appelé par la fenêtre Maintenance du client à partir de plusieurs emplacements. L’événement SaveRecord est toujours appelé lorsque vous enregistrez un enregistrement dans cette fenêtre.
Le code suivant est le code C# pour Visual Studio Tools dans Microsoft Dynamics GP.
using System; using System.Collections.Generic; using System.Text; using Microsoft.Dexterity.Bridge; using Microsoft.Dexterity.Applications; using Microsoft.Dexterity.Applications.DynamicsDictionary; using System.Windows.Forms; namespace CustomerSaveTest { public class GPAddIn : IDexterityAddIn { //Declare a static variable that has an instance of the Customer Maintenance window. static Microsoft.Dexterity.Applications.DynamicsDictionary.RmCustomerMaintenanceForm.RmCustomerMaintenanceWindow cust = Microsoft.Dexterity.Applications.Dynamics.Forms.RmCustomerMaintenance.RmCustomerMaintenance; public void Initialize() { //Declare an event handler that will run before Microsoft Dynamics GP saves the customer record. cust.SaveRecord.ValidateBeforeOriginal += new System.ComponentModel.CancelEventHandler(SaveRecord_ValidateBeforeOriginal); } void SaveRecord_ValidateBeforeOriginal(object sender, System.ComponentModel.CancelEventArgs e) { //Implement the following business logic: If the customer is on hold, a reason must be entered in the "User Defined 1" field. if (cust.Hold == true && cust.UserDefined1.Value == "") { MessageBox.Show("For customers on hold, User Defined 1 is required."); //Cancel the Save event. e.Cancel = true; cust.UserDefined1.Focus(); } } } }
Le code suivant est le code de Microsoft Visual Basic .NET.
Imports System Imports System.Collections.Generic Imports System.Text Imports Microsoft.Dexterity.Bridge Imports Microsoft.Dexterity.Applications Imports Microsoft.Dexterity.Applications.DynamicsDictionary Imports System.Windows.Forms Namespace ButtonEventTest Public Class GPAddIn Implements IDexterityAddIn ' IDexterityAddIn interfac
Plus d’informations
Ce code fonctionne généralement correctement. Toutefois, dans certains cas, le code efface la fenêtre sans enregistrer l’enregistrement. Le champ SaveRecord agit en tant qu’indicateur. Si l’événement SaveRecord est annulé, l’enregistrement n’est pas enregistré. Toutefois, l’indicateur est toujours défini à partir du moment où le client précédent a été correctement enregistré. Si ce scénario se produit, utilisez modificateur dans Microsoft Dynamics GP pour enregistrer l’enregistrement. Pour ce faire, procédez comme suit :
- Ouvrez la fenêtre Maintenance du client. Pour ce faire, sélectionnez Cartes, pointez sur Ventes, puis sélectionnez Client.
- Sélectionnez Outils, pointez sur Personnaliser, puis sélectionnez Modifier la fenêtre active. La fenêtre Window :RM_Customer_Maintenance s’affiche désormais dans modificateur.
- Sélectionnez Disposition, puis Afficher les noms de champs.
- Sélectionnez Disposition, puis afficher les champs invisibles.
- Dans la fenêtre Window :RM_Customer_Maintenance, sélectionnez le champ Enregistrer l’enregistrement.
- Sélectionnez Disposition, puis sélectionnez Propriétés.
- Dans la boîte de dialogue Propriétés , double-cliquez sur le champ SaveOnRestart pour remplacer la valeur true par False.
- Pour revenir à Microsoft Dynamics GP, sélectionnez Fichier, puis Microsoft Dynamics GP. Sélectionnez Enregistrer lorsque vous êtes invité à enregistrer les modifications.
- Attribuez des autorisations de sécurité à la version modifiée de la fenêtre Maintenance du client. Pour ce faire, reportez-vous au chapitre 2 du manuel Advanced Security (AdvancedSecurity.pdf). Par défaut, le manuel Advanced Security se trouve dans le dossier suivant :
C:\Program Files\Microsoft Dynamics\GP\Documentation
Clause d’exclusion de responsabilité
Microsoft et/ou ses fournisseurs ne font aucune représentation ni garantie concernant la pertinence, la fiabilité ou l’exactitude des informations contenues dans les documents et les graphiques connexes publiés sur ce site web (les « documents ») à des fins quelconques. Les documents peuvent inclure des inexactitudes techniques ou des erreurs typographiques et peuvent être révisés à tout moment sans préavis.
Dans la mesure maximale autorisée par la loi applicable, Microsoft et/ou ses fournisseurs excluent toutes les représentations, garanties et conditions expresses, implicites ou légales, y compris, mais non limitées aux représentations, garanties ou conditions de titre, non violation, condition satisfaisante ou qualité, qualité et adéquation à un usage particulier, en ce qui concerne les matériaux.