Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Suppression de la question "Effacer les lignes liées ?" dans la gestion commerciale

0000002300     -      08/06/2016

Le customizer décrit ici permet de supprimer la boîte de dialogue "Effacer les lignes liées ?" et d'établir que la réponse donnée doit toujours être "Oui". Cette programmation se fonde sur l'évènement statique Dialogs.BeforeAnswerYesNo. Dans notre exemple, nous limitons le retrait de cette boîte de dialogue à la séquence "VEN". Toute autre condition peut être facilement mise en place. Le code est placé dans un customizer Main qui inscrit l'évènement à l'ouverture de Mercator. (Donc, un redémarrage est nécessaire)

Le code est le suivant :

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Windows.Forms;

namespace Main
{
    public class Customizer : MercatorUi.ICustomizers.IExec
    {

        public void Main(MercatorUi.ICustomizers.ExecAction Action)
        {
            if (Action == MercatorUi.ICustomizers.ExecAction.DossierOpen)
            {
                Dialogs.BeforeAnswerYesNo += new Dialogs.BeforeAnswerYesNoEventHandler(Dialogs_BeforeAnswerYesNo);
            }
            else if (Action == MercatorUi.ICustomizers.ExecAction.DossierClose)
            {
                Dialogs.BeforeAnswerYesNo -= new Dialogs.BeforeAnswerYesNoEventHandler(Dialogs_BeforeAnswerYesNo);
            }
        }

        void Dialogs_BeforeAnswerYesNo(Dialogs.BeforeAnswerYesNoEventArgs e)
        {
            if (e.Message == _Divers.Iif_langue(Globals.Langue, "Remove linked lines ?", "Verbonden lijnen wissen ?", "Effacer les lignes liées ?"))
            {
                Form wonTop = MercatorUi.Globals.Main.WonTopForm();
                if (wonTop is MercatorUi.Forms.Billing.BillingForm)
                {
                    MercatorUi.Forms.Billing.BillingForm billingForm = (MercatorUi.Forms.Billing.BillingForm)wonTop;
                    if (billingForm.BillingEngine.Journal == "VEN")
                        e.Action = YesNoAskEnum.Yes; // simuler réponse à la question = OUI
                }
            }
        }

    }
}