Ir al contenido

Grabación: movimientos e importación

Un formulario de ingreso no graba por sí mismo: declara movimientos, que son otros XML encargados de insertar, actualizar o borrar. Estos elementos definen ese encadenamiento y el pasaje de datos entre los XML que participan.

Lista de XMLs relacionados que el motor procesa en cascada al grabar el padre. Útil para INSERT/UPDATE en múltiples tablas relacionadas (cabecera + detalles).

Elemento Veces Descripción
<relacion> 0..n Referencia a un XML hijo que se procesa como parte del movimiento.

texto · opcional

Nombre del XML cabecera (padre lógico del movimiento).

texto · opcional

Directorio donde buscar el XML de cabecera. Sólo afecta a cabecera: las <relacion> hijas resuelven su propio XML por su cuenta y no heredan este valor.

Referencia a un XML hijo que se procesa como parte del movimiento.

  • Va dentro de: <movimientos> (0..n)
  • Contenido: texto libre.
  • Atributos: 2 (propios)

texto · opcional

Directorio del XML relacionado.

texto · obligatorio

Nombre del XML relacionado.

Cierre de proceso: ejecuta otro XML como parte de la grabación del actual. Con processFirst="true" en el <histrix> del hijo, el hijo se ejecuta antes que el padre (útil para obtener numeradores en el hijo antes de que el padre grabe).

Caso típico: recibos y pagos comparten cajmovimientos_ing.xml como cierraproceso, diferenciando con el parámetro tesconie (‘I’ o ‘E’).

Elemento Veces Descripción
<paring> 1..n Mapea un campo del padre a un campo del XML cierraproceso.

texto · opcional

Condición PHP que decide si el cierraproceso se ejecuta.

texto · opcional

Directorio del XML cierraproceso.

texto · obligatorio

Nombre del XML cierraproceso (sin .xml).

Configura un popup hijo que alimenta el grid/form actual con datos seleccionados. Cada <field> (o su equivalente <parameter>) mapea un campo del hijo con uno del padre.

Cuidado: al volver del popup, el renglón se busca por los campos esClave del grid. Si un campo esClave del padre no se pasa al hijo y no vuelve via <detalle>, el matcheo falla y se crea una fila nueva (fantasma) en lugar de actualizar la existente.

Elemento Veces Descripción
<preparam> 0..n Pre-condición que se aplica al popup hijo antes de ejecutar su query.
<param> 0..n Parámetro pasado al popup hijo (legacy de preparam).
<field> 0..n Mapeo origen→destino entre hijo y padre. El id es el origen y el texto del tag es el destino; con el texto vacío se usa el mismo nombre en los…
<parameter> 0..n Forma equivalente a <field> con la sintaxis source/target.

texto · opcional

Tecla de acceso rápido del botón de importación (una letra). La menciona la doc de ventint y acá se declara: con esto el operador dispara la búsqueda sin ir al mouse.

texto · opcional

Texto del botón que abre la importación, en lugar del texto por defecto.

texto · opcional

Directorio del XML hijo.

texto · opcional

Alto del popup.

texto · opcional

Nombre de la clase de icono a mostrar en el botón (ej. ui-icon-search, ui-icon-plus).

texto · opcional

Texto del botón que abre el popup.

BoolEstricto · opcional

Se acepta por compatibilidad, pero acá no hace nada: readImportTag no lee este atributo y Relationship/ImportRelationship no lo conoce. El resume funcional es el del <histrix>, donde Data/Container lo consulta para descartar el SQL externo previo del contenedor referente al volver de un popup.

texto · opcional

Título del popup.

texto · opcional

Alias español de title.

BoolTrueFalse · opcional

Se acepta por compatibilidad, pero el motor no lo lee — igual que en el <helper>. readImportTag sólo procesa xml, field/campo, parameter, icon, accesskey, boton, width, height, label, titulo/title y dir.

texto · opcional

Ancho del popup.

texto · opcional

Nombre del XML hijo que se abre como popup.

SQL/PHP arbitrario a ejecutar. En tipo="nosql" Histrix reemplaza 'nombre_campo' (entre comillas) por el valor del campo.

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

No acepta atributos.

Condición pre-filtrado en consultas/importar. field es alias de campo (mismo significado).

  • Va dentro de: <importar> (0..n)
  • Contenido: texto libre.
  • Atributos: 3 (propios)

texto · opcional

id del campo del XML hijo al que se le aplica el pre-filtro.

texto · opcional

Alias inglés de campo.

OperadorCondicion · opcional

Operador SQL del pre-filtro.

Condición pre-filtrado en consultas/importar. field es alias de campo (mismo significado).

Acepta los mismos 3 atributos que <param>, que es donde están documentados.

Alimenta con una condición SQL al contenedor embebido del campo (el que abre obj / linkint / el helper). No es el <paring> de <cierraproceso>, que es otro mecanismo: ése mapea campos del padre al XML de cierre.

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

texto · obligatorio

id del campo del contenedor embebido sobre el que se arma la condición.

texto · opcional

Operador SQL de la condición (=, !=, like, in…), no un operador de asignación: += y -= no significan nada acá. Si se omite, =.

BoolDefaultActivo · opcional · default true

Está invertido: con el atributo ausente la condición ya reemplaza la que tuviera ese campo. El valor útil es reemplazo="false", que la acumula en vez de reemplazarla.

Mapea un campo del padre a un campo del XML cierraproceso.

  • Va dentro de: <cierraproceso> (1..n)
  • Contenido: texto libre.
  • Atributos: 1 (propios)

texto · obligatorio

id del campo destino en el XML cierraproceso.

Mapeo origen→destino dentro de <importar>. El id es el campo origen y el texto del tag es el campo destino; con el texto vacío se usa el mismo nombre para los dos. Ese texto es significativo, no un comentario: borrarlo o comentarlo rompe el mapeo.

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

texto · obligatorio

id del campo del padre que recibe.