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';
fila2+=' | ';
if(x>=objConf.totalColumna-1)
{
contColumnas=0;
fila1+='';
fila2+='';
tabla+=fila1+fila2;
break;
}
}
}
tabla+='
';
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