/*jsl:option explicit*/ /** * @fileoverview * Hilfsfunktionen, um die Eingaben zu überprüfen und die Abfrage direkt via JavaScript abzuschicken. Enthält auch * die JavaScript Hilfsfunktionen für den Aufruf des Kalenders, für den "bis=ab" Knopf und die gegenseitige * Ausschließung der Orte *
 
* Changes:
* 20080212 MaSu HTML_SEARCH_DELIM * * @author LeMa (Martin Leyrer), 2007 * @author MaSu (Susanne Mauritz, 2009 * @version 1.3 */ // Feld- und Werteliste, um die eingegbenen Parameter in der Suchmaske nach einer Suche wieder anzuzeigen var returnfields = ""; // Counter für die View-Liste var ctr = 0; var doc; var elem; var dateFormat; var dateFormatString = 'TT.MM.JJJJ'; var doBGColor = false; /* Hintergrund */ var doOKCheck = true; /*do onblur ok/nok gif switching*/ var searchview; /* suchedi oder suchobj */ var subform; var qval; var doclinkkennung; /* für xml Linkname */ var errortext=''; /* Fehlermessage für generateFTQuery */ var ftquery = ''; /* ftquery für Felderbefüllen nach query */ var HTML_SEARCH_DELIM = '?'; var fehlermsg="Ihre Suche konnte auf Grund eines Fehlers nicht durchgeführt werden." var AZWithZeros /** * Wird von allen Forms aufgerufen, um versch. Variablen und Objekte zu * initialisieren * * @param par {Windows} Window-Objekt, in dessen OnLoad die Funktion aufgerufen wird. * * @return Nix * * @author Susanne Mauritz, 2008 * @author Martin Leyrer, 2007 * @version 1.0 */ function initForm(par) {/*init all forms*/ doc = par.document; if (doc.forms.length === 0) return;/*not in edit mode*/ // elem beinhaltet alle Elemente des gültigen Formulars elem = doc.forms['Main'].elements; // form wird auf Namens des gültigen Formulars gesetzt var form = doc.forms['Main'].name; dateFormatString = (elem['DateFormat']) ? elem['DateFormat'].value :(typeof(dateFormatString)=='string')? dateFormatString:'TT.MM.JJJJ'; dateFormat = new dateFormat(dateFormatString); /* rge braucht keine Validierung */ if (elem['subf'].value!=='rge') {readValidationFields(doc.forms['Parameters'].elements);} if( elem['subf'] !== null) { subform = elem['subf'].value; } // Defaults doclinkkennung = 'alldoc/' //Viewname zum Erkennen der Links in der Ergebnisliste // Prüfen, ob es eine anwendungsspez. Initialisierung gibt (zB Viewname...) if(window.initAnwForm) {initAnwForm()}; // Initialisierung für AJAX-Funktionen checkSession(doc, doclinkkennung); // Kalender- und ab=bis Buttons in erweiterter Suche sichtbar machen if( document.getElementById('helpcal1') !== null) { document.getElementById('helpcal1').className=''; } if( document.getElementById('helpcal2') !== null) { document.getElementById('helpcal2').className=''; } if( document.getElementById('helpcal3') !== null) { document.getElementById('helpcal3').className=''; } if( document.getElementById('helpcal4') !== null) { document.getElementById('helpcal4').className=''; } if( document.getElementById('gleichbutton1') !== null) { document.getElementById('gleichbutton1').className='px3'; } if( document.getElementById('gleichbutton2') !== null) { document.getElementById('gleichbutton2').className='px3'; } if( document.getElementById('printalldiv') !== null) { document.getElementById('printalldiv').className='printall'; } if( document.getElementById('numhead') !== null) { document.getElementById('numhead').className=''; } // Fokus auf erstes Eingabefeld setzten setFocus('') } /** * Einstiegspunkt, wird von allen Submit-Schaltflächen eines Forms aufgerufen (auch Zeitungslesefunktion) * * @param par {button} Das Button-Objekt der gedrückten Schaltfläche "submitSuche(this)" * * @return Nix * * @author Martin Leyrer, 2007 * @author Susanne Mauritz, 2009 * @version 1.0 */ function submitSuche(par) { doc = par.form.document; errortext = ""; /* Reset ErrorMsg */ /* Alte Suchergebnisse verbergen */ if( document.getElementById('suchdatum')) { setHtml("suchdatum","Einen Moment bitte... Ihre Suche wird durchgeführt...")}; if (document.getElementById('ergebnisliste')) {hideId('ergebnisliste',document)} if (document.getElementById('suchstring')) {hideId('suchstring',document)} if( validateFields(par,null,'Parameters') ) { var form = par.form; var elem = form.elements; var queryb = ""; var subform = ""; var leermsg = ""; /* Msg "Keine Suchparameter..." */ returnfields = ""; if( elem['subf'] !== null) { subform = elem['subf'].value; } /* abhängig vom Subform Query erstellen */ switch(subform) { case "a": // Aktenzeichensuche bei allen gleich queryb = buildqueryA(par, form, elem); searchview = "suchedi" break; case "f": // Firmenbuchsuche bei allen gleich queryb = buildqueryF(par, form, elem); searchview = "suchedi" break; default: queryb = buildquery(par, form, elem, subform) // individuelle Suche in anwSearchlib.js break; } /* eventuelle syntaktische Fehlermeldungen ausgeben */ if ((errortext !="")) { /* Validierung erzeugte Fehlermeldung */ setValidationError( 'ValidationError','Fehler bei der Suche. ' + errortext); if( document.getElementById('suchdatum')) { setHtml("suchdatum","Ihre Suche konnte auf Grund eines Fehlers nicht durchgeführt werden.")}; //if (document.getElementById('ergebnisliste')) {hideId('ergebnisliste',document)} //if (document.getElementById('suchstring')) {hideId('suchstring',document)} return false; //Abbruch } if ( queryb === "") { /* keine Suchparameter */ leermsg = 'Keine Suchparameter eingegeben. Bitte füllen Sie die gewünschten Felder' if( document.getElementById('datum')) { /* Zeitungslesebuttons */ leermsg += ' oder drücken Sie eine Datumsschaltfläche'; } setValidationError( 'ValidationError',leermsg + '!'); setFocus(); if( document.getElementById('suchdatum')) { setHtml("suchdatum","Ihre Suche konnte auf Grund eines Fehlers nicht durchgeführt werden.")}; if( document.getElementById('suchstring')) { setHtml("suchstring","Sie haben keine Suchparameter eingegeben."); showId('suchstring',document) } //if (document.getElementById('ergebnisliste')) {hideId('ergebnisliste',document)} return false; } /* keine Suchparameter */ var querytag = "query"; var queryend = ""; /* FTQuery im Langtext ohne escapes zur Anzeige */ ftquery = ""; if (elem['FT']) { if (elem['FT'].value !="") { ftquery = elem['FT'].value ftquery = ftquery.replace(/\+/,'%2B') } } queryb = escape(queryb).replace(/\+/,'%2B') var x = form.action; var y = x.replace(/\.nsf.*/i,'') + '.nsf/' + searchview + HTML_SEARCH_DELIM + "SearchView&subf=" + subform + "&SearchOrder=4" + returnfields + "&ftquery="+ ftquery+ "&query=" + queryb + queryend form.action = y; form.baseuri = y; self.location.href = y; return false; } /* if validateFields */ else { // Feldvalidierung hat fehlgeschlagen if( document.getElementById('suchdatum')) { setHtml("suchdatum",fehlermsg)}; //if (document.getElementById('ergebnisliste')) {hideId('ergebnisliste',document)} //if (document.getElementById('suchstring')) {hideId('suchstring',document)} } /* else - validateFields */ return false; } /* submitSuche(par)*/ /** * Erstellt den Query-String für die Suche nach Aktenzeichen. *
Gibt den neuen Query-String zurück. * * @param par {button} Das Button-Objekt der gedrückten Schaltfläche "submitSuche(this)" * @param form {form} Das aktuelle Form-Objekt * @param elem {array} Ein Array aller Felder des formulars * * @return String * * @author Susanne Mauritz, 2007 * @version 1.0 */ function buildqueryA(par, form, elem) { var tempquery = ""; // Geschäftsabteilung muss dreistellig sein if( elem["GA"] !== null) { if( elem["GA"].value !== "") { elem["GA"].value = PadDigits(elem["GA"].value, 3); } } // Aktenzahl: manche Anwendungen haben 'Zahl', manche 'AZ' var azfeld = "" if( elem["Zahl"]) { azfeld = "Zahl" } else { if( elem["AZ"]) {azfeld = "AZ"} } // Aktenzahl muss fünfstellig sein if( elem[azfeld] !== null) { if( elem[azfeld].value !== "") { elem[azfeld].value = PadDigits(elem[azfeld].value, 5); } } //Syntax: edikte_buildsearch( elem, fieldname, build_query, concatop, compop, emptyval) { tempquery = edikte_buildsearch(elem, "Ger", tempquery, "AND", "=", "NUL"); tempquery = edikte_buildsearch(elem, "GA", tempquery, "AND", "=", ""); tempquery = edikte_buildsearch(elem, "GZ", tempquery, "AND", "=", "NUL"); tempquery = edikte_buildsearch(elem, azfeld, tempquery, "AND", "=", ""); tempquery = edikte_buildsearch(elem, "Jahr", tempquery, "AND", "=", "NUL"); return tempquery; } /** * Erstellt den Query-String für die Suche nach Firmenbuchnummer (AL, FB,ID). *
Gibt den neuen Query-String zurück. * * @param par {button} Das Button-Objekt der gedrückten Schaltfläche "submitSuche(this)" * @param form {form} Das aktuelle Form-Objekt * @param elem {array} Ein Array aller Felder des formulars * * @return String * * @author Susanne Mauritz, 2008 * @version 1.0 */ function buildqueryF(par, form, elem) { var tempquery = ""; var atquery = ""; var availquery = ""; // Firmenbuchnummer muss siebenstellig sein if( elem["FN"]) { if( elem["FN"].value !== "") { elem["FN"].value = PadDigits(elem["FN"].value, 7); } } tempquery = edikte_buildsearchExtended(elem, "FN", "FN","=", tempquery, "AND", "NUL",false); return tempquery; } function makeRangeQuery( elem, fieldname, build_query, concatop, compop, emptyval) { //function makeRangeQuery(fieldname) { if (elem[fieldname].value !== "NUL") { /* VWert */ var rangeQuery="" // var wertfieldname = "[Num" + elem[fieldname].value + "]" var rangeArray = elem[fieldname].value.split("-") if (rangeArray.length==2) { var untererwert = rangeArray[0] var obererwert = rangeArray[1] if (untererwert!=undefined & untererwert!='') { rangeQuery = wertfieldname + ">=" + untererwert } if (obererwert!=undefined & obererwert!='') { if (rangeQuery!="") { rangeQuery = rangeQuery + " AND " } rangeQuery = rangeQuery + wertfieldname + "<=" + obererwert } } if( tempquery !== "") { tempquery = tempquery + " AND ";} tempquery = tempquery + '(' + rangeQuery + ')' } /* VWert */ }