De inhoud bewerken in de lijst met kortingen (Tools > Kortingen)

0000002450     -      15-11-2021

Volgende code toont ons hoe we de inhoud van de lijst met beschikbare kortingen kunnen wijzigen, wanneer de functie kortingen geactiveerd is. Het voorbeeld hier toont hoe we de begin- en einddatum van de promotie toevoegen.

Deze programmatie vereist 2 customizers.

De eerste customizer, Gescom, laat ons de SQL-query aanpassen die de gegevens uit de tabllen BAREMESV_PIEDS of BAREMESA_PIEDS haalt. Hier moet men de kolommen DEBUT en FIN toevoegen.

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

namespace Gescom
{
    public class Customizer : MercatorUi.ICustomizers.IStringUpdater
    {

        public string StringUpdate(string stringToModify)
        {
            string id = Api.StrExtract(stringToModify, "<ID>", "</ID>");
            if (id.StartsWith("ALLOWANCES_FOOTERS_"))
                return stringToModify.Replace("select id,intitule from", "select id,intitule,debut,fin from");
            else
                return stringToModify;
        }
    }
}

Vervolgens in de Main customizer, het evenement BaseFormCreating die het evenement AddingBaremePied van de form  MercatorUi.Forms.Gescom.GescomAllowancesFootersForm.

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.Gescom.GescomAllowancesFootersForm)
            {
                MercatorUi.Forms.Gescom.GescomAllowancesFootersForm gescomAllowancesFootersForm = (MercatorUi.Forms.Gescom.GescomAllowancesFootersForm)e.Form;
                gescomAllowancesFootersForm.AddingBaremePied += gescomAllowancesFootersForm_AddingBaremePied;
                gescomAllowancesFootersForm.FormClosed += gescomAllowancesFootersForm_FormClosed;
            }
        }

        void gescomAllowancesFootersForm_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
        {
            MercatorUi.Forms.Gescom.GescomAllowancesFootersForm gescomAllowancesFootersForm = (MercatorUi.Forms.Gescom.GescomAllowancesFootersForm)sender;
            gescomAllowancesFootersForm.AddingBaremePied -= gescomAllowancesFootersForm_AddingBaremePied;
            gescomAllowancesFootersForm.FormClosed -= gescomAllowancesFootersForm_FormClosed;
        }

        //Het event AddingBaremePied wordt opgeroepen, wanneer we een regel toevoegen aan de lijst.
        void gescomAllowancesFootersForm_AddingBaremePied(object sender, MercatorUi.Forms.Gescom.GescomAllowancesFootersForm.AddingBaremePiedEventArgs e)
        {
            e.ListViewItem.Text += " "
                + Convert.ToDateTime(e.DataRow["debut"]).ToShortDateString()
                + "-"
                + Convert.ToDateTime(e.DataRow["fin"]).ToShortDateString();
        }

    }
}

 


Aanvullende informatie : Functionaliteiten in "Tools > Kortingen"