U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

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

0000002450     -      25-03-2016

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();
        }

    }
}