Skip to main content

FillSearchMaskScript

Über die globale Eigenschaft "FillSearchMaskScript" kann ein Skript eingebunden werden, über welches die Suchmaske manipuliert werden kann. Bei der Einschränkung eines Datumfeldes muss berücksichtigt werden, dass in der Suche 2 Felder "von" und "bis" eingeblendet werden. Technisch müssen diese Felder über die technischen Präfixe "SOH" bzw. "STX" ergänzt werden. Das sieht in Notepad++ zum Beispiel wie folgt aus:

image-1664189260207.png

Das folgende Skript holt sich die Abfrage-Parameter und iteriert die Felder. Bei den Feldern für das Rechnungsdatum werden die Datumsfelder vorbelegt und das Feld selber erhält einen Schreibschutz.

/** User exit on search.
 * set: DlcGlobalOptions FillSearchMaskScript
 * @author DEXPRO MM
 * @since 10.08.2022
**/
var user   = context.getSystemUser();
var params = context.getQueryParams();

var cnt = 0;
const count = params.searchFieldCount;
for( ; cnt<count; ++cnt ){
    var searchField = params.getSearchField(cnt, false);
    if( searchField.name==="InvoiceDate" ){ // Feldname anpassen
        searchField.setDefault("01.01.2022", true);
        var filter = searchField.name + searchField.compOp + searchField.valueExpr;
        util.out("["+cnt+"] [SOH]InvoiceDate.setDefault(01.01.2022, true) new filter: " + filter);
    }
    else if( searchField.name==="InvoiceDate" ){ // Feldname anpassen
        searchField.setDefault("31.12.2022", true);
        var filter = searchField.name + searchField.compOp + searchField.valueExpr;
        util.out("["+cnt+"] [STX]InvoiceDate.setDefault(31.12.2022, true) new filter: " + filter);
    }
    else{
        //var filter = searchField.name + searchField.compOp + searchField.valueExpr;
        //util.out("["+cnt+"] - " + (searchField.name).toString() + " fullfilter: " + filter);
    }
}
//util.out(context.scriptName + " #["+count+"] " + context.event + " -- " + user.login);

image-1664191436425.png