Koppel een dropdown aan een toegevoegde optie in "Tools-Opties"

0000002440     -      23-08-2016

Deze parametrering toont hoe je een dropdown linkt aan een optie in "Tools-Opties".

Eerder werd deze optie toegevoegd in de tabel OPTIONS via deze query:

insert into options (type,valeur, stem,libelle_f)
values ('CLOT_CAISS','Jour', 'PARAMS','Mode clôture caisse')
 
(Query enkel geldig in Majuro, in Arubo, moet de optie toegevoegd worden in Params.dbf)
 
De customizer hieronder beschreven gebruikt het event NodeCreationg uit het optievenster MercatorUi.Forms.Param.ParamOptionsForm.
 
In de EventArgs van dit event, kunnen we de volgende zaken specifiëren:
  • MinMaxInt: om de invoer van een geheel getal toe te staan gedefinieerd tussen een minimum en maximum bereik
  • MinMaxDouble: om de invoer van een decimaal getal toe te staan gedefinieerd tussen een minimum en maximum bereik
  • ComboItems: om een dropdown toe te voegen. De elementen van de dropdown moeten gescheiden worden door een puntkomma.

Opmerkingen :

  • met een van deze eigenschappen zal er rekening gehouden worden
  • het is niet mogelijk om de standaard weergave-opties te wijzigen, Merctor bepaalt zelf de input-interface.

De code van deze customizer gaat als volgt:

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 += new MercatorUi.Main.BaseFormCreatingEventHandler(Main_BaseFormCreating);
            }
            else if (Action == MercatorUi.ICustomizers.ExecAction.DossierClose)
            {
                Globals.Main.BaseFormCreating -= new MercatorUi.Main.BaseFormCreatingEventHandler(Main_BaseFormCreating);
            }
        }

        void Main_BaseFormCreating(object sender, MercatorUi.Main.BaseFormCreatingEventArgs e)
        {
            if (e.Form is MercatorUi.Forms.Param.ParamOptionsForm)
            {
                MercatorUi.Forms.Param.ParamOptionsForm paramOptionsForm = (MercatorUi.Forms.Param.ParamOptionsForm)e.Form;
                paramOptionsForm.AddingNode += new MercatorUi.Forms.Param.ParamOptionsForm.AddingNodeEventHandler(paramOptionsForm_AddingNode);
                paramOptionsForm.Disposed += new EventHandler(paramOptionsForm_Disposed);
            }
        }
        
        void paramOptionsForm_AddingNode(object sender, MercatorUi.Forms.Param.ParamOptionsForm.AddingNodeEventArgs e)
        {
            if (e.Id == "CLOT_CAISS")
            {
                e.ComboItems = "Dag,Week";
            }
        }

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

    }
}