Snippets
Fragmentos listos para copiar, agrupados por el problema que resuelven.
Comparar dos fechas
Sección titulada «Comparar dos fechas»La función aFecha convierte un string con formato dd/mm/aaaa en fecha, lo que permite
compararla con otra:
<field id="vencimiento_movimiento"> <label modpos="nobr">Fecha Emisión</label> <tipo>date</tipo> <valor>today</valor> <jseval actxml="false">aFecha(\'vencimiento_movimiento\') >= aFecha(\'fecha_ultima\')</jseval> </field> <field id="fecha_ultima" local="true" deshabilitado="true" sincelda="true"> <label modpos="nobr">Ultima</label> <parametro id="numerador_fecha.xml" retorna="fecha_ultima"/> </field>Validar una dirección de correo
Sección titulada «Validar una dirección de correo» <field id="email_cuenta"> <label colspan="5">Correo electrónico</label> <size>40</size> <jsfunction event="onblur"> <![CDATA[ var RE=/^[^\s@]+@[^\s@]+\.[^\s@]+$/; if(this.value != '' && !RE.test(this.value)) { alert('E-mail No Válido'); email_cuenta.focus(); } ]]> </jsfunction> </field>Validar un importe positivo
Sección titulada «Validar un importe positivo» <field id="limite_credito"> <label modpos="nobr">Límite de crédito</label> <tipo>numeric</tipo> <size>15</size> <jsfunction event="onchange"> <![CDATA[ var $limite_credito = limite_credito.value; if(isNaN(parseFloat($limite_credito)) || ($limite_credito < 0) ) { alert('El campo "Límite de crédito" sólo acepta valores numéricos positivos.'); limite_credito.value = null; limite_credito.focus(); } ]]> </jsfunction> </field>Validar que la baja no sea anterior al alta
Sección titulada «Validar que la baja no sea anterior al alta» <field id="baja_cuenta"> <label modpos="nobr">Fecha de baja</label> <tipo>date</tipo> <help> dd/mm/yyyy</help> <jsfunction event="onchange"> <![CDATA[ var $alta_cuenta = alta_cuenta.value; var $baja_cuenta = baja_cuenta.value; if(aFecha($baja_cuenta) < aFecha($alta_cuenta)) { alert('La fecha de baja no puede ser menor que la fecha de alta.'); baja_cuenta.value = null; baja_cuenta.focus(); } ]]> </jsfunction> </field>Validar que una fecha no sea futura
Sección titulada «Validar que una fecha no sea futura» <field id="fecha_nacimiento"> <label modpos="nobr">Fecha de nacimiento</label> <tipo>date</tipo> <help> dd/mm/yyyy</help> <jsfunction event="onchange"> <![CDATA[ var $fecha_actual = new Date(); $dia_actual = $fecha_actual.getDate(); $mes_actual = $fecha_actual.getMonth() + 1; $mes_actual = $mes_actual < 10 ? '0' + $mes_actual : $mes_actual; $anio_actual = $fecha_actual.getFullYear(); var $fecha_actual = $dia_actual + '/' + $mes_actual + '/' + $anio_actual; var $fecha_nacimiento = fecha_nacimiento.value; if(aFecha($fecha_nacimiento) >= aFecha($fecha_actual)) { alert('Ha ingresado una fecha de nacimiento no válida.'); fecha_nacimiento.value = null; fecha_nacimiento.focus(); } ]]> </jsfunction> </field>Validar un CUIT
Sección titulada «Validar un CUIT» <field id="cuit_cuenta"> <label modpos="nobr">Nro. de CUIT</label> <help>XX-XXXXXXXX-X</help> <jsfunction event="onchange"> <![CDATA[ var RE=/^(20|23|27|30|33)-[0-9]{8}-[0-9]$/; if(this.value != '' && !RE.test(this.value)) { alert('Ha ingresado un número de CUIT no válido. Formato XX-XXXXXXXX-X'); cuit_cuenta.value = null; cuit_cuenta.focus(); } ]]> </jsfunction> <size>15</size> </field>Forzar el numerador de página al imprimir
Sección titulada «Forzar el numerador de página al imprimir»El atributo pageNumber toma el valor inicial del numerador desde un campo del XML:
<?xml version="1.0" encoding="UTF-8"?> <histrix tipo="consulta" _PDFlineColor="255,255,255" PDFfontSize="9" PDForientation="L" sinFecha="true" pageNumber="numerator"> <title>Movimientos</title>
Campo con el valor de inicio del numerador <field id="numerator"> </field>Obtener el usuario conectado
Sección titulada «Obtener el usuario conectado»[__user__] resuelve el usuario de la sesión dentro de una expresión; para el id
numérico se lee la variable de sesión con eval="true":
<?xml version="1.0" encoding="UTF-8"?> <histrix tipo="consulta" _PDFlineColor="255,255,255" PDFfontSize="9" PDForientation="L" sinFecha="true" pageNumber="numerator"> <form> <table> <field id="user_id"> <expression>[__user__]</expression> </field> <field id="user"> <valor eval="true">$_SESSION['idUser']</valor> </field> <!--Etcétera-->