Agir sur les cases à cocher de la boîte de dialogue de sélection des journaux pour la centralisation comptable

0000002400     -      30/07/2025

Ce customizer montre comment intervenir sur la boîte de dialogue permettant de sélectionner les journaux de la gestion commerciale qui vont faire l'objet de la centralisation en comptabilité.

La mécanique de ce code s'articule comme suit :

  • On utilise l'évènement Globals.Main.BaseFormCreating afin de prendre la main sur la création de la fenêtre de recherche qui est de type MercatorUi.Forms.Accounting.AccountingDialogs.AccountingAskPostIntoAccouting
    • Cet évènement est inscrit lors de l'action DossierOpen
    • Il est désinscrit lors de l'action DossierClose
  • Dans cet évènement, on va inscrire un évènement FullInitialized sur cette fenêtre. Ainsi, le code qui y sera placé, sera exécuté quand cette fenêtre sera totalement construite et affichée.
  • Dans ce code, on va
    • Décocher et rendre inaccessible la case à cocher associée au journal VEN
    • Décocher la case à cocher "Achats"

Le code est le suivant :

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

namespace Main
{
    public class Customizer : MercatorUi.ICustomizers.IExec
    {
        public void Main(MercatorUi.ICustomizers.ExecAction action)
        {
            if (action == MercatorUi.ICustomizers.ExecAction.DossierOpen)
            {
                Globals.Main.BaseFormCreating += Main_BaseFormCreating;
            }
            else if (action == MercatorUi.ICustomizers.ExecAction.DossierClose)
            {
                Globals.Main.BaseFormCreating -= Main_BaseFormCreating;
            }
        }

        void Main_BaseFormCreating(object sender, MercatorUi.Main.BaseFormCreatingEventArgs e)
        {
            if (e.Form is MercatorUi.Forms.Accounting.AccountingDialogs.AccountingAskPostIntoAccouting)
            {
                MercatorUi.Forms.Accounting.AccountingDialogs.AccountingAskPostIntoAccouting accountingAskPostIntoAccouting = (MercatorUi.Forms.Accounting.AccountingDialogs.AccountingAskPostIntoAccouting)e.Form;
                accountingAskPostIntoAccouting.FullInitialized += AccountingAskPostIntoAccouting_FullInitialized;
            }
        }

        private void AccountingAskPostIntoAccouting_FullInitialized(object sender, EventArgs e)
        {
            MercatorUi.Forms.Accounting.AccountingDialogs.AccountingAskPostIntoAccouting accountingAskPostIntoAccouting = (MercatorUi.Forms.Accounting.AccountingDialogs.AccountingAskPostIntoAccouting)sender;
            accountingAskPostIntoAccouting.FullInitialized -= AccountingAskPostIntoAccouting_FullInitialized;

            // rendre inaccessible et décocher la case à cocher d'un journal (ici VEN)
            DataRow[] foundRows = accountingAskPostIntoAccouting.DtSequenc.Select("journal='VEN'");
            if (foundRows.Length > 0)
            {
                MercatorUi._BaseClasses.DataRowNode node = (MercatorUi._BaseClasses.DataRowNode)foundRows[0]["node"];
                node.Enabled = false;
                node.Checked = false;
            }

            // décocher le noeud achats
            accountingAskPostIntoAccouting.Tree.Nodes[1].Checked = false; // 1 car il s'agit du second noeud
        }
    }
}

Ceci n'est applicable que pour la centralisation vers Mercator comptabilité.



Cookies fonctionnels : Cookies nécessaires à l'utilisation du site et cookies de préférence. Ils ne contiennent aucune donnée à caractère personnel. (En savoir plus)

Cookies statistiques : Captation de statistiques liées aux comportements des internautes. (En savoir plus)

Cookies marketing : Pour effectuer le suivi des visiteurs au travers des sites web, à des fins publicitaires. (En savoir plus)