Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Problema Javascript

12 de mayo de 2016

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();
}