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


Revision #3
Created 26 September 2022 10:40:58 by Markus Meisner
Updated 26 September 2022 11:24:04 by Markus Meisner