Ir al contenido

Helpers y combos

Un helper agrega a un campo una ayuda de búsqueda, un combo, un enlace a otro XML o un contenedor embebido. El atributo type decide cuál, y de él dependen qué otros atributos tienen efecto.

Helper UI asociado a un campo. Tipos (type):

  • “combo”: dropdown alimentado por SQL (1er field = VALUE, 2do field = texto visible).
  • “comboex”: idéntico a “combo” — el motor los atiende con la misma rama.
  • “link”: botón/icono que abre otro XML como popup (consulta, ficha, fichaing).
  • “external”: ayuda que abre una tabla popup para elegir un registro.
  • “parameter”: parámetro de configuración editable desde el panel nativo de parámetros.
  • “object”: grilla/ficha embebida inline en el campo (no popup).
  • “inline”: contenedor embebido, misma rama que “object” y “tags”.
  • “tags”: campo de etiquetas múltiples, misma rama que “object”.
  • “media”: botón que abre la imagen/archivo del campo.
  • “import”: trae datos de otro XML al form.

Este complexType valida cuatro elementos distintos: <helper> y las formas legacy <tabla_ex>, <ayuda> y <ayuda_ex>. Por eso hay hijos y atributos declarados acá que sólo tienen efecto en uno de los cuatro — y por eso cada declaración aclara en qué forma y en qué type se lee. Un atributo escrito en el type equivocado se descarta sin aviso.

Las <condicion> SQL del combo NO soportan '[__campo__]' directamente — usar <actualiza> desde el form padre + <detalle> para alimentar el combo dinámicamente.

Elemento Veces Descripción
<field> 0..n Campo del helper (columna del combo o filtro de la ayuda).
<campo> 0..n Alias español de <field>. El motor lo toma como fallback cuando no hay <field>, pero sólo en <tabla_ex> y <ayuda_ex>, las formas legacy…
<option> 0..n Opción fija del combo (no proviene de SQL).
<order> 0..n Ordenamiento del combo/helper.
<orden> 0..n Alias español de <order>, pero sólo funciona en <tabla_ex> y <ayuda_ex>.
<label> 0..n Etiqueta del parámetro: se lee sólo en type="parameter" y es el nombre con el que el parámetro aparece en el panel nativo de parámetros.
<defaultValue> 0..n Valor por defecto del parámetro de configuración, no del combo: se lee sólo en type="parameter" y es el valor que toma el parámetro mientras…
<parameter> 0..n Parámetro pasado del padre al XML del helper. Source = campo del padre, target = campo en el XML hijo.
<clave> 0..n Campo que aporta la clave de la ayuda. Sólo se lee dentro de <ayuda_ex>, una de las formas legacy que comparten este complexType.
<key> 0..n Campo que aporta la clave de la ayuda, en un <helper type="external">.
<description> 0..n Descripción del parámetro, para type="parameter": es el texto explicativo que se muestra en el panel nativo de parámetros junto al valor…
<descripcion> 0..n Se acepta por compatibilidad, pero el motor no lo lee: sólo busca la forma en inglés.
<values> 0..n Valores posibles de un parámetro (type="parameter"), para que el panel los ofrezca como lista en lugar de un texto libre.
<set> 0..n 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.
<group> 0..n GROUP BY de la consulta del helper. Sirve para desduplicar el combo cuando la tabla de origen repite el valor a mostrar (típico al venir de un JOIN…
<value> 0..n Campo que aporta la descripción de la ayuda en un <helper type="external">: el que se muestra al usuario, mientras <key> aporta el valor que…

BoolEstricto · opcional

El combo no viene con las opciones adentro del HTML: se piden al servidor a medida que el usuario escribe. Es la solución para combos con muchas filas, donde armar el select completo hace lenta (o imposible) la carga de la pantalla.

texto · opcional

Sólo en type="link": nombre de la función JavaScript que se ejecuta cuando el popup se cierra. Es el gancho para refrescar la pantalla padre con lo que el hijo grabó.

texto · opcional

Directorio del XML del helper. Se concatena al directorio del XML que lo declara, no lo reemplaza: dir="ing" desde un XML que vive en caja/ busca en caja/ing/. Para dar una ruta desde la raíz del árbol de XMLs, empezarla con /.

BoolEstricto · opcional

Permite escribir un valor que no esté en la lista: el combo deja de ser cerrado y acepta texto libre además de las opciones.

texto · opcional

Opción vacía del combo (type="combo"/"comboex"). No es booleano: si el valor no es '', 'true' ni 'false', se usa como texto del placeholder de esa opción, así que empty="Seleccione…" funciona y es el uso interesante. En <tabla_ex> el atributo equivalente es vacio.

BoolEstricto · opcional

Arranca el helper desplegado en lugar de cerrado.

texto · opcional

Alto del popup del helper. Lo leen type="link", type="media" y type="import"; en combo/external/parameter no tiene efecto.

texto · opcional

Icono mostrado en el botón del helper, con los nombres del set de iconos de la UI (ej. ui-icon-wrench). Sólo tiene efecto en type="link", type="media" y type="import"; en combo/external/parameter se ignora.

texto · opcional

No es un id de debug: es funcional y sensible. En type="parameter" es la clave con la que el parámetro se guarda en HTXOPTIONS, así que renombrarlo pierde el valor ya configurado (y si no hay <label>, también es la etiqueta que se muestra). En combo/external sin xml, su presencia es lo que hace que el motor arme el contenedor del helper.

texto · opcional

Texto del botón que abre el popup, sólo en type="import". En los demás tipos el atributo es inerte; para type="parameter" la etiqueta va en el elemento <label>.

BoolPresencia · opcional

Si “true”, el popup es modal (bloquea la interacción con el padre hasta cerrarlo). Sólo lo lee type="link".

BoolEstricto · opcional

Habilita la selección múltiple del combo (type="combo"/"comboex"). Hay que escribir el literal "true": cualquier otro valor lo deja apagado. En los otros tipos se ignora.

texto · opcional

Reposiciona el popup del helper respecto del control que lo abre. Sólo lo leen type="link" y type="media", y hay que escribir el literal "true".

BoolTrueFalse · opcional

Para type="parameter": marca el parámetro como obligatorio en el panel nativo. Hay que escribir el literal "true"; cualquier otro valor equivale a “false”.

texto · opcional

CSS inline del botón del helper de type="link"/"media", no del contenedor del campo: se concatena después de los style, colstyle e inputstyle del propio campo, así que por venir último sus reglas ganan sobre las de ellos.

texto · opcional

Tag HTML con el que se dibuja el botón del helper (por defecto a). Sólo lo lee type="link".

BoolDefaultActivo · opcional · default true

Si “false”, suprime el texto del botón del helper y deja sólo el icono. Sólo aplica a type="link" y type="media".

texto · opcional

Título del popup del helper.

texto · opcional

Título del popup, pero no es un alias universal de title: en type="link" y type="media" el motor lee sólo title y acá titulo es inerte. El único tipo que lee las dos formas es type="import", y ahí title gana si están las dos.

HelperTipo · opcional

Tipo de helper: combo | comboex | link | external | parameter | object | inline | tags | media | import. Un valor no listado no arma ningún helper y se ignora sin error, pero igual queda guardado en el campo y puede desactivarle la grabación inline — ver HelperTipo.

texto · opcional

Opción vacía del combo. Sólo se lee en <tabla_ex>, que es la forma legacy del combo y comparte este complexType con <helper>. En un <helper type="combo"> el atributo equivalente es empty.

No es booleano: si el valor no es '', 'false' ni 'true', se usa como texto del placeholder de la opción vacía — o sea que vacio="Seleccione…" funciona y es el uso interesante.

BoolTrueFalse · opcional

Se acepta por compatibilidad, pero el motor no lo lee: no hay ninguna lectura de este atributo (verificado en 2026-07). Lo que existe es una clase CSS ventint que el motor agrega por su cuenta al abrir ventanas internas — no sale de acá. Omitirlo no cambia nada.

texto · opcional

Ancho del popup del helper (px o vw). Lo leen type="link", type="media" y type="import"; en combo/external/parameter no tiene efecto.

texto · opcional

XML que alimenta el helper. Lo usan todos los tipos que construyen un contenedor (combo, comboex, external, parameter, object, tags, inline, import) y también type="link", donde es el XML que se abre en el popup. En combo/external puede omitirse si el helper declara sus propios <field> y trae un id.

Helper UI asociado a un campo. Tipos (type):

  • “combo”: dropdown alimentado por SQL (1er field = VALUE, 2do field = texto visible).
  • “comboex”: idéntico a “combo” — el motor los atiende con la misma rama.
  • “link”: botón/icono que abre otro XML como popup (consulta, ficha, fichaing).
  • “external”: ayuda que abre una tabla popup para elegir un registro.
  • “parameter”: parámetro de configuración editable desde el panel nativo de parámetros.
  • “object”: grilla/ficha embebida inline en el campo (no popup).
  • “inline”: contenedor embebido, misma rama que “object” y “tags”.
  • “tags”: campo de etiquetas múltiples, misma rama que “object”.
  • “media”: botón que abre la imagen/archivo del campo.
  • “import”: trae datos de otro XML al form.

Este complexType valida cuatro elementos distintos: <helper> y las formas legacy <tabla_ex>, <ayuda> y <ayuda_ex>. Por eso hay hijos y atributos declarados acá que sólo tienen efecto en uno de los cuatro — y por eso cada declaración aclara en qué forma y en qué type se lee. Un atributo escrito en el type equivocado se descarta sin aviso.

Las <condicion> SQL del combo NO soportan '[__campo__]' directamente — usar <actualiza> desde el form padre + <detalle> para alimentar el combo dinámicamente.

  • Va dentro de: <campo> (0..n), <field> (0..n)
  • Atributos: 24 (propios)

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

Helper UI asociado a un campo. Tipos (type):

  • “combo”: dropdown alimentado por SQL (1er field = VALUE, 2do field = texto visible).
  • “comboex”: idéntico a “combo” — el motor los atiende con la misma rama.
  • “link”: botón/icono que abre otro XML como popup (consulta, ficha, fichaing).
  • “external”: ayuda que abre una tabla popup para elegir un registro.
  • “parameter”: parámetro de configuración editable desde el panel nativo de parámetros.
  • “object”: grilla/ficha embebida inline en el campo (no popup).
  • “inline”: contenedor embebido, misma rama que “object” y “tags”.
  • “tags”: campo de etiquetas múltiples, misma rama que “object”.
  • “media”: botón que abre la imagen/archivo del campo.
  • “import”: trae datos de otro XML al form.

Este complexType valida cuatro elementos distintos: <helper> y las formas legacy <tabla_ex>, <ayuda> y <ayuda_ex>. Por eso hay hijos y atributos declarados acá que sólo tienen efecto en uno de los cuatro — y por eso cada declaración aclara en qué forma y en qué type se lee. Un atributo escrito en el type equivocado se descarta sin aviso.

Las <condicion> SQL del combo NO soportan '[__campo__]' directamente — usar <actualiza> desde el form padre + <detalle> para alimentar el combo dinámicamente.

  • Va dentro de: <campo> (0..n), <field> (0..n)
  • Atributos: 24 (propios)

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

Helper UI asociado a un campo. Tipos (type):

  • “combo”: dropdown alimentado por SQL (1er field = VALUE, 2do field = texto visible).
  • “comboex”: idéntico a “combo” — el motor los atiende con la misma rama.
  • “link”: botón/icono que abre otro XML como popup (consulta, ficha, fichaing).
  • “external”: ayuda que abre una tabla popup para elegir un registro.
  • “parameter”: parámetro de configuración editable desde el panel nativo de parámetros.
  • “object”: grilla/ficha embebida inline en el campo (no popup).
  • “inline”: contenedor embebido, misma rama que “object” y “tags”.
  • “tags”: campo de etiquetas múltiples, misma rama que “object”.
  • “media”: botón que abre la imagen/archivo del campo.
  • “import”: trae datos de otro XML al form.

Este complexType valida cuatro elementos distintos: <helper> y las formas legacy <tabla_ex>, <ayuda> y <ayuda_ex>. Por eso hay hijos y atributos declarados acá que sólo tienen efecto en uno de los cuatro — y por eso cada declaración aclara en qué forma y en qué type se lee. Un atributo escrito en el type equivocado se descarta sin aviso.

Las <condicion> SQL del combo NO soportan '[__campo__]' directamente — usar <actualiza> desde el form padre + <detalle> para alimentar el combo dinámicamente.

  • Va dentro de: <campo> (0..n), <field> (0..n)
  • Atributos: 24 (propios)

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

Lista de opciones fijas para radio/select (no dependen de SQL).

Elemento Veces Descripción
<option> 1..n Opción con valor fijo y etiqueta.
<opcion> 0..n Alias español de <option>; el motor lee las dos grafías.

No acepta atributos.

Contenedor de opciones de un campo.

Acepta los mismos elementos hijos que <options>, que es donde están documentados.

Opción fija del combo (no proviene de SQL).

texto · opcional

Sin descripción en el schema.

texto · opcional

Sin descripción en el schema.

Alias español de <option>; el motor lee las dos grafías.

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

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

Forma equivalente a <field> con la sintaxis source/target. Las dos formas registran exactamente el mismo mapeo, así que no hay diferencia funcional: <parameter source="X" target="Y"/> equivale a <field id="X">Y</field>. Se procesa después de los <field>, así que ante un source repetido en las dos formas gana este. En el repo hay 460 usos de <field> y 7 de esta forma.

OperadorCondicion · opcional

Alias español de operator.

OperadorCondicion · opcional · default =

Operador SQL aplicado al pasar el valor. Default “=”.

BoolEstricto · opcional

En vez de agregar una condición sobre el campo destino, reemplaza el valor del campo destino por el que viene del padre. Se usa cuando el hijo tiene que arrancar con un dato del padre en un campo editable, no filtrado por él.

texto · obligatorio

id del campo origen (en el XML padre).

texto · obligatorio

id del campo destino (en el XML hijo/helper).

Parámetros para helpers de tipo “parameter”. id (o xml) puede omitirse cuando se usa retorna sobre un set de fields locales.

Elemento Veces Descripción
<field> 0..n Campo parámetro pasado al XML hijo.
<campo> 0..n Alias español de <field>.

texto · opcional

Directorio del XML helper.

texto · opcional

ID del XML helper al que se le pasan los parámetros.

texto · opcional

Lista CSV de campos cuyo valor debe regresar al padre cuando el helper se cierra.

texto · opcional

Nombre del XML helper destino.

Campo que aporta la clave de la ayuda. Sólo se lee dentro de <ayuda_ex>, una de las formas legacy que comparten este complexType. En un <helper type="external"> el nombre del hijo es <key>, no éste. 35 XMLs lo usan bajo <ayuda_ex>. Si no se declara ni <clave> ni <key>, el motor toma los dos primeros campos visibles: el 1º como clave y el 2º como descripción.

No acepta atributos.

Valor por defecto del parámetro de configuración, no del combo: se lee sólo en type="parameter" y es el valor que toma el parámetro mientras nadie lo haya guardado en HTXOPTIONS. En los otros tipos de helper es inerte.

No acepta atributos.

Se acepta por compatibilidad, pero el motor no lo lee: sólo busca la forma en inglés. Para que el texto llegue al panel de parámetros hay que usar <description>.

No acepta atributos.

Descripción del parámetro, para type="parameter": es el texto explicativo que se muestra en el panel nativo de parámetros junto al valor editable. Ojo que el alias en español <descripcion> no lo lee nadie.

No acepta atributos.

Campo que aporta la clave de la ayuda, en un <helper type="external">. Es el equivalente moderno de <clave>, que sólo funciona en <ayuda_ex>. Mismo fallback: sin él se usan los dos primeros campos visibles del helper.

No acepta atributos.

Etiqueta del parámetro: se lee sólo en type="parameter" y es el nombre con el que el parámetro aparece en el panel nativo de parámetros. Si se omite, se usa el id del helper. En los otros tipos de helper es inerte.

No acepta atributos.

Campo que aporta la descripción de la ayuda en un <helper type="external">: el que se muestra al usuario, mientras <key> aporta el valor que se graba. Sin él, la descripción sale del 2º campo visible del helper. No confundirlo con los <value> de adentro de <values>, que son la lista de opciones de un parámetro.

No acepta atributos.