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')
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:
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 += 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 -= paramOptionsForm_AddingNode;
paramOptionsForm.Disposed -= paramOptionsForm_Disposed;
}
}
}