Buenas tardes a todos,
Tengo una pantalla en la que tengo que escribir el nombre, el apellido y la fecha de nacimiento. Cuando los tres han sido escritos se comprueba en la base de datos si la persona existe o no y si es el caso aparece un mensaje de error. si el evento onchange lo pongo en el cuadrado de la fecha de nacimiento funciona perfectamente. Pero si pongo 3 eventos distintos (3 onchange, para que aunque no se respecte el orden de escritura el error aparezca) no extrae bien los datos y el evento no funcion. Alguien podria decirme como corregir esto o alguna otra manera de hacerlo?
el codigo es el siguient:
-----Nombre----- var sSQL = ""; var oEx = hrCreateExtractor(); var oElem = hrEvent.htmlElement; var NOM = hrGetElementText(oElem); var Prenom = hrGetValue( "ZY06PRENOM" ); var sNaissance = hrGetValue( "ZY10DATNAI" ); var d1=sNaissance.substr(6,2); var d2=sNaissance.substr(3,2); var d3=sNaissance.substr(0,2); var d4=d1 + "-" + d2 + "-" + d3 ; var d5=d3 + "-" + d2 + "-" + d1 ; //window.alert("NOM " + NOM); //window.alert("Prenom " + Prenom); //window.alert(d4); if (NOM != "" && Prenom != "" && sNaissance !="") { oEx.maxRow = 25; sSQL += "select matcle, DATNAI, prenom, nomuse "; sSQL += "from ZY00 j, ZY10 k "; sSQL += "WHERE j.NUDOSS=k.NUDOSS "; sSQL += "and upper(trim(j.nomuse)) = upper(trim('_XXX_')) AND upper(trim(j.prenom)) = upper(trim('_YYY_')) AND to_char(DATNAI,'YY-MM-DD') =('_AA_')"; sSQL = sSQL.replace( new RegExp("_XXX_","g"), NOM); sSQL = sSQL.replace( new RegExp("_YYY_","g"), Prenom); sSQL = sSQL.replace( new RegExp("_AA_","g"), d4); window.alert("sSQL " + sSQL); oEx.sqlOrder = sSQL; oEx.extract(); //window.alert("count * " + oEx.rowCount); for (var i = 0 ; i < oEx.rowCount ; i++ ) { window.alert("ATTENTION, création impossible : " + oEx.getValue(i,3) + " " + oEx.getValue(i,2) +" né(e) le " + d5 + " de matricule " +oEx.getValue(i,0) + " est détecté en doublon de dossier. "); } hrEvent.defaultAction(); } ----apellido----- var sSQL = ""; var oEx = hrCreateExtractor(); var oElem = hrEvent.htmlElement; var PRENOM = hrGetElementText(oElem); var Nom = hrGetValue( "ZY07NOMUSE" ); var sNaissance = hrGetValue( "ZY10DATNAI" ); var d1=sNaissance.substr(6,2); var d2=sNaissance.substr(3,2); var d3=sNaissance.substr(0,2); var d4=d1 + "-" + d2 + "-" + d3 ; var d5=d3 + "-" + d2 + "-" + d1 ; if (Nom != "" && PRENOM != "" && sNaissance !="") { oEx.maxRow = 25; sSQL += "select matcle, DATNAI, prenom, nomuse "; sSQL += "from ZY00 j, ZY10 k "; sSQL += "WHERE j.NUDOSS=k.NUDOSS "; sSQL += "and upper(trim(j.nomuse)) = upper(trim('_XXX_')) AND upper(trim(j.prenom)) = upper(trim('_YYY_')) AND to_char(DATNAI,'YY-MM-DD') =('_AA_')"; sSQL = sSQL.replace( new RegExp("_XXX_","g"), Nom); sSQL = sSQL.replace( new RegExp("_YYY_","g"), PRENOM); sSQL = sSQL.replace( new RegExp("_AA_","g"), d4); oEx.sqlOrder = sSQL; oEx.extract(); window.alert("count * " + oEx.rowCount); for (var i = 0 ; i < oEx.rowCount ; i++ ) { window.alert("ATTENTION, création impossible : " + oEx.getValue(i,3) + " " + oEx.getValue(i,2) +" né(e) le " + d5 + " de matricule " +oEx.getValue(i,0) + " est détecté en doublon de dossier. "); } hrEvent.defaultAction(); } ----fecha nacimiento---- var sSQL = ""; var oEx = hrCreateExtractor(); var oElem = hrEvent.htmlElement; var SNaissance = hrGetElementText(oElem); var d1=SNaissance.substr(6,2); var d2=SNaissance.substr(3,2); var d3=SNaissance.substr(0,2); var d4=d1 + "-" + d2 + "-" + d3 ; var d5=d3 + "-" + d2 + "-" + d1 ; var Nom = hrGetValue( "ZY07NOMUSE" ); var Prenom = hrGetValue( "ZY06PRENOM" ); //window.alert("NOM " + Nom); //window.alert("Prenom " + Prenom); //window.alert(d4); if (Nom != "" && Prenom != "" && SNaissance !="") { oEx.maxRow = 25; sSQL += "select matcle, DATNAI, prenom, nomuse "; sSQL += "from ZY00 j, ZY10 k "; sSQL += "WHERE j.NUDOSS=k.NUDOSS "; sSQL += "and upper(trim(j.nomuse)) = upper(trim('_XXX_')) AND upper(trim(j.prenom)) = upper(trim('_YYY_')) AND to_char(DATNAI,'YY-MM-DD') =('_AA_')"; sSQL = sSQL.replace( new RegExp("_XXX_","g"), Nom); sSQL = sSQL.replace( new RegExp("_YYY_","g"), Prenom); sSQL = sSQL.replace( new RegExp("_AA_","g"), d4); oEx.sqlOrder = sSQL; oEx.extract(); window.alert("count * " + oEx.rowCount); for (var i = 0 ; i < oEx.rowCount ; i++ ) { window.alert("ATTENTION, création impossible : " + oEx.getValue(i,3) + " " + oEx.getValue(i,2) +" né(e) le " + d5 + " de matricule " +oEx.getValue(i,0) + " est détecté en doublon de dossier. "); } hrEvent.defaultAction(); }