Campos: <field> y <fieldGroup>
<field> —o <campo>, su alias— es el elemento central de cualquier XML: define una columna de la consulta, su presentación y su comportamiento. <fieldGroup> agrupa campos y copia sus atributos a cada campo hijo, así que casi todo lo que vale en un campo vale también en el grupo.
<field>
Sección titulada «<field>»Campo de formulario o columna de grid/consulta. Es el bloque fundamental: representa una columna SQL, un campo local (local="true"), un valor calculado (<expression>) o un control de UI sin persistencia. Aliases del tag: <field> (canónico) y <campo> (español).
- Va dentro de:
<ayuda>(0..n),<ayuda_ex>(0..n),<fieldGroup>(0..n),<filters>(0..n),<filtros>(0..n),<group>(0..n),<helper>(0..n),<include>(0..n),<parametro>(0..n),<tabla>(0..n),<tabla_ex>(0..n),<table>(0..n) - Atributos: 218 (32 propios y 186 heredados de grupos)
Contenido
Sección titulada «Contenido»| Elemento | Veces | Descripción |
|---|---|---|
<label> |
0..n | Etiqueta legible del campo (header de columna o label del input). |
<expression> |
0..n | Expresión SQL para valores calculados. Va al SELECT (o HAVING si hay GROUP BY). |
<expresion> |
0..n | Alias español de <expression>. |
<tipo> |
0..n | Tipo del campo (date, numeric, check, file, geoPoint, etc.). |
<formato> |
0..n | Formato de visualización (ej. “dd/mm/yyyy” en fechas, “#.##0,00” en numéricos). |
<format> |
0..n | Alias inglés de <formato>. |
<size> |
0..n | Tamaño visual del input o ancho de columna. |
<maxsize> |
0..n | Máximo de caracteres del input (atributo HTML maxlength). |
<parametro> |
0..n | Parámetros pasados al XML referenciado por obj/linkint (popups, helpers de tipo “parameter”). |
<options> |
0..n | Lista de opciones fijas para radio/select (no dependen de SQL). |
<opciones> |
0..n | Alias español de <options>. |
<help> |
0..n | Texto de ayuda contextual del campo (tooltip). |
<helper> |
0..n | Helper UI: combo dinámico, link a otro XML, popup de ayuda, grilla embebida, etc. |
<tabla_ex> |
0..n | Tabla externa (legacy). Equivalente a <helper type="object"> o <ayuda_ex>. |
<ayuda> |
0..n | Helper popup de ayuda inline (combo o lookup). |
<ayuda_ex> |
0..n | Ayuda externa (popup completo desde otro XML). |
<valor> |
0..n | Valor por defecto del campo. Con eval="true" se evalúa como PHP (ej. date('d/m/Y')). |
<operador> |
0..n | Operador de la condición de filtro/JOIN del campo (=, !=, like, in, between, etc.). |
<operator> |
0..n | Alias inglés de <operador>. |
<condicion> |
0..n | Condición SQL del campo. Va al WHERE (o HAVING si having="true"/hay GROUP BY). |
<condition> |
0..n | Alias inglés de <condicion>. |
<attribute> |
0..n | El texto del tag no es un valor: es el id de otro campo. El motor copia el valor de ese otro campo a la propiedad Histrix que nombra el… |
<if> |
0..n | Condicional <if exp="..."><true>X</true><false>Y</false></if>. |
<setvar> |
0..n | Guarda el valor del campo en una propiedad del contenedor de esa instancia, con el nombre que dice el texto del tag. |
<detalle> |
0..n | Nombre lógico del campo destino al volver de un popup hijo (mecanismo <importar resume>). |
<prefijo> |
0..n | Texto que se antepone al valor del campo al renderizar (en pantalla y PDF). |
<habilita> |
0..n | Está al revés de lo que sugiere el nombre: el texto del tag es el id del campo controlador, y el que se habilita o deshabilita es **el campo… |
<jseval> |
0..n | Evaluación JS al cambiar el campo. Resultado va al campodestino. |
<visibleWhen> |
0..n | Muestra u oculta este campo según una condición: el tag va sobre el campo controlado, no sobre el que dispara la condición. |
<requiredWhen> |
0..n | Hace obligatorio este campo mientras se cumpla la condición, y le saca la marca cuando deja de cumplirse. |
<enabledWhen> |
0..n | Habilita este campo mientras se cumpla la condición y lo deshabilita cuando deja de cumplirse. |
<eval> |
0..n | No es JavaScript: es PHP que corre server-side al parsear el XML, y decide si el campo existe. |
<preparam> |
0..n | Condición pre-filtrado aplicada a este campo antes de la query principal. |
<importar> |
0..n | Configura popup hijo que alimenta el grid via este campo. |
<actualiza> |
0..n | Al cambiar este campo, envía su valor a otros campos/combos/grids/helpers (refrescos en cascada). |
<paring> |
0..n | Alimenta con una condición SQL al contenedor embebido del campo (el que abre obj / linkint / el helper). |
<jsfunction> |
0..n | Función JS asociada a un evento del campo (onfocus, onblur, onkeypress…). |
<pdfancho> |
0..n | Ancho de la columna del valor en la ficha impresa. Su contraparte para la etiqueta es el atributo size del <label>. |
<complete> |
0..n | Expresión que el motor evalúa al completarse el campo. Ej: <complete>numero + 1</complete>. |
<checklabel> |
0..n | Etiqueta que acompaña al checkbox, a la derecha del control. |
<htmllabel> |
0..n | Texto alternativo del encabezado de columna, y sólo se usa cuando la etiqueta normal está vacía. |
<conditionalDisplay> |
0..n | No es una expresión: es el id de otro campo. Si el valor de ese campo es falsy, este campo no se renderiza. |
<onformchange> |
0..n | Código a ejecutar cuando cambia cualquier campo del form. |
<pdf> |
0..n | Código PHP que reemplaza el dibujado de este campo en el PDF. El contenido se ejecuta al imprimir la celda y, si devuelve algo, ese valor se usa… |
Atributos
Sección titulada «Atributos»Identificación y datos
Sección titulada «Identificación y datos»texto · opcional
Campo interno asociado.
id_cont
Sección titulada «id_cont»texto · opcional
Contenedor interno asociado.
texto · opcional
Nombre del XML referenciado como objeto embebido (grid hijo o ficha link).
texto · opcional
Directorio del XML referenciado por obj. Con barra inicial (/carpeta) reemplaza el subdirectorio vigente; sin barra se concatena a él.
texto · opcional
Directorio de lectura/subida de los archivos de este campo (file, files, dir), que se concatena al del contenedor. En los adjuntos del PDF (attach="true") puede además nombrar una columna: en ese caso ese tramo de la ruta sale del valor de la columna en cada fila.
Visibilidad y estado
Sección titulada «Visibilidad y estado»showObjTabla
Sección titulada «showObjTabla»BoolEstricto · opcional · default false
Muestra dentro de la celda la grilla del contenedor embebido del campo (el que trae obj). Con esa grilla visible, el valor propio del campo se muestra sólo si además lleva showValor. Combinado con lazyLoad="true" difiere la carga.
invalid
Sección titulada «invalid»texto · opcional
Motivo que se muestra cuando el campo no valida. Trabaja junto a validar="true": si el valor del campo (o su último valor grabado) no es true ni 1, el botón de procesar queda deshabilitado y este texto es el tooltip que explica por qué. Es un atributo: escrito como elemento (<invalid>…</invalid>) el mensaje no se muestra nunca.
Clave y grabación
Sección titulada «Clave y grabación»forceUpdate
Sección titulada «forceUpdate»BoolEstricto · opcional · default false
Si “true”, incluye el campo en el UPDATE aunque su valor no haya cambiado respecto al original.
BoolEstricto · opcional · default false
Nada que ver con filtros opcionales, y sólo hace algo con el literal “true”: las <options> del campo dejan de aplicarse al armar el input (el combo sale sin opciones) y el valor de cada fila se traduce por el texto de la opción al recorrer el resultado. Alcanza con un campo con valop para que el contenedor procese el resultado fila por fila.
acumula
Sección titulada «acumula»BoolEstricto · opcional · default false
La celda muestra el acumulado de la columna hasta esa fila en lugar del valor propio de la fila (y recibe la clase de celda sumada). Exige el literal “true”, y necesita que el campo lleve además suma="true": sin la suma el acumulado no se calcula y la columna sale en 0. Con norepeat no acumula.
setOriginalValue
Sección titulada «setOriginalValue»BoolEstricto · opcional · default false
Con el literal “true”, al restaurar el campo se vuelve al valor original del registro aun cuando valauto="true" mandaría a conservar el <valor> declarado. Sin este atributo la restauración ya ocurre con valauto en “false”, que es el comportamiento por omisión: sólo hace falta para ganarle a un valauto="true".
BoolEstricto · opcional
Decide si los cambios de este campo entran a la auditoría. Está al revés de lo que sugiere el nombre: con el atributo ausente el campo se audita igual, y el único valor con efecto es log="false", que lo excluye. La auditoría además tiene que estar prendida en el contenedor: con <histrix log="false"> no se audita ningún campo.
Validación
Sección titulada «Validación»required
Sección titulada «required»BoolTrueFalse · opcional
Campo obligatorio. El form no graba si está vacío. Sin default declarado a propósito: el motor lo evalúa con dos criterios a la vez — hay lecturas que tratan la ausencia como obligatorio (comparan contra 'false') y otras que exigen el literal “true”. Conviene ponerlo siempre explícito. Ojo: es un atributo; escrito como elemento (<required>true</required>) no lo lee nadie y el campo no queda obligatorio.
validRow
Sección titulada «validRow»BoolPresencia · opcional
Convierte al campo en validador de la fila: si su valor es 0, la fila se descarta y no graba. El motor sólo mira si el atributo está presente, no su valor, así que validRow="false" lo activa igual y el default="false" de esta declaración es engañoso: para no validar hay que omitir el atributo.
checkType
Sección titulada «checkType»BoolDefaultActivo · opcional · default true
No valida tipos, y viene activo. Sólo aplica a campos tipo="date": prendido — que es lo que pasa cuando el atributo falta — convierte un valor de 8 dígitos ddmmyyyy en fecha. El único valor útil es checkType="false", que desactiva esa conversión; el default="false" de esta declaración es engañoso. Nada de esto valida números.
SQL y consulta
Sección titulada «SQL y consulta»BoolEstricto · opcional
Si “true”, el campo participa de la búsqueda aunque tenga opciones cargadas (se lo consulta al re-aplicar las condiciones de la consulta). Va en el <field>: escrito en el <helper> queda en el helper, donde no lo lee nadie.
orderName
Sección titulada «orderName»texto · opcional
Nombre de columna o expresión que se usa en el ORDER BY en lugar del campo. Es la forma de ordenar por un campo calculado o por otra columna que la mostrada — el <expression> escrito dentro de un <field> de <order> no se lee.
tipoOrden
Sección titulada «tipoOrden»OrdenTipo · opcional · default ASC
Dirección de orden del campo. orderType es el nombre inglés pero no son alias simétricos: el motor toma el primero que esté seteado, así que con los dos declarados gana tipoOrden. Y el reordenamiento en memoria de la tabla temporal reconoce sólo DESC en mayúsculas: con tipoOrden="desc" la consulta sale ordenada y la tabla temporal no.
customTotal
Sección titulada «customTotal»BoolEstricto · opcional · default false
Con el literal “true” la celda de total del pie no suma la columna: el número sale de evaluar el <if> del campo sobre la fila de totales. Es la forma de armar un total que depende de otros totales (un porcentaje, un neto), y necesita que el campo tenga <if>: de ahí saca el valor.
valauto
Sección titulada «valauto»BoolEstricto · opcional
Si “true”, al renderizar nuevo registro el <valor> se aplica como valor (vs sólo como default).
Estilo y presentación
Sección titulada «Estilo y presentación»labelStyle
Sección titulada «labelStyle»texto · opcional
CSS inline de la etiqueta del campo, incluida la del checkbox. El motor lo lee junto con Formstyle y toma el primero que esté seteado: si el campo declara los dos, gana Formstyle. Se acepta también como atributo del <label>, donde escribe la misma propiedad.
Interacción entre campos
Sección titulada «Interacción entre campos»retroalimenta
Sección titulada «retroalimenta»BoolEstricto · opcional · default false
No tiene nada que ver con popups ni con devolverle valores al padre. Convierte el resultado del <if> del campo en un acumulado fila a fila (un running total que arranca de nuevo en la fila 0) y desplaza la suma normal de la columna.
refresh
Sección titulada «refresh»BoolEstricto · opcional
Sólo actúa en campos de un contenedor embebido, y sólo con el literal “true”: al cambiar el valor recarga la cabecera del formulario y dispara la grabación del contenedor de origen. No es el mecanismo para refrescar campos dependientes — eso lo dispara el campo de origen con <actualiza>.
preventLoop
Sección titulada «preventLoop»BoolEstricto · opcional
Va en el campo destino de un <jseval>: cuando el cálculo le escribe un valor nuevo no se dispara su evento change, así que los <jseval> que dependen de él no se recalculan y la cascada se corta ahí. Sólo lo activa el literal “true”.
bloqueafila
Sección titulada «bloqueafila»BoolEstricto · opcional · default false
Con el literal “true”, las filas en las que el valor de este campo sea 1 o true quedan bloqueadas: se marcan como no editables y se pintan grisadas. Con cualquier otro valor en la celda, la fila queda normal.
clasefila
Sección titulada «clasefila»BoolEstricto · opcional · default false
El valor del campo en cada fila se agrega como clase CSS del <tr>; si hay varios campos marcados, se concatenan. Cualquier valor no vacío lo activa, incluido “false”: para desactivarlo hay que omitir el atributo.
autocompletar
Sección titulada «autocompletar»ModoAutocompletado · opcional
Alias español de autocomplete, y no es el atributo HTML del input: es el modo del helper de ayuda del campo. Los valores con efecto son “true” (autocompletado sobre el input) y “full” (autocompletado + popup de la ayuda); on/off no prenden ni apagan nada. Sin helper de ayuda declarado no hace nada.
valoropcion
Sección titulada «valoropcion»BoolEstricto · opcional · default false
Si “true”, al grabar usa el VALUE de la opción seleccionada del combo, no el texto visible.
Enlaces
Sección titulada «Enlaces»linkdir
Sección titulada «linkdir»texto · opcional
Directorio del XML al que apunta linkint. Si falta, se usa el directorio del XML del contenedor.
linkint
Sección titulada «linkint»texto · opcional
Nombre del XML interno al que linkea el campo (genera link clickable). En un campo con attach="true" cumple una segunda función: lo que se adjunta al PDF no es un archivo del disco sino el PDF generado por ese XML.
BoolEstricto · opcional
Al generar el PDF adjunta un archivo por cada renglón, usando el valor del campo como nombre. La ruta se arma con el directorio de datos, el path del contenedor y el path del campo — que puede nombrar una columna, en cuyo caso ese tramo sale del valor de la fila. Si el archivo no existe no adjunta nada y no avisa. Con watermark el nombre visible del adjunto se toma de otra columna, y con linkint en vez de buscar un archivo se genera el PDF de ese XML y se adjunta ése. Sólo actúa con el literal “true”.
Exportación
Sección titulada «Exportación»texto · opcional
Simbología del código de barras cuando el campo dibuja un código: el valor se pasa tal cual al generador. Si falta se usa int25 (Interleaved 2 of 5). El valor en uso en el repo es “QR”. No confundir con el encode del <tipo>, que es otra cosa: ahí define el algoritmo de encriptación y sólo se mira con Type="password".
Grupos de atributos que acepta
Sección titulada «Grupos de atributos que acepta»Acepta además los 186 atributos de UiFlags, idGrup, CalendarGrup, KanbanGrup.
<campo>
Sección titulada «<campo>»Campo de formulario o columna de grid/consulta. Es el bloque fundamental: representa una columna SQL, un campo local (local="true"), un valor calculado (<expression>) o un control de UI sin persistencia. Aliases del tag: <field> (canónico) y <campo> (español).
- Va dentro de:
<ayuda>(0..n),<ayuda_ex>(0..n),<fieldGroup>(0..n),<filters>(0..n),<filtros>(0..n),<group>(0..n),<helper>(0..n),<include>(0..n),<parametro>(0..n),<tabla>(0..n),<tabla_ex>(0..n),<table>(0..n) - Atributos: 218 (32 propios y 186 heredados de grupos)
Acepta los mismos 218 atributos y los mismos elementos hijos que <field>, que es donde están documentados.
<fieldGroup>
Sección titulada «<fieldGroup>»Agrupador visual/lógico de campos. Se renderiza en el orden de aparición. Los <field> sueltos (fuera de cualquier fieldGroup) se renderizan al final del form.
Con xml="..." + dir="..." incluye un XML externo como fieldGroup (resuelto server-side). Útil para compartir campos entre formularios (ej. datos de agente de retención compartidos entre IG e IB).
- Va dentro de:
<include>(0..n),<tabla>(0..n),<table>(0..n) - Atributos: 169 (5 propios y 164 heredados de grupos)
Contenido
Sección titulada «Contenido»| Elemento | Veces | Descripción |
|---|---|---|
<if> |
0..n | Inclusión condicional del fieldGroup. |
<field> |
0..n | Campo dentro del grupo. |
<campo> |
0..n | Alias español de <field>. |
<validation> |
0..n | Validación de formulario declarada dentro del grupo. Sólo se registra si el <if> del grupo dio verdadero, y por eso es la forma de declarar una… |
<cierraproceso> |
0..n | Proceso de cierre declarado dentro del grupo. Igual que la <validation> de acá: sólo se registra si el <if> del grupo dio verdadero. |
Atributos
Sección titulada «Atributos»texto · opcional
Directorio del XML externo.
texto · opcional
Identificador del grupo (sirve para targeting CSS y referencias).
texto · opcional
Etiqueta del grupo (header del fieldset).
valauto
Sección titulada «valauto»BoolEstricto · opcional
Aplica valauto a todos los campos del grupo.
texto · opcional
Nombre del XML externo a incluir como fieldGroup (resuelto server-side).
Grupos de atributos que acepta
Sección titulada «Grupos de atributos que acepta»Acepta además los 164 atributos de UiFlags.
<label>
Sección titulada «<label>»Etiqueta legible del campo (header de columna o label del input). Se usa también como clave en logs de auditoría.
- Va dentro de:
<campo>(0..n),<field>(0..n) - Contenido: texto libre.
- Atributos: 47 (14 propios y 33 heredados de grupos)
Atributos
Sección titulada «Atributos»colspan
Sección titulada «colspan»entero · opcional
Sin descripción en el schema.
colstyle
Sección titulada «colstyle»texto · opcional
Sin descripción en el schema.
Formstyle
Sección titulada «Formstyle»texto · opcional
Sin descripción en el schema.
formStyle
Sección titulada «formStyle»texto · opcional
Sin descripción en el schema.
getStyle
Sección titulada «getStyle»texto · opcional
Sin descripción en el schema.
labelStyle
Sección titulada «labelStyle»texto · opcional
CSS de la etiqueta. El motor lo lee junto con Formstyle al armar el <label> y su celda, y también lo aplica a la etiqueta de un checkbox. Se puede escribir acá o en el <field>: los atributos del <label> se copian al mismo campo.
texto · opcional
Modificador de posición. El valor que el motor entiende es nobr: con modpos="nobr" la etiqueta o el campo no pasa al renglón siguiente — vale en el ABM, en los ing con subtipo="vertical", en la barra de filtros, en el PDF y en la planilla exportada. Es la forma canónica, con ~15.000 usos. nobr es el valor de este atributo, no un atributo en sí: escribir nobr="true" no hace nada, no se declara a propósito.
pdfancho
Sección titulada «pdfancho»texto · opcional
Ancho de la celda del valor en la ficha impresa. Misma propiedad que PDFancho acá y que el <pdfancho> del campo — ver la doc de pdfancho en UiFlags.
PDFancho
Sección titulada «PDFancho»texto · opcional
Ancho de la celda del valor en la ficha impresa. Es el único lugar donde esta grafía funciona: el renombre que la habilita se aplica sólo al tag <label>. Escrita en el <field> no la lee nadie — ahí va pdfancho en minúscula — y hay unos 250 usos de PDFancho en <field> que no hacen nada.
rowspan
Sección titulada «rowspan»entero · opcional
Sin descripción en el schema.
sincelda
Sección titulada «sincelda»BoolEstricto · opcional
Sin descripción en el schema.
número · opcional
Sin descripción en el schema.
texto · opcional
Sin descripción en el schema.
texto · opcional
Convierte la etiqueta en un link que abre otro XML: el valor es el XML destino. Sirve para colgar una pantalla de consulta o de configuración del propio título del campo, sin gastar una columna ni un botón.
Grupos de atributos que acepta
Sección titulada «Grupos de atributos que acepta»Acepta además los 33 atributos de pdfGrup.
Tipo del campo (date, numeric, check, file, geoPoint, etc.). Determina render y validación.
- Va dentro de:
<campo>(0..n),<field>(0..n) - Contenido: texto, de tipo
CampoTipo - Atributos: 4 (propios)
Atributos
Sección titulada «Atributos»aletras
Sección titulada «aletras»BoolPresencia · opcional
Imprime el importe en letras. El motor lo evalúa por presencia y con comparación laxa: aletras="false" ENCIENDE la conversión igual — cualquier valor no vacío la prende. Para no convertir hay que omitir el atributo; el default="false" de esta declaración es engañoso.
texto · opcional
Algoritmo con el que se encripta el valor, y sólo se consulta cuando el <tipo> lleva Type="password". Valores reconocidos: encrypt y plain; cualquier otro valor, o la ausencia del atributo, aplica md5(). No confundir con el encode del <field>, que es la simbología del código de barras.
texto · opcional
El único valor con efecto es password: hace que el campo se trate como contraseña y habilita la encriptación del valor (ver encode). Cualquier otro valor es inerte, incluido Type="Image", que es el más escrito del repo y no hace nada. Va con T mayúscula: escrito type no lo lee nadie.
texto · opcional
Prefijo de ruta/URL de los archivos del campo (file/files): se antepone al path del contenedor para leer el archivo y para armar el link de descarga.
<expression>
Sección titulada «<expression>»Expresión SQL para valores calculados. Va al SELECT (o HAVING si hay GROUP BY). Soporta '[__campo__]' para inyectar valores de campos locales.
Atributos
Sección titulada «Atributos»BoolTrueFalse · opcional · default false
Sin descripción en el schema.
BoolEstricto · opcional
Sin descripción en el schema.
<expresion>
Sección titulada «<expresion>»Expresión (SQL) para valores calculados.
Acepta los mismos 2 atributos que <expression>, que es donde están documentados.
<valor>
Sección titulada «<valor>»Valor por defecto del campo. Con eval="true" se evalúa como PHP (ej. date('d/m/Y')).
Atributos
Sección titulada «Atributos»default
Sección titulada «default»BoolEstricto · opcional
Si “true”, se aplica sólo como default (no pisa valor existente al editar).
BoolEstricto · opcional · default false
Si “true”, el contenido se evalúa como expresión PHP en el server.
texto · opcional
Sólo tiene sentido junto a eval="true". Sin retval, el contenido tiene que ser una expresión PHP que devuelva el valor. Con retval, el contenido se ejecuta como una secuencia de sentencias (se pueden declarar variables, hacer un if, un loop) y retval nombra la variable de la que sale el valor final.
Además, con retval no se hace la sustitución de [__campo__] en el cuerpo: el código llega tal cual se escribió.
<value>
Sección titulada «<value>»Valor literal contra el que comparar, como alternativa a <expression>. Con eval="true" el contenido se evalúa como PHP.
- Va dentro de:
<field>(0..n) - Contenido: texto libre.
- Atributos: 1 (propios)
Atributos
Sección titulada «Atributos»BoolEstricto · opcional · default false
Sin descripción en el schema.
<values>
Sección titulada «<values>»Valores posibles de un parámetro (type="parameter"), para que el panel los ofrezca como lista en lugar de un texto libre. Dos formas, excluyentes: con xml (+ dir y <parameter> opcionales) los valores salen de una consulta; sin xml, se enumeran a mano con <value id="...">.
- Va dentro de:
<ayuda>(0..n),<ayuda_ex>(0..n),<helper>(0..n),<tabla_ex>(0..n) - Atributos: 2 (propios)
Contenido
Sección titulada «Contenido»| Elemento | Veces | Descripción |
|---|---|---|
<value> |
0..n | Valor fijo: el id es lo que se guarda, el texto lo que se muestra. |
<parameter> |
0..n | Parámetro que se pasa al XML de values (pares name/value). |
Atributos
Sección titulada «Atributos»texto · opcional
Directorio del XML de valores.
texto · opcional
XML que provee los valores. Si está, se ignoran los <value> fijos.
Tamaño visual del input o ancho de columna.
No acepta atributos.
Texto de ayuda contextual del campo (tooltip).
No acepta atributos.
<detalle>
Sección titulada «<detalle>»Nombre lógico del campo destino al volver de un popup hijo (mecanismo <importar resume>). El padre matchea por este nombre.
No acepta atributos.
<attribute>
Sección titulada «<attribute>»No inyecta HTML: hace condicional un atributo de Histrix según el valor de otra columna. El id es el nombre del atributo Histrix que se va a setear en este campo (print, noshow, oculto, linkint…) y el texto del tag es el id de otro campo, cuyo valor se copia en ese atributo. Ejemplo real: <attribute id="print">muestra_iva</attribute> — el campo se imprime o no según lo que traiga la columna muestra_iva en la fila.
Si el campo nombrado no existe o viene sin valor, el atributo queda vacío (o sea, apagado). Para data-* o aria-* no sirve.
Acepta los mismos 1 atributos que <field>, que es donde están documentados.
Inyecta una propiedad arbitraria en el contenedor embebido del helper: el id es el nombre de la propiedad y el texto del tag es el valor. Es la única vía declarativa para setear algo que el helper no expone como atributo, y por eso mismo no hay validación posible del nombre ni del valor: lo que se escriba se asigna tal cual. Funciona en los combos y en type="external".
- Va dentro de:
<ayuda>(0..n),<ayuda_ex>(0..n),<helper>(0..n),<tabla_ex>(0..n) - Contenido: texto libre.
- Atributos: 1 (propios)
Acepta los mismos 1 atributos que <field>, que es donde están documentados.
<checklabel>
Sección titulada «<checklabel>»Etiqueta que acompaña al checkbox, a la derecha del control.
No acepta atributos.
<complete>
Sección titulada «<complete>»Expresión que el motor evalúa al completarse el campo. Ej: <complete>numero + 1</complete>.
No acepta atributos.
<conditionalDisplay>
Sección titulada «<conditionalDisplay>»No es una expresión: es el id de otro campo. Si el valor de ese campo es falsy, este campo no se renderiza. Si el id no existe en el XML la búsqueda devuelve falso y el render revienta con error, así que el nombre tiene que estar declarado como <field> (puede ser noshow="true").
No acepta atributos.
<format>
Sección titulada «<format>»Alias inglés de <formato>.
No acepta atributos.
<formato>
Sección titulada «<formato>»Formato de visualización (ej. “dd/mm/yyyy” en fechas, “#.##0,00” en numéricos).
No acepta atributos.
<habilita>
Sección titulada «<habilita>»Está al revés de lo que sugiere el nombre: el texto del tag es el id del campo controlador, y el que se habilita o deshabilita es el campo que declara <habilita>. Escribirlo como dice el nombre deshabilita el campo equivocado. Se resuelve server-side al renderizar (no hay handler JS) y mira el último valor grabado del controlador, no lo que el usuario acaba de tipear. Cuentan como falso sólo 0, '0', 'false' y false.
No acepta atributos.
<htmllabel>
Sección titulada «<htmllabel>»Texto alternativo del encabezado de columna, y sólo se usa cuando la etiqueta normal está vacía. Ojo con el nombre: el único camino que lo renderiza escapa el HTML, así que los tags salen a la vista como texto en vez de aplicarse.
No acepta atributos.
<maxsize>
Sección titulada «<maxsize>»Máximo de caracteres del input (atributo HTML maxlength).
No acepta atributos.
<onformchange>
Sección titulada «<onformchange>»Código a ejecutar cuando cambia cualquier campo del form.
No acepta atributos.
<pdfancho>
Sección titulada «<pdfancho>»Ancho de la columna del valor en la ficha impresa. Su contraparte para la etiqueta es el atributo size del <label>. También se puede fijar con PDFancho en el <label>, que escribe la misma propiedad.
No acepta atributos.
<setvar>
Sección titulada «<setvar>»Guarda el valor del campo en una propiedad del contenedor de esa instancia, con el nombre que dice el texto del tag. No es una variable de sesión: vive lo que vive la instancia. La contracara para leerla es <getvar>, que este schema no declara.
No acepta atributos.
<expression> en <field>
Sección titulada «<expression> en <field>»SELECT cuyo resultado se compara con el valor del campo. Soporta '[__campo__]' para interpolar otros campos del form.
- Va dentro de:
<field>(0..n) - Contenido: texto libre.
No acepta atributos.
<value> en <values>
Sección titulada «<value> en <values>»Valor fijo: el id es lo que se guarda, el texto lo que se muestra.
- Va dentro de:
<values>(0..n) - Contenido: texto libre.
- Atributos: 1 (propios)
Acepta los mismos 1 atributos que <field>, que es donde están documentados.
<if> en <fieldGroup>
Sección titulada «<if> en <fieldGroup>»Condición de procesamiento del bloque entero: es texto PHP que se evalúa antes de leer los filtros y, si da falso, el bloque no se procesa. No es el <if> de un campo: no lleva exp ni ramas <true>/<false>, y su resultado no es un valor sino un sí/no sobre si el bloque existe.
- Va dentro de:
<fieldGroup>(0..n),<filters>(0..n),<filtros>(0..n),<group>(0..n),<include>(0..n) - Contenido: texto libre.
No acepta atributos.
<operator> en <field>
Sección titulada «<operator> en <field>»Operador de comparación (==, !=, …). Default ==. Suele ir en CDATA cuando lleva < o >.
- Va dentro de:
<field>(0..n) - Contenido: texto libre.
No acepta atributos.
<parameter> en <values>
Sección titulada «<parameter> en <values>»Parámetro que se pasa al XML de values (pares name/value).
- Va dentro de:
<values>(0..n) - Contenido: texto libre.
- Atributos: 2 (propios)
Atributos
Sección titulada «Atributos»texto · obligatorio
Sin descripción en el schema.
texto · opcional
Sin descripción en el schema.
<pdf> en <campo>
Sección titulada «<pdf> en <campo>»Código PHP que reemplaza el dibujado de este campo en el PDF. El contenido se ejecuta al imprimir la celda y, si devuelve algo, ese valor se usa en lugar del render normal del campo. Con esto se resuelven celdas que el motor no sabe dibujar (un código de barras, una imagen calculada, un bloque con formato propio).
Es ejecución de código arbitrario dentro del XML: cualquiera que pueda editar el XML puede correr PHP en el servidor. Usarlo sólo si no hay alternativa declarativa, y tener en cuenta que un error de sintaxis acá tira abajo la impresión entera, no sólo la celda.
No acepta atributos.