Mercator 7.2 ou ultérieur permet de déterminer, séquence par séquence, dans l'onglet "Modules", une fonction de prétraitement de clé. Cette fonction est toujours un PRG compilé en FXP.
Ce module permet de modifier la clé de recherche articles saisie par l'utilisateur dans les documents de ventes ou d'achats de la gestion commerciale.
Exemples d'utilisation :
- retirer un ou plusieurs caractères de préfixe dans un code-barres
- retirer de l'information exédentaire dans un code-barres
- ...
Ce module doit toujours accepter un paramètre qui recevra la valeur saisie par l'utilisateur pour effectuer sa recherche. Il doit aussi toujours renvoyer la valeur éventuellement modifiée sous forme d'une chaîne de caractères. Ainsi, la structure minimale de ce module est :
parameters la_cle
la_cle=....
return m.la_cle
En version Aruba, la même fonctionnalité est obtenue par un customizer Sig qui va intercepter l'évènement BeforeSearch. En effet, le paramètre e passé contient une propriété Key qui est modifiable.
Exemple en version legacy : retirer un préfixe qui correspond au caractère ascii 20
parameters la_cle
la_cle=ltrim(m.la_cle)
if left(m.la_cle,1)=chr(20)
la_cle=substr(m.la_cle,2,99)
endif
return m.la_cle
Exemple en version Aruba : retirer un préfixe qui correspond au caractère ascii 20
void sig_BeforeSearch( object sender, MercatorUi.Sig.SigClasses. BeforeSearchEventArgs e)
{
if (e.Key.StartsWith( Api .Chr(20)) && (e.FormContext is MercatorUi.Forms.Billing. BillingForm ))
e.Key = e.Key.Substring(1);
}