Skip to main content

OnSearchScript

Ein Wirtschaftsprüfer soll nur Zugriff auf Belege zu einem fest definierten Zeitraum erhalten. InÜber den globalen Einstellungen gibt es hierfür die Eigenschaftdas "OnSearchScript".FillSearchMaskScript" Hierüber kann die Suche manipuliert werden.

Bei einem Kunden sollte die Volltextsuche deaktiviert werden und bei der erweiterten Suche soll bei Rechnungen sollwurde das Belegdatum automatisch eingeschränktin werden.der Suchmaske vorbelegt und mit einem schreibschutz versehen.

EinAllerdings Beispiel-Skripthat der Anwender immer noch die Option über die Volltextsuche zu suchen. Hierzu kann wiewiederum folgtdas aufgebaut"OnSearchScript" werden:helfen. Die Volltextsuche wird verwendet, wenn die Suche nur ein Feld beinhaltet.

/** User exit on search.
 * set: DlcGlobalOptions OnSearchScript
 * @author DEXPRO MM
 * @since 10.08.2022
**/
const user   = context.getSystemUser();
var   params = context.getQueryParams(); //DocQueryParams
util.out(context.scriptName + " -- " + context.event + " -- " + user.login);
util.out("requestType: " + params.requestType);

/* Nur bei Volltextsuche */
if( params.requestType=user.login===1"meisner" ){
    const count = params.searchFieldCount;
    if(count===1){
        // Bei nur einem Feld handelt es sich um die Volltextsuche
        context.errorMessage = "Bitte verwenden Sie immer die erweiterte Suche mit Datumsfilter!";
        context.returnValue  = -1;   // Hinweis
        //return -142; // Fehler
    }
var cnt = 0;
    for( ; cnt<count; ++cnt ){
        var searchField = params.getSearchField(cnt, false);
        if( searchField.name==="InvoiceDate" ){
            util.out("<Searchfield " + (cnt+1) + ">");
            var filter = searchField.name + searchField.compOp + searchField.valueExpr;
            util.out("Condition: " + filter);
            util.out("fieldType = " + searchField.type);
            util.out("label = " + searchField.label);
        }
        else{
            //util.out("searchField.name:"+searchField.name);
        }
    }
}