In Mercator 7.2 of later kan men op het tabblad "Modules", sequentie per sequentie, een sleutelvoorbehandelingsfunctie bepalen. Deze functie is altijd een PRG-bestand dat gecompileerd werd naar een FXP-bestand.
Via deze module kan de artikelzoeksleutel worden gewijzigd die door de gebruiker werd ingevoerd in de verkoop- of aankoopdocumenten van het Commercieel Beheer.
Enkele toepassingsvoorbeelden:
- een of meer prefixtekens uit een barcode verwijderen,
- overtollige informatie uit een barcode verwijderen,
- ...
Deze module moet altijd een parameter aanvaarden voor de door de gebruiker ingevoerde waarde voor zijn zoekopdracht. Verder moet ze de eventueel gewijzigde waarde ook altijd opgeven in de vorm van een tekenreeks. Met andere woorden: de minimale structuur van deze module is als volgt:
parameters la_cle
la_cle=....
return m.la_cle
In de Aruba-versie wordt diezelfde functie verkregen door een Sig customizer die het event via BeforeSearch zal onderscheppen. De ingevoerde parameter bevat immers een Key-eigenschap die kan worden gewijzigd.
Voorbeeld in legacy versie: een prefix verwijderen dat overeenkomt met het ascii-teken 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
Voorbeeld in Aruba-versie: een prefix weghalen die overeenstemt met het teken 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);
}