Cette programmation montre comment changer le contenu de la liste des pieds de remises disponible depuis "Outils > Remises" lorsque la fonctionnalité de gestion des pieds de remises est activée. L'exemple montre ici comment ajouter les dates de début et de fin de la promotion à la suite du libellé de la remise.
Cette programmation requiert deux customizers.
Le premier customizer, Gescom, permet de modifier la requête SQL qui extrait les données de la table BAREMESV_PIEDS ou BAREMESA_PIEDS. Il faut, en effet, ajouter les colonnes DEBUT et FIN.
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;
}
}
}
Ensuite un customizer Main mettant en place l'évènement BaseFormCreating qui permet d'atteindre l'évènement AddingBaremePied de la form MercatorUi.Forms.Gescom.GescomAllowancesFootersForm.
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;
}
// l'event AddingBaremePied est appelé lors de l'ajout de chaque ligne dans la liste
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();
}
}
}
Informations complémentaires :
Fonctionnalités de "Outils > Remises"