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)?elemento.titulo:'')+'
'; console.log(objConf.renderTo); gE(objConf.renderTo).innerHTML=tabla; contruirControles(objConf); } function contruirControles(objConf) { 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.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!='') { //ctrl.fireEvent( 'change', elemento.control.propiedades.valor,'' ); if(elemento.control.tipo=='combobox') { dispararEventoSelectCombo(ctrl.getId()); // ctrl.fireEvent( 'select', ctrl,registro,indice ); } } 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; } } } } function addControl(objConf) { 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.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 ) return true; 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; } } } } } 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