Ir al contenido

Snippets

Fragmentos listos para copiar, agrupados por el problema que resuelven.

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\') &gt;= 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>
<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 != '' &amp;&amp; !RE.test(this.value)) {
alert('E-mail No Válido');
email_cuenta.focus();
}
]]>
</jsfunction>
</field>
<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 &quot;Límite de crédito&quot; sólo acepta valores numéricos positivos.');
limite_credito.value = null;
limite_credito.focus();
}
]]>
</jsfunction>
</field>
<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>
<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) &gt;= aFecha($fecha_actual)) {
alert('Ha ingresado una fecha de nacimiento no válida.');
fecha_nacimiento.value = null;
fecha_nacimiento.focus();
}
]]>
</jsfunction>
</field>
<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>

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>

[__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-->