Dans la recherche "Tous" d'un signalétique, chercher dans des champs supplémentaires

0000003325     -      10/09/2025

Mercator dispose d'une fonctionnalité qui permet, dans un signalétique, de chercher dans toutes les clés. Voir le point 1 de cette page : Recherche sur tous les critères.

Le code repris ci-dessous montre comment effectuer cette recherche aussi sur d'autres colonnes, appartenant éventuellement à d'autres tables.

A cet endroit du programme, Mercator produit une clause where qui, par exemple pour les articles, est semblable à celle-ci :

(S_MODELE like '{0}%') or (S_CLE1 like '{0}%') or (S_CLE2 like '{0}%') or (S_ID like '{0}%') 
or exists(SELECT * from ARTFOU (NOLOCK) where (artfou.id_art=stock.s_id) and (REF_FOU like '{0}%'))
or exists(SELECT * from NUMSERIES (NOLOCK) where (numseries.id_art=stock.s_id) and (numseries.NUM_SERIE like '{0}%'))

Cette clause est modifiable via l'événement SearchingAll de la classe MercatorUi.Sig.Sig.

Le code repris ci-dessous étend la recherche à 

  • S_MODELEN de la table STOCK,
  • au nom du rayon.
Zoom
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.SearchingAll += Sig_SearchingAll;
        }

        private void Sig_SearchingAll(object sender, MercatorUi.Sig.Sig.SearchingAllEventArgs e)
        {
            e.WhereClause += " or (S_MODELEN like '{0}%')"
                           + " or exists(SELECT * from RAYONS (NOLOCK) where (rayons.id=stock.s_id_rayon) and (rayons.nom like '{0}%'))";
        }
    }
}

 

On notera dans ce code la présence de {0} qui sera substitué par la clé de recherche. Cette notation doit être respectée.



Cookies fonctionnels : Cookies nécessaires à l'utilisation du site et cookies de préférence. Ils ne contiennent aucune donnée à caractère personnel. (En savoir plus)

Cookies statistiques : Captation de statistiques liées aux comportements des internautes. (En savoir plus)

Cookies marketing : Pour effectuer le suivi des visiteurs au travers des sites web, à des fins publicitaires. (En savoir plus)