Lier un déroulant à une option ajoutée dans Outils / Options

0000002440     -      09/09/2025

Ce paramétrage montre comment lier un déroulant à une option ajoutée dans "Outils / Options".

Au préalable, cette option est ajoutée dans la table OPTIONS via cette requête : 

insert into options (type,valeur, stem,libelle_f) values ('CLOT_CAISS','Jour', 'PARAMS','Mode clôture caisse')
 
Le customizer repris ci-dessous exploite l'évènement NodeCreating de la fenêtre des options MercatorUi.Forms.Param.ParamOptionsForm.
 
Dans l'EventArgs de cet évènement, on peut spécifier :
  • MinMaxInt : pour permettre la saisie d'un entier dans l'intervalle délimité par Min et Max
  • MinMaxDouble : pour permettre la saisie d'un double dans l'intervalle délimité par Min et Max
  • ComboItems : pour afficher un déroulant. Les éléments de ce déroulant doivent être simplement séparés par une virgule.

Notes :

  • une seule de ces propriétés sera prise en compte
  • il n'est pas possible de changer le mode d'affichage standard des options pour lesquelles Mercator détermine lui-même l'interface de saisie

Le code de ce customizer s'établit comme suit :

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

// <CompileWithRoslyn />

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.Param.ParamOptionsForm paramOptionsForm)
            {
                paramOptionsForm.AddingNode += paramOptionsForm_AddingNode;
                paramOptionsForm.Disposed += paramOptionsForm_Disposed;
            }
        }
        
        void paramOptionsForm_AddingNode(object sender, MercatorUi.Forms.Param.ParamOptionsForm.AddingNodeEventArgs e)
        {
            if (e.Id == "CLOT_CAISS")
            {
                e.ComboItems = "Jour,Semaine";
            }
        }

        void paramOptionsForm_Disposed(object sender, EventArgs e)
        {
            MercatorUi.Forms.Param.ParamOptionsForm paramOptionsForm = (MercatorUi.Forms.Param.ParamOptionsForm)sender;
            paramOptionsForm.AddingNode -= paramOptionsForm_AddingNode;
            paramOptionsForm.Disposed -= paramOptionsForm_Disposed;
        }
    }
}

 



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)