using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Windows.Forms;
using System.Reflection;
namespace SigStock
{
public class Customizer : MercatorUi.ICustomizers.ISigCreated
{
public void SigCreated(MercatorUi.Sig.Sig Sig) // Il faut redémarrer Mercator pour qu'il prenne en compte les modifications apportées au customizer via SigCreated.
{
Sig.Filtering += new MercatorUi.Sig.Sig.FilteringEventHandler(Sig_Filtering);
}
void Sig_Filtering(object sender, MercatorUi.Sig.Sig.FilteringEventArgs e)
{
// montrer le filtre
MercatorUi.Dialogs.Stop("Le filtre suivant va être appliqué : " + e.WhereClause);
// A voir aussi dans e :
// e.Mode : indique si on en filtrage sur expression ou pas
// e.SigForm : SigForm à partir de la quelle la filtrage a été démarré
// comment annuler le filtrage en cours ?
if (MercatorUi.Dialogs.AnswerYesNo("Voulez-vous annuler le filtrage ?"))
{
e.WhereClause = ""; // en remettant à blanc WhereClause, on annule le fitrage en cours
return;
}
// retirer le filtre sur S_ID_RAYON : cette partie de la clause where est de la forme " and (STOCK.S_ID_RAYON='ABCDEFGHIJ')"
if (e.WhereClause.Contains("STOCK.S_ID_RAYON"))
{
string s_id_rayon = Api.StrExtract(e.WhereClause, "STOCK.S_ID_RAYON='", "')");
e.WhereClause = e.WhereClause.Replace(" and (STOCK.S_ID_RAYON='" + s_id_rayon + "')", "");
}
}
}
}