Filteren op vertegenwoordiger uitbreiden naar een tweede veld

0000002896     -      20-10-2021

Mercator 10.4 of later maakt filteren op vertegenwoordiger in het informatiebestand mogelijk. Dit concept kan eenvoudig worden uitgebreid naar een tweede veld : in dit voorbeeld CLI.C_ID_REP2 char (10). Gebruik hiervoor de gebeurtenis ApplyingAdditionalCriteria van de class Sig. De code is vrij eenvoudig omdat de where clause die door Mercator is berekend, beschikbaar in e.ReqSql, (c_id_rep = '...') zal bevatten als de filtering actief is en anders deze tekenreeks niet zal bevatten.

De code gaat dus als volgt :

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

namespace SigCli
{
    public class Customizer : MercatorUi.ICustomizers.ISigCreated
    {

        public void SigCreated(MercatorUi.Sig.Sig sig)
        {
            sig.ApplyingAdditionalCriteria += sig_ApplyingAdditionalCriteria;
        }

        void sig_ApplyingAdditionalCriteria(object sender, MercatorUi.Sig.Sig.ApplyingAdditionalCriteriaEventArgs e)
        {
            e.ReqSql = e.ReqSql.Replace(string.Format("(c_id_rep='{0}')", Api.UnquoteSql(Globals.CurrentUser["id_rep"].ToString())), string.Format("((c_id_rep='{0}') or (c_id_rep2='{0}'))", Api.UnquoteSql(Globals.CurrentUser["id_rep"].ToString())));
        }
    }
}