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>
Sección titulada «<helper>»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),<include>(0..n),<tabla>(0..n),<table>(0..n) - Atributos: 24 (propios)
Contenido
Sección titulada «Contenido»| 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… |
Atributos
Sección titulada «Atributos»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 /.
editable
Sección titulada «editable»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".
multiple
Sección titulada «multiple»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.
reposition
Sección titulada «reposition»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".
required
Sección titulada «required»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.
ventint
Sección titulada «ventint»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.
<ayuda>
Sección titulada «<ayuda>»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.
Acepta los mismos 24 atributos y los mismos elementos hijos que <helper>, que es donde están documentados.
<ayuda_ex>
Sección titulada «<ayuda_ex>»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.
Acepta los mismos 24 atributos y los mismos elementos hijos que <helper>, que es donde están documentados.
<tabla_ex>
Sección titulada «<tabla_ex>»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.
Acepta los mismos 24 atributos y los mismos elementos hijos que <helper>, que es donde están documentados.
<options>
Sección titulada «<options>»Lista de opciones fijas para radio/select (no dependen de SQL).
Contenido
Sección titulada «Contenido»| 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.
<opciones>
Sección titulada «<opciones>»Contenedor de opciones de un campo.
Acepta los mismos elementos hijos que <options>, que es donde están documentados.
<option>
Sección titulada «<option>»Opción fija del combo (no proviene de SQL).
- Va dentro de:
<ayuda>(0..n),<ayuda_ex>(0..n),<helper>(0..n),<opciones>(1..n),<options>(1..n),<tabla_ex>(0..n) - Contenido: texto libre.
- Atributos: 2 (propios)
Atributos
Sección titulada «Atributos»texto · opcional
Sin descripción en el schema.
texto · opcional
Sin descripción en el schema.
<opcion>
Sección titulada «<opcion>»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.
<parameter>
Sección titulada «<parameter>»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.
- Va dentro de:
<ayuda>(0..n),<ayuda_ex>(0..n),<helper>(0..n),<importar>(0..n),<tabla_ex>(0..n) - Contenido: texto libre.
- Atributos: 5 (propios)
Atributos
Sección titulada «Atributos»operador
Sección titulada «operador»OperadorCondicion · opcional
Alias español de operator.
operator
Sección titulada «operator»OperadorCondicion · opcional · default =
Operador SQL aplicado al pasar el valor. Default “=”.
replace
Sección titulada «replace»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).
<parametro>
Sección titulada «<parametro>»Parámetros para helpers de tipo “parameter”. id (o xml) puede omitirse cuando se usa retorna sobre un set de fields locales.
Contenido
Sección titulada «Contenido»| Elemento | Veces | Descripción |
|---|---|---|
<field> |
0..n | Campo parámetro pasado al XML hijo. |
<campo> |
0..n | Alias español de <field>. |
Atributos
Sección titulada «Atributos»texto · opcional
Directorio del XML helper.
texto · opcional
ID del XML helper al que se le pasan los parámetros.
retorna
Sección titulada «retorna»texto · opcional
Lista CSV de campos cuyo valor debe regresar al padre cuando el helper se cierra.
texto · opcional
Nombre del XML helper destino.
<clave>
Sección titulada «<clave>»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.
- Va dentro de:
<ayuda>(0..n),<ayuda_ex>(0..n),<helper>(0..n),<tabla_ex>(0..n) - Contenido: texto libre.
No acepta atributos.
<defaultValue>
Sección titulada «<defaultValue>»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.
- Va dentro de:
<ayuda>(0..n),<ayuda_ex>(0..n),<helper>(0..n),<tabla_ex>(0..n) - Contenido: texto libre.
No acepta atributos.
<descripcion>
Sección titulada «<descripcion>»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>.
- Va dentro de:
<ayuda>(0..n),<ayuda_ex>(0..n),<helper>(0..n),<tabla_ex>(0..n) - Contenido: texto libre.
No acepta atributos.
<description>
Sección titulada «<description>»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.
- Va dentro de:
<ayuda>(0..n),<ayuda_ex>(0..n),<helper>(0..n),<tabla_ex>(0..n) - Contenido: texto libre.
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.
- Va dentro de:
<ayuda>(0..n),<ayuda_ex>(0..n),<helper>(0..n),<tabla_ex>(0..n) - Contenido: texto libre.
No acepta atributos.
<label> en <ayuda>
Sección titulada «<label> en <ayuda>»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.
- Va dentro de:
<ayuda>(0..n),<ayuda_ex>(0..n),<helper>(0..n),<tabla_ex>(0..n) - Contenido: texto libre.
No acepta atributos.
<value> en <ayuda>
Sección titulada «<value> en <ayuda>»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.
- Va dentro de:
<ayuda>(0..n),<ayuda_ex>(0..n),<helper>(0..n),<tabla_ex>(0..n) - Contenido: texto libre.
No acepta atributos.