var arrControlesGlobal={}; var arrControles={}; var arrControlesNoGuardables={}; function crearTabla(objConf) { var tabla=''; var fila1=''; var fila2=''; var contColumnas=0; var elemento; var x; for(x=0;x'; fila2=''; } else { fila1=''; fila2=''; } } if(elemento.validacion && elemento.validacion.indexOf('obl')>-1) { if(elemento.titulo!='' && elemento.titulo.indexOf('*')==-1) { elemento.titulo=elemento.titulo+' *'; } } var estilo=''; if(elemento.paddingLeft) estilo='style="padding-left: '+elemento.paddingLeft+'px"'; var tamanoCelda='auto'; if((typeof(elemento.control)!='undefined') && (typeof(elemento.control.propiedades)!='undefined') && typeof(elemento.control.propiedades.width)) { tamanoCelda=(parseInt(elemento.control.propiedades.width)+5)+'px'; } fila1+=''; fila2+=''; contColumnas+=parseInt(elemento.numColumna); if(contColumnas>=objConf.totalColumna) { contColumnas=0; fila1+=''; fila2+=''; tabla+=fila1+fila2; } } if(contColumnas>0) { for(x=contColumnas;x=objConf.totalColumna-1) { contColumnas=0; fila1+=''; fila2+=''; tabla+=fila1+fila2; break; } } } tabla+='
'+((!elemento.ocultarTitulo)?(objConf.rendererTitulo?objConf.rendererTitulo(objConf,elemento,elemento.titulo):elemento.titulo):'')+'
'; gE(objConf.renderTo).innerHTML=tabla; contruirControles(objConf); } function contruirControles(objConf) { var arrControlesDispararEvento=[]; var elemento; var x; arrControles[objConf.id]=[]; for(x=0;x-1) { if(ctrl.titulo.indexOf('*')==-1) { ctrl.titulo=ctrl.titulo+' *'; } } ctrl.caracteresPermitidos=elemento.caracteresPermitidos?elemento.caracteresPermitidos:''; ctrl.longitudMaxima=elemento.longitudMaxima?elemento.longitudMaxima:''; ctrl.longitudMinima=elemento.longitudMinima?elemento.longitudMinima:''; ctrl.convertirMayusculas=elemento.convertirMayusculas?elemento.convertirMayusculas:false; ctrl.esFechaSistema=esFechaSistema; if(elemento.evitarAcentos) ctrl.evitarAcentos=elemento.evitarAcentos; ctrl.on('change',function(ctrl) { if(ctrl.evitarAcentos) { var cadena=ctrl.getValue(); cadena=cadena.replace(/á/gi,'a'); cadena=cadena.replace(/é/gi,'e'); cadena=cadena.replace(/í/gi,'i'); cadena=cadena.replace(/ó/gi,'o'); cadena=cadena.replace(/ú/gi,'u'); cadena=cadena.replace(/Á/gi,'A'); cadena=cadena.replace(/É/gi,'E'); cadena=cadena.replace(/Í/gi,'I'); cadena=cadena.replace(/Ó/gi,'O'); cadena=cadena.replace(/Ú/gi,'U'); ctrl.setValue(cadena); } var divControl=gE(ctrl.getId().replace('idCtrl_','div_')); var clase=divControl.getAttribute('class'); if(clase) { divControl.setAttribute('class',clase.replace('ctrlSeleccionado','')); } } ) if(objConf.soloLectura) { ctrl.disable(); } if(elemento.caracteresPermitidos || elemento.longitudMaxima || elemento.funcionValidacionCaracter) { if(elemento.funcionValidacionCaracter) ctrl.funcionValidacionCaracter=elemento.funcionValidacionCaracter; ctrl.on('keypress',function(ctrl,e) { if(ctrl.caracteresPermitidos!='') { var caracter=String.fromCharCode(e.charCode); if(!ctrl.caracteresPermitidos.test(caracter)) { e.stopEvent(); } } if(ctrl.longitudMaxima!='') { if(ctrl.getValue().length>=ctrl.longitudMaxima) { e.stopEvent(); } } if(ctrl.funcionValidacionCaracter) { if(!ctrl.funcionValidacionCaracter(ctrl,caracter)) { e.stopEvent(); } } } ) } if(elemento.convertirMayusculas) { ctrl.on('keyup',function(ctrl,e) { if(ctrl.convertirMayusculas) { ctrl.setValue(ctrl.getValue().toUpperCase()); } } ) } if(elemento.control && elemento.control.propiedades && elemento.control.propiedades.valor && elemento.control.propiedades.valor!='') { if(elemento.control.tipo=='combobox') { arrControlesDispararEvento.push(ctrl); } } ctrl.definicion=elemento; arrControles[objConf.id].push(ctrl) if((typeof(elemento.guardable)!='undefined')&&(!elemento.guardable)) { if(!arrControlesNoGuardables[objConf.id]) arrControlesNoGuardables[objConf.id]={}; arrControlesNoGuardables[objConf.id][ctrl.getId()]=1; } } } for(x=0;x-1) { if(ctrl.titulo.indexOf('*')==-1) { ctrl.titulo=ctrl.titulo+' *'; } } ctrl.caracteresPermitidos=elemento.caracteresPermitidos?elemento.caracteresPermitidos:''; ctrl.longitudMaxima=elemento.longitudMaxima?elemento.longitudMaxima:''; ctrl.longitudMinima=elemento.longitudMinima?elemento.longitudMinima:''; ctrl.convertirMayusculas=elemento.convertirMayusculas?elemento.convertirMayusculas:false; ctrl.esFechaSistema=esFechaSistema; ctrl.on('change',function(ctrl) { var divControl=gE(ctrl.getId().replace('idCtrl_','div_')); var clase=divControl.getAttribute('class'); if(clase) { divControl.setAttribute('class',clase.replace('ctrlSeleccionado','')); } } ) if(objConf.soloLectura) { ctrl.disable(); } if(elemento.caracteresPermitidos || elemento.longitudMaxima) { ctrl.on('keypress',function(ctrl,e) { if(ctrl.caracteresPermitidos!='') { var caracter=String.fromCharCode(e.charCode); if(!ctrl.caracteresPermitidos.test(caracter)) { e.stopEvent(); } } if(ctrl.longitudMaxima!='') { if(ctrl.getValue().length>=ctrl.longitudMaxima) { e.stopEvent(); } } } ) } if(elemento.convertirMayusculas) { ctrl.on('keyup',function(ctrl,e) { if(ctrl.convertirMayusculas) { ctrl.setValue(ctrl.getValue().toUpperCase()); } } ) } if(elemento.control && elemento.control.propiedades && elemento.control.propiedades.valor && elemento.control.propiedades.valor!='') { //ctrl.fireEvent( 'change', elemento.control.propiedades.valor,'' ); if(elemento.control.tipo=='combobox') { dispararEventoSelectCombo(ctrl.getId()); } } arrControles[objConf.id].push(ctrl) if((typeof(elemento.guardable)!='undefined')&&(!elemento.guardable)) { if(!arrControlesNoGuardables[objConf.id]) arrControlesNoGuardables[objConf.id]={}; arrControlesNoGuardables[objConf.id][ctrl.getId()]=1; } } } } function limpiarControles(idEstructura) { var x; var control; var cadObj=''; if(!arrControles[idEstructura]) return; var aControles=arrControles[idEstructura]; for(x=0;x=0)) { function respNum() { control.focus(); if(resaltarError) { setDivError(control); } } msgBox('El valor del campo "'+control.titulo+'" no es válido',respNum); return false; } break; case 'flo': var valor=(control.getValue()+'').trim(); if(valor=='') valor='0'; valorEnt=parseFloat(normalizarValor(valor)); var arrComas=valor.split('.'); if(isNaN(valorEnt) ||(arrComas.length>2)) { function respFlo() { control.focus(); if(resaltarError) { setDivError(control); } } msgBox('El valor del campo "'+control.titulo+'" no es válido',respFlo); return false; } break; case 'dte': var Cadena=''; var tipo=typeof(control.getValue()); if(tipo=='string') { if(control.getValue().indexOf('-')>-1) { var arrFecha=control.getValue().split('-'); Cadena=arrFecha[2]+'/'+arrFecha[1]+'/'+arrFecha[0]; } else Cadena=control.getValue().trim(); } else { Cadena=control.getValue().format('d/m/Y'); } var Fecha= new String(Cadena); var RealFecha= new Date(); var Ano= new String(Fecha.substring(Fecha.lastIndexOf("/")+1,Fecha.length)); var Mes= new String(Fecha.substring(Fecha.indexOf("/")+1,Fecha.lastIndexOf("/"))); var Dia= new String(Fecha.substring(0,Fecha.indexOf("/"))); if (Ano=='' || isNaN(Ano) || Ano.length<4 || parseFloat(Ano)<1900) { function respDte1() { control.focus(); if(resaltarError) { setDivError(control); } } msgBox('La fecha ingresada en campo "'+control.titulo+'" no es válida',respDte1); return false ; } if (Mes=='' || isNaN(Mes) || parseFloat(Mes)<1 || parseFloat(Mes)>12) { function respDte2() { control.focus(); if(resaltarError) { setDivError(control); } } msgBox('La fecha ingresada en campo "'+control.titulo+'" no es válida',respDte2); return false ; } if (Dia=='' || isNaN(Dia) || parseInt(Dia, 10)<1 || parseInt(Dia, 10)>31) { function respDte3() { control.focus(); if(resaltarError) { setDivError(control); } } msgBox('La fecha ingresada en campo "'+control.titulo+'" no es válida',respDte3); return false ; } if (Mes==4 || Mes==6 || Mes==9 || Mes==11 || Mes==2) { if (Mes==2 && Dia > 28 || Dia>30) { function respDte4() { control.focus(); if(resaltarError) { setDivError(control); } } msgBox('La fecha ingresada en campo "'+control.titulo+'" no es válida',respDte4); return false ; } } break; case 'mail': var valor=(control.getValue()+'').trim(); var filter=/^[A-Za-z0-9\._\-]+@[A-Za-z0-9_\-]+(\.[A-Za-z]+){1,2}$/; if (valor.length > 0 ) { if (!filter.test(valor)) { function respMail() { control.focus(); if(resaltarError) { setDivError(control); } } msgBox('La dirección de correo ingresada en campo "'+control.titulo+'" no es válida',respMail); return false ; } } break; } } } var valorCtrl=''; if(control && control.getValue) { valorCtrl=(control.getValue()+'').trim(); } var cumpleLongitudMinima=true; var cumpleLongitudMaxima=true; if((control.longitudMinima) && (control.longitudMinima!='') &&(parseInt(control.longitudMinima)>0)) { if(valorCtrl.length>0) { if(valorCtrl.length0)) { if(valorCtrl.length>control.longitudMaxima) cumpleLongitudMaxima=false; } if(!cumpleLongitudMinima) { if(control.longitudMinima==control.longitudMaxima) { function respLongMin() { control.focus(); if(resaltarError) { setDivError(control); } } msgBox('La longitud del campo "'+control.titulo+'" debe ser '+control.longitudMinima+' de caracteres',respLongMin); return false; } else { function respLongMin2() { control.focus(); if(resaltarError) { setDivError(control); } } msgBox('La longitud del campo "'+control.titulo+'" debe ser de de mínimo '+control.longitudMinima+' caracteres',respLongMin2); return false; } } if(!cumpleLongitudMaxima) { if(control.longitudMinima==control.longitudMaxima) { function respLongMax() { control.focus(); if(resaltarError) { setDivError(control); } } msgBox('La longitud del campo "'+control.titulo+'" debe ser '+control.longitudMaxima+' de caracteres',respLongMax); return false; } else { function respLongMax2() { control.focus(); if(resaltarError) { setDivError(control); } } msgBox('La longitud del campo "'+control.titulo+'" debe ser de de máximo '+control.longitudMaxima+' caracteres',respLongMax2); return false; } } } } return true; } function setDivError(control) { var divControl=gE(control.getId().replace('idCtrl_','div_')); divControl.setAttribute('class',(divControl.getAttribute('class')?(divControl.getAttribute('class')+' '):'')+'ctrlSeleccionado'); } function guardarValores(objConf) { var x; var control; var cadObj=''; var aControles=arrControles[objConf.idEstructura]; var aValorEnvia; var formData = new FormData(); formData.append('tabla',objConf.tabla); formData.append('id',objConf.id); formData.append('campoId',objConf.campoId); for(x=0;x'); if(arrTitulo.length==1) gE('div_titulo_'+campo).innerHTML=arrTitulo[0]; else gE('div_titulo_'+campo).innerHTML=arrTitulo[1]; setFieldBorder(campo,'#F00'); if(objConf.comentariosAdicionales.trim()!='') { gE('div_titulo_'+campo).innerHTML=''+escaparBR(cv(objConf.comentariosAdicionales,false,true),true)+'  '+gE('div_titulo_'+campo).innerHTML } } else { var arrTitulo=gE('div_titulo_'+campo).innerHTML.split(''); if(arrTitulo.length==1) gE('div_titulo_'+campo).innerHTML=arrTitulo[0]; else gE('div_titulo_'+campo).innerHTML=arrTitulo[1]; if(objConf.resultadoValidacion=='1') { setFieldBorder(campo,'#030'); if(objConf.comentariosAdicionales.trim()!='') { gE('div_titulo_'+campo).innerHTML=''+escaparBR(cv(objConf.comentariosAdicionales,false,true),true)+'  '+gE('div_titulo_'+campo).innerHTML } } else setFieldBorder(campo,'none'); } }