Ir al contenido

Consulta: <form>, <table> y SQL

Estos elementos describen la consulta: qué tabla es la base, con qué se une, cómo se agrupa y ordena, y qué filtros ve el usuario. El motor arma el SQL a partir de esta declaración.

Contenedor del modelo de edición/visualización (<form> o alias español <consulta>). Define la tabla base, joins, parámetros, y opcionalmente un bloque PDF custom.

Elemento Veces Descripción
<pdf> 0..n Impresión PDF con código embebido: <header>, <code> y <footer> se ejecutan como código PHP con la variable $pdf disponible, que apunta al…
<join> 0..n JOIN a otra tabla. El motor genera el SQL del JOIN a partir de los <field> con <condicion>.
<table> 0..n Tabla adicional declarada al nivel del <form>/<consulta>.
<tabla> 0..n Alias español de <table> a este nivel, con el mismo comportamiento: si se declara más de una, sobrevive únicamente la última.
<tempTable> 0..n Tabla temporal que alimenta el grid (flujos de importación).

texto · opcional

Texto que ocupa el panel de detalle mientras no se eligió ninguna fila (el “Seleccione una fila…”). Sólo aplica al detalle en panel, no al inline, y si se omite se usa el texto traducido por defecto.

texto · opcional

Nombre del XML hijo que se abre como popup al hacer click en una fila (vista de detalle).

texto · opcional

Directorio del XML referenciado por detalle (relativo al módulo).

texto · opcional

Campo cuyo valor determina si la fila tiene detalle disponible (icono “+”).

BoolEstricto · opcional · default false

Muestra el detalle expandido bajo la fila en lugar de en un popup. Cualquier valor no vacío lo activa, incluido "false": para que el detalle salga en popup hay que omitir el atributo. El default="false" declarado acá es engañoso — inline="false" no apaga nada, lo prende.

BoolPresencia · opcional

Agrega la columna de checkboxes para seleccionar varias filas. multipleSelection="false" no lo apaga: unas partes del render exigen el literal "true" y otras se conforman con que el atributo tenga cualquier valor, así que con "false" la selección múltiple queda a medio armar. Para desactivarla hay que omitir el atributo.

BoolEstricto · opcional · default false

Muestra arriba del detalle la cabecera de lo consultado (el form en modo lectura). Escrito acá no funciona: el motor lo renombra al transferirlo al contenedor y la propiedad resultante no la lee nadie. Hoy el único lugar donde surte efecto es el <histrix>, con showCab="true". Es un defecto del motor, no del schema.

BoolEstricto · opcional

Con "true", y sólo cuando hay detalle + inline, agrega la clase CSS single a la celda del detalle inline. No hace nada más: no es “registro único”, no toca la paginación ni la navegación entre filas, y hoy ni el JS ni el CSS del proyecto consumen esa clase.

Contenedor del modelo de edición/visualización (<form> o alias español <consulta>). Define la tabla base, joins, parámetros, y opcionalmente un bloque PDF custom.

Acepta los mismos 8 atributos y los mismos elementos hijos que <form>, que es donde están documentados.

Tabla adicional declarada al nivel del <form>/<consulta>. No es un JOIN implícito: el motor arma un contenedor por cada <table> de este nivel y se queda sólo con el último, sin merge ni condición ON automática, así que la primera tabla queda pisada. Para relacionar tablas va <join>.

Elemento Veces Descripción
<movimientos> 0..n Relaciones a otros XMLs que se procesan al grabar (cascada de inserts/updates).
<ejecuta> 0..n SQL/PHP arbitrario a ejecutar. En tipo="nosql" Histrix reemplaza 'nombre_campo' (entre comillas) por el valor del campo.
<cierraproceso> 0..n XML hijo que se procesa al cerrar/grabar este. Con processFirst="true" el hijo se ejecuta antes que el padre.
<validation> 0..n Validación previa a la grabación con <condition> + <message>: si la condición falla, se muestra el mensaje y se aborta.
<validations> 0..n Validaciones por campo (<field> con <expression> + <operator> + <message>).
<filters> 0..n Filtros adicionales (barra superior). Equivalente a <filtros>.
<filtros> 0..n Alias español de <filters>, pero no del todo equivalente: el motor procesa primero <filtros> y después <filters>, y la segunda pasada…
<preconsultas> 0..n No ejecuta SQL. Es una lista de otros XMLs que se consultan antes de la consulta principal y cuyas filas quedan disponibles para ésta.
<importar> 0..n Popup hijo para alimentar el grid actual.
<sql> 0..n SQL raw. Sólo se reemplaza [__campo__].
<field> 0..n Campo de formulario o columna de grid/consulta. Es el bloque fundamental: representa una columna SQL, un campo local (local="true"), un valor…
<campo> 0..n Campo de formulario o columna de grid/consulta. Es el bloque fundamental: representa una columna SQL, un campo local (local="true"), un valor…
<fieldGroup> 0..n Agrupador visual/lógico de campos. Se renderiza en el orden de aparición.
<group> 0..n Campos por los que agrupar (genera GROUP BY). Requiere tabla="X" en cada <field> cuando la columna está en múltiples tablas del JOIN.
<order> 0..n Orden de la consulta (genera ORDER BY).
<orden> 0..n Alias español de <order>.
<grafico> 0..n Gráfico asociado a la tabla (líneas/barras/torta).
<status> 0..n Columna de un tablero tipo="kanban": un valor del campo declarado en statusField.
<select> 0..n SELECT crudo que reemplaza la consulta que el motor armaría con los <field>.
<selectCode> 0..n Bloque de código PHP que llena la grilla a mano, en lugar del SELECT que armaría el XML: se ejecuta al cargar los datos y tiene que dejar armado un…
<onRowClick> 0..n JS a ejecutar al hacer clic en una fila de la grilla.
<helper> 0..n Helper de importación a nivel de tabla (type="import"): define de dónde se traen renglones para llenar la grilla.

texto · opcional

id del campo donde se imputa el ajuste al Debe. El valor se transfiere al contenedor, pero hoy ningún consumidor del motor lo lee: escribirlo no cambia nada.

texto · opcional

id del campo donde se imputa el ajuste al Haber. El valor se transfiere al contenedor, pero hoy ningún consumidor del motor lo lee: escribirlo no cambia nada.

texto · opcional

Alias SQL de la tabla base. Necesario cuando la misma tabla entra más de una vez en la consulta (por ejemplo un JOIN a sí misma) para poder calificar las columnas sin ambigüedad.

texto · opcional

Condición de grabación por expresión, complemento de idCampoCond y no un reemplazo: el motor toma el último valor grabado del campo nombrado en idCampoCond (o 0 si viene vacío), le pega este texto a la derecha y evalúa el resultado como expresión PHP; si da falso, la fila no se graba. O sea que acá va sólo el operador y el término derecho — por ejemplo > 0 o == 5. Estando presente, reemplaza la evaluación truthy simple de idCampoCond.

texto · obligatorio

Nombre de la tabla SQL base.

texto · opcional

id de un campo cuyo valor es la cantidad de veces que se repite la grabación de la fila: con idCampoCant="cant" y cant=3, el movimiento inserta tres registros iguales en lugar de uno. Vacío o ausente equivale a 1, y si el campo contiene una grilla embebida se usa la cantidad de filas de esa grilla. No valida nada: no tiene relación con rechazar cantidades en cero.

texto · opcional

id del campo que habilita la grabación de la fila: si su valor es falsy, el INSERT/UPDATE de esa fila no se ejecuta. Cuentan como falsy el vacío (o sólo espacios), 0, '0', 0.00, '0.00', false y 'false'; cualquier otra cosa graba, incluido el literal "true". Va en el <table>: escrito en el <form>/<consulta> se descarta en silencio (30 XMLs del repo lo tienen ahí y no hace nada).

texto · opcional

Etiqueta legible de la tabla. En la práctica no se ve en ninguna parte: el motor la toma como título inicial del contenedor y unas líneas después la pisa siempre con el título declarado en el <histrix> — y si el <histrix> no trae título, la pisa con vacío. Ni la pestaña, ni el PDF, ni el nombre del archivo exportado la usan, aunque hay cientos de XMLs que la escriben. El título va en el <title>/<titulo> del <histrix>.

BoolEstricto · opcional

Muestra la cantidad de renglones de la grilla. Ojo con la grafía: es exactamente showCantidadshowCant y showcantidad no se leen.

texto · opcional

CSS inline que se emite como atributo style de la <table> HTML de la grilla, tanto en la vista web como en la mobile. Ojo que reemplaza el default del motor, que es float:left;clear:left;: si sólo querés agregar una regla conviene repetir esas dos, porque al pisarlas cambia el layout de la grilla. Y styleTbody —que este mismo XSD recomendaba antes para el <tbody>no existe en ninguna forma: los 265 usos del repo no hacen nada.

Tabla SQL fuente de datos (<table> o alias español <tabla>). Contiene los campos del form, opcionalmente grupos, orden, filtros, validaciones, movimientos, cierraproceso. El id es el nombre de la tabla en la BD.

Acepta los mismos 10 atributos y los mismos elementos hijos que <table>, que es donde están documentados.

Relación con otra tabla (JOIN SQL). Soporta también JOIN a <subquery> cuando la tabla joineada es derivada (<subquery as="ALIAS"><sql>SELECT ...</sql></subquery>).

Un <if> dentro del <join> no se lee: el join se aplica siempre. Para condicionarlo está grupo.

Elemento Veces Descripción
<tabla> 0..n Tabla joineada (alias español). Un <join> puede contener múltiples tablas joineadas en cadena.
<table> 0..n Tabla joineada (alias inglés).
<subquery> 0..n JOIN a un subquery (tabla derivada). Requiere atributo as.

texto · opcional

Grupo lógico del join (usado para identificar conjuntos de joins relacionados).

JoinTipo · opcional

Tipo de JOIN: left | right | inner | full (case-insensitive).

Subquery aliasada usada como tabla joineada. Estructura: <subquery as="ALIAS"><sql>SELECT ...</sql><field .../>...</subquery>. El SQL dentro de <sql> soporta '[__campo__]' para valores de campos del padre.

  • Va dentro de: <join> (0..n)
  • Atributos: 1 (propios)
Elemento Veces Descripción
<sql> 0..1 SQL del subquery. Acepta '[__campo__]' para parámetros.
<field> 0..n Campos del subquery con sus condiciones ON.
<campo> 0..n Alias español de <field>.

texto · obligatorio

Alias SQL obligatorio del subquery.

SQL del subquery. Acepta '[__campo__]' para parámetros.

No acepta atributos.

Campos por los cuales agrupar el SQL (GROUP BY). Los campos con <expression> que usan funciones de agregación (SUM/COUNT/MAX) quedan fuera del GROUP BY automáticamente. Va dentro de la <table>/<tabla>: dentro de un <fieldGroup> no se lee y el GROUP BY no se aplica.

Elemento Veces Descripción
<field> 0..n Campo de agrupación. Requiere tabla="X" si la columna está en múltiples tablas del JOIN.
<campo> 0..n Alias español de <field>.
<if> 0..n Condición de procesamiento del bloque entero: texto PHP que decide si el GROUP BY se aplica o no.

No acepta atributos.

Definición de orden de la consulta (ORDER BY). Cada <field> declara una columna y su dirección. Va dentro de la <table>/<tabla>: colgado directo del <form>/<consulta> o de un <fieldGroup> no se lee y el ORDER BY no se aplica.

Elemento Veces Descripción
<if> 0..1 Orden condicional: aplica el <field> que esté dentro de la rama true/false según la expresión.
<field> 0..n Campo por el que ordenar. Si tiene <expression>, se ordena por esa expresión SQL.
<campo> 0..n Alias español de <field>: el motor lo toma como fallback cuando el bloque de orden no tiene ningún <field>.

BoolEstricto · opcional

Aplica el orden sobre la tabla temporal del grid en lugar de sobre la consulta original. Es lo que hace que un grid de carga respete el orden declarado en vez de mostrar los renglones en el orden en que se fueron cargando.

Cuidado si hay más de un bloque de orden en la misma tabla: el valor se asigna al procesar cada bloque, así que gana el último y puede apagar el de un bloque anterior.

Alias español de <order>, pero sólo funciona en <tabla_ex> y <ayuda_ex>. Dentro de un <helper> es inerte: ahí el motor busca únicamente <order> y no tiene fallback al español. Los 11 combos del repo que lo usan caen al orden por defecto (por el 2º campo del combo) y el síntoma es “el combo sale desordenado”. En un <helper> usar <order>.

Acepta los mismos 1 atributos y los mismos elementos hijos que <order>, que es donde están documentados.

Filtros adicionales mostrados en la barra superior del listado. Recordar: un filtro debe declararse en <filters> Y como <field> (puede ser oculto="true").

Sólo se leen los <field>/<campo> hijos: un <label> o un <tabla_ex> colgado directo del bloque no genera ningún filtro. Y si en la misma tabla se escriben los dos tags, <filters> y <filtros>, la segunda lectura resetea el auto de la primera.

Elemento Veces Descripción
<field> 0..n Campo de filtro (cada uno genera un input en la barra de filtros).
<campo> 0..n Alias español de <field>: el motor lee las dos grafías como filtro.
<if> 0..n 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.

BoolEstricto · opcional

Con auto="true" los filtros se aplican solos al cambiar cualquier valor, sin botón “filtrar”. La comparación es estricta contra el texto true: 1 no sirve.

Filtros adicionales mostrados en la barra superior del listado. Recordar: un filtro debe declararse en <filters> Y como <field> (puede ser oculto="true").

Sólo se leen los <field>/<campo> hijos: un <label> o un <tabla_ex> colgado directo del bloque no genera ningún filtro. Y si en la misma tabla se escriben los dos tags, <filters> y <filtros>, la segunda lectura resetea el auto de la primera.

Acepta los mismos 1 atributos y los mismos elementos hijos que <filters>, que es donde están documentados.

Condición SQL de un campo: operador + valor literal/expresión. Va al WHERE.

El ruteo al HAVING lo decide el atributo having del <expression> del campo (o del propio <field>): escrito acá, sobre la <condicion>, no se lee — hay 7 XMLs con <condicion having="true"> que no hacen nada. En <helper> de combo, las condiciones se aplican al SELECT del combo (NO soportan '[__campo__]' — usar <actualiza> para combo dinámico).

Este mismo tipo se usa para la <condition> de un <validation>, que no es SQL sino una expresión JavaScript evaluada en el browser: ahí ni operador ni valorde se leen.

  • Va dentro de: <campo> (0..n), <field> (0..n)
  • Contenido: texto libre.
  • Atributos: 4 (propios)

BoolEstricto · opcional

Hace la condición inmune al botón de limpiar filtros: cuando el usuario resetea la barra de filtros, las condiciones normales se van y ésta queda. Sirve para las restricciones que son parte de la definición de la pantalla (una empresa, un estado, un tipo de comprobante) y que el usuario no debería poder sacar.

texto · opcional

Cómo se encadena esta condición con las anteriores del mismo campo. Por defecto todas se suman con AND; con logic="OR" esta condición se une con OR a la de arriba. Es la única forma declarativa de armar un (a = 1 OR a = 2) sin escribir el SQL a mano.

OperadorCondicion · opcional · default =

Operador SQL: =, !=, <, >, <=, >=, like, in, between, is null, etc. Opcional: si se omite, el motor asume = (normaliza el operador vacío), por lo que omitirlo y escribir operador="=" son equivalentes.

texto · opcional

Toma el valor de otro campo del mismo form (id). Útil en JOINs y filtros dinámicos.

Condición SQL de un campo: operador + valor literal/expresión. Va al WHERE.

El ruteo al HAVING lo decide el atributo having del <expression> del campo (o del propio <field>): escrito acá, sobre la <condicion>, no se lee — hay 7 XMLs con <condicion having="true"> que no hacen nada. En <helper> de combo, las condiciones se aplican al SELECT del combo (NO soportan '[__campo__]' — usar <actualiza> para combo dinámico).

Este mismo tipo se usa para la <condition> de un <validation>, que no es SQL sino una expresión JavaScript evaluada en el browser: ahí ni operador ni valorde se leen.

Acepta los mismos 4 atributos que <condicion>, que es donde están documentados.

Operador de la condición de filtro/JOIN del campo (=, !=, like, in, between, etc.). Acepta atributos modificador (modifica el valor antes de comparar) y oplogico (and/or para concatenar con el siguiente filtro).

texto · opcional

Modificador del operador: transforma el valor antes de comparar (ej. UPPER, LOWER, DATE).

texto · opcional

Operador lógico para concatenar con el siguiente filtro: “and” (default) | “or”.

Elemento <operador> (o alias <operator>) dentro de <field>. Contenido = operador SQL (OperadorCondicion); atributos opcionales modificador y oplogico para refinar el comportamiento del filtro.

Acepta los mismos 2 atributos que <operador>, que es donde están documentados.

Bloque de pre-consultas/validaciones ejecutadas antes de la consulta principal.

La forma canónica es <xmlfile id="mi_consulta"/> (69 usos en el repo): cada uno nombra otro XML que se ejecuta antes, y sus resultados quedan disponibles para la consulta de esta pantalla. Se usa para preparar datos —llenar una tabla temporal, recalcular un saldo— sin meter ese SQL en la consulta principal.

El contenido está declarado permisivo a propósito, así que acá el schema no valida nada: un tag mal escrito adentro de este bloque no da error y simplemente no hace nada.

  • Va dentro de: <tabla> (0..n), <table> (0..n)
  • Contenido: texto libre.

No acepta atributos.

Definición de tabla temporal usada como fuente del grid (típicamente en flujos de importación).

La forma canónica es una lista de <row>, cada uno con los <field> de un renglón (315 usos en el repo): con eso se precarga el grid con renglones fijos sin que exista una tabla real detrás. También se acepta SQL de creación de la temporal.

El contenido está declarado permisivo a propósito, así que acá el schema no valida nada: un tag mal escrito adentro de este bloque no da error y simplemente no hace nada.

  • Va dentro de: <consulta> (0..n), <form> (0..n)
  • Contenido: texto libre.
  • Atributos: 1 (propios)

Acepta los mismos 1 atributos que <field>, que es donde están documentados.

Código del cuerpo del PDF, se ejecuta una vez al imprimir el contenedor.

  • Va dentro de: <pdf> (0..1)
  • Contenido: texto libre.

No acepta atributos.

Código que se ejecuta al dibujar cada pie de página.

  • Va dentro de: <pdf> (0..1)
  • Contenido: texto libre.

No acepta atributos.

Código que se ejecuta al dibujar cada cabecera de página.

  • Va dentro de: <pdf> (0..1)
  • Contenido: texto libre.

No acepta atributos.

JS a ejecutar al hacer clic en una fila de la grilla.

  • Va dentro de: <tabla> (0..n), <table> (0..n)
  • Contenido: texto libre.

No acepta atributos.

Impresión PDF con código embebido: <header>, <code> y <footer> se ejecutan como código PHP con la variable $pdf disponible, que apunta al objeto que dibuja el PDF — de ahí salen los métodos que se pueden llamar (Cell, MultiCell, Image, SetFont, SetXY…).

Los atributos de este tag se descartan: PDForientacion / PDForientation escritos acá no hacen nada (146 XMLs del repo lo intentan) — la orientación va en el <histrix>. Y el bloque tiene que colgar del <form>/<consulta>: un <code> suelto dentro de <table> no se lee.

Elemento Veces Descripción
<header> 0..1 Código que se ejecuta al dibujar cada cabecera de página.
<code> 0..1 Código del cuerpo del PDF, se ejecuta una vez al imprimir el contenedor.
<footer> 0..1 Código que se ejecuta al dibujar cada pie de página.

No acepta atributos.

SELECT crudo que reemplaza la consulta que el motor armaría con los <field>.

  • Va dentro de: <tabla> (0..n), <table> (0..n)
  • Contenido: texto libre.

No acepta atributos.

Bloque de código PHP que llena la grilla a mano, en lugar del SELECT que armaría el XML: se ejecuta al cargar los datos y tiene que dejar armado un arreglo con un elemento por renglón, y cada renglón como pares campo => valor. Si devuelve algo, ese contenido reemplaza por completo al resultado de la consulta.

Dos trampas: no corre si el contenedor tiene dataSource, que tiene prioridad; y si el código falla, la grilla queda vacía sin ningún aviso en pantalla — el error va al log.

  • Va dentro de: <tabla> (0..n), <table> (0..n)
  • Contenido: texto libre.

No acepta atributos.

Una columna del tablero tipo="kanban". Va como hijo directo de <table>, al lado de <filters> y <order>, y se declara una por cada valor del campo indicado en statusField que quiera verse. Las columnas se dibujan en el orden de aparición.

Las filas cuyo estado no coincide con ninguna columna declarada no desaparecen: van a una columna “Sin clasificar” al final (ver showOrphans y orphanLabel en <histrix>).

  • Va dentro de: <tabla> (0..n), <table> (0..n)
  • Contenido: texto libre.
  • Atributos: 7 (propios)

texto · opcional

Color CSS de la columna: pinta la línea superior del encabezado y el borde izquierdo de sus tarjetas. Un campo con kanban="color" lo pisa por tarjeta.

texto · opcional

Directorio de confirmXml. Obligatorio cuando hay confirmXml: sin él el path no resuelve en varios contextos y el popup abre con “file not found” (la misma regla que el dir de los includes). Declararlo aunque apunte al directorio del propio XML.

texto · opcional

Título del modal de confirmación. Si no está, se usa el label de la columna.

texto · opcional

XML que hay que completar para entrar a esta columna. Sin este atributo el movimiento se graba directo, como en el resto de las columnas.

Con él, el tablero no graba: al soltar la tarjeta abre este XML como modal pasándole la clave de la tarjeta y el estado destino —los <parameter> prellenan el form del lado del servidor, así que la pantalla abre con el estado nuevo ya puesto— y ese XML es el que graba. Puede ser un update simple o una ficha con <movimientos>, que es justamente lo que el UPDATE plano del campo no puede hacer.

Al cerrarse el modal el tablero recarga y acomoda cada tarjeta según el estado que tiene en la base: si se confirmó queda en la columna nueva, y si se canceló vuelve sola a donde estaba.

El endpoint del movimiento rechaza estas columnas con 400, así que la confirmación no se puede saltear pegándole a la API.

Es la forma de dar drag a un estado que es consecuencia de un proceso (presupuesto → facturado, orden pendiente → cumplida): en vez de pisar el campo, se dispara la pantalla que hace el trabajo completo.

texto · opcional

Título de la columna. Si no está, se muestra el value.

entero · opcional

Límite de trabajo en curso (WIP). Es sólo visual: el contador pasa a mostrar usadas/limit y se pinta en alerta al pasarse, pero no impide mover tarjetas a la columna.

texto · obligatorio

Valor del campo statusField que cae en esta columna. Obligatorio, y no puede repetirse entre columnas: las dos cosas se reportan como error de configuración en pantalla. Es también el único destino válido de un drop — arrastrar a la columna de huérfanos se rechaza con 400.

Tabla referenciada en el JOIN. Puede ser una tabla real o un <subquery> aliasado.

  • Va dentro de: <join> (0..n)
  • Atributos: 2 (propios)
Elemento Veces Descripción
<field> 1..n Campos de la tabla joineada con sus condiciones ON.

texto · opcional

Alias SQL de la tabla en el JOIN.

texto · obligatorio

Nombre de la tabla joineada.

Tabla joineada (alias español). Un <join> puede contener múltiples tablas joineadas en cadena.

  • Va dentro de: <join> (0..n)
  • Atributos: 2 (propios)

Acepta los mismos 2 atributos y los mismos elementos hijos que <table>, que es donde están documentados.

Alias español de <field>: el motor lo toma como fallback cuando el bloque de orden no tiene ningún <field>.

  • Va dentro de: <orden> (0..n), <order> (0..n)
  • Contenido: texto libre.
  • Atributos: 5 (propios)

Acepta los mismos 5 atributos que <field>, que es donde están documentados.

Campo que define una condición ON del JOIN. La <condicion> con valorde="campo" referencia un campo de la tabla principal para armar el ON tabla_join.x = tabla_principal.y.

  • Va dentro de: <subquery> (0..n)
  • Atributos: 5 (propios)

Acepta los mismos 5 atributos y los mismos elementos hijos que <field>, que es donde están documentados.

Campo por el que ordenar. Si tiene <expression>, se ordena por esa expresión SQL.

  • Va dentro de: <orden> (0..n), <order> (0..n)
  • Contenido: texto libre.
  • Atributos: 5 (propios)

texto · obligatorio

id del campo por el que ordenar.

OrdenTipo · opcional

Dirección de orden (inglés). Coexiste con tipoOrden; el motor lee ambos.

texto · opcional

Tabla del campo (cuando ambiguo en JOINs).

texto · opcional

Alias inglés de tabla.

OrdenTipo · opcional · default ASC

Dirección de orden. Alias inglés: orderType.

Campo que define una condición ON del JOIN. La <condicion> con valorde="campo" referencia un campo de la tabla principal para armar el ON tabla_join.x = tabla_principal.y.

Elemento Veces Descripción
<condicion> 0..n Condición del JOIN (operador + valor o referencia a otro campo).
<condition> 0..n Alias inglés de <condicion>.
<expression> 0..n Expresión SQL alternativa para el campo del JOIN.
<expresion> 0..n Alias español de <expression>.
<label> 0..n Etiqueta del campo en pantalla (si se muestra).
<tipo> 0..n Tipo del campo del JOIN.

texto · opcional

Alias SQL del campo.

texto · obligatorio

Nombre de la columna en la tabla del JOIN.

BoolEstricto · opcional

Alias inglés de oculto.

BoolEstricto · opcional

Si “true”, oculta el campo en pantalla.

texto · opcional

Tabla a la que pertenece el campo (cuando ambiguo).