xonecode 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +167 -0
- package/dist/agent/authEnDisco.js +56 -0
- package/dist/agent/authEnDisco.js.map +1 -0
- package/dist/agent/configEnDisco.js +109 -0
- package/dist/agent/configEnDisco.js.map +1 -0
- package/dist/agent/crearProyecto.js +34 -0
- package/dist/agent/crearProyecto.js.map +1 -0
- package/dist/agent/entorno.js +124 -0
- package/dist/agent/entorno.js.map +1 -0
- package/dist/agent/guionizado.js +53 -0
- package/dist/agent/guionizado.js.map +1 -0
- package/dist/agent/instantanea.js +129 -0
- package/dist/agent/instantanea.js.map +1 -0
- package/dist/agent/interrupts.js +83 -0
- package/dist/agent/interrupts.js.map +1 -0
- package/dist/agent/mensajes.js +24 -0
- package/dist/agent/mensajes.js.map +1 -0
- package/dist/agent/modelos.js +42 -0
- package/dist/agent/modelos.js.map +1 -0
- package/dist/agent/normalizar.js +20 -0
- package/dist/agent/normalizar.js.map +1 -0
- package/dist/agent/perfiles.js +103 -0
- package/dist/agent/perfiles.js.map +1 -0
- package/dist/agent/proyecto.js +107 -0
- package/dist/agent/proyecto.js.map +1 -0
- package/dist/agent/puente.js +142 -0
- package/dist/agent/puente.js.map +1 -0
- package/dist/agent/resumenDeTool.js +48 -0
- package/dist/agent/resumenDeTool.js.map +1 -0
- package/dist/agent/skills.js +65 -0
- package/dist/agent/skills.js.map +1 -0
- package/dist/agent/textoDeTool.js +113 -0
- package/dist/agent/textoDeTool.js.map +1 -0
- package/dist/agent/turnoReal.js +173 -0
- package/dist/agent/turnoReal.js.map +1 -0
- package/dist/agent/verificador.js +65 -0
- package/dist/agent/verificador.js.map +1 -0
- package/dist/agent/xoneAgent.js +106 -0
- package/dist/agent/xoneAgent.js.map +1 -0
- package/dist/bin.js +9 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli/aprobar.js +82 -0
- package/dist/cli/aprobar.js.map +1 -0
- package/dist/cli/config.js +133 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/consola.js +346 -0
- package/dist/cli/consola.js.map +1 -0
- package/dist/cli/describe.js +53 -0
- package/dist/cli/describe.js.map +1 -0
- package/dist/cli/doctor.js +45 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/main.js +520 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/markdown.js +90 -0
- package/dist/cli/markdown.js.map +1 -0
- package/dist/cli/run.js +164 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/spinner.js +89 -0
- package/dist/cli/spinner.js.map +1 -0
- package/dist/cli/stdio.js +193 -0
- package/dist/cli/stdio.js.map +1 -0
- package/dist/cli/tema.js +40 -0
- package/dist/cli/tema.js.map +1 -0
- package/dist/cli/verify.js +62 -0
- package/dist/cli/verify.js.map +1 -0
- package/dist/core/bitacora.js +30 -0
- package/dist/core/bitacora.js.map +1 -0
- package/dist/core/config.js +236 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/contextos.js +56 -0
- package/dist/core/contextos.js.map +1 -0
- package/dist/core/deps.js +51 -0
- package/dist/core/deps.js.map +1 -0
- package/dist/core/diff.js +79 -0
- package/dist/core/diff.js.map +1 -0
- package/dist/core/esqueleto.js +366 -0
- package/dist/core/esqueleto.js.map +1 -0
- package/dist/core/events.js +2 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/modelos.js +85 -0
- package/dist/core/modelos.js.map +1 -0
- package/dist/core/notify.js +106 -0
- package/dist/core/notify.js.map +1 -0
- package/dist/core/ports.js +114 -0
- package/dist/core/ports.js.map +1 -0
- package/dist/core/turno.js +127 -0
- package/dist/core/turno.js.map +1 -0
- package/dist/vendor/hitl.js +103 -0
- package/dist/vendor/hitl.js.map +1 -0
- package/dist/vendor/skillLoaders/catalog.js +74 -0
- package/dist/vendor/skillLoaders/catalog.js.map +1 -0
- package/dist/vendor/tokenTracking.js +58 -0
- package/dist/vendor/tokenTracking.js.map +1 -0
- package/package.json +41 -0
- package/skills/xone-debugging/SKILL.md +52 -0
- package/skills/xone-debugging/references/faq.md +561 -0
- package/skills/xone-debugging/references/troubleshooting-y-glosario.md +429 -0
- package/skills/xone-development/SKILL.md +105 -0
- package/skills/xone-development/references/anti-patrones.md +94 -0
- package/skills/xone-development/references/css/atributos-por-categoria.md +509 -0
- package/skills/xone-development/references/css/buenas-practicas-y-parser.md +419 -0
- package/skills/xone-development/references/css/dinamicos-cascada-y-componentes.md +550 -0
- package/skills/xone-development/references/css/patrones-material-y-temas.md +1140 -0
- package/skills/xone-development/references/css/propiedades-y-herencia.md +885 -0
- package/skills/xone-development/references/css/selectores-unidades-colores.md +840 -0
- package/skills/xone-development/references/datos/appdata-referencia-ampliada.md +457 -0
- package/skills/xone-development/references/datos/appdata.md +611 -0
- package/skills/xone-development/references/datos/http-sqlmanager-y-crypto.md +720 -0
- package/skills/xone-development/references/datos/http.md +366 -0
- package/skills/xone-development/references/datos/oauth2-y-replica.md +156 -0
- package/skills/xone-development/references/device/biometria-imagedrawing-y-otros.md +544 -0
- package/skills/xone-development/references/device/objetos-de-dispositivo.md +583 -0
- package/skills/xone-development/references/device/systemsettings-referencia-ampliada.md +396 -0
- package/skills/xone-development/references/device/systemsettings-y-permisos.md +342 -0
- package/skills/xone-development/references/fundamentos/conceptos-clave.md +695 -0
- package/skills/xone-development/references/fundamentos/configuracion-app-xml-ini-mappings.md +668 -0
- package/skills/xone-development/references/fundamentos/errores-comunes.md +312 -0
- package/skills/xone-development/references/fundamentos/navegacion-convenciones-y-primer-proyecto.md +576 -0
- package/skills/xone-development/references/fundamentos/plataforma-y-anatomia-de-proyecto.md +387 -0
- package/skills/xone-development/references/indice-completo.md +77 -0
- package/skills/xone-development/references/javascript/coleccion-error-y-usuario.md +260 -0
- package/skills/xone-development/references/javascript/debugging-y-best-practices.md +245 -0
- package/skills/xone-development/references/javascript/metodos-de-los-controles.md +556 -0
- package/skills/xone-development/references/javascript/metodos-nativos-de-la-vista.md +114 -0
- package/skills/xone-development/references/javascript/motor-js-y-contexto-de-ejecucion.md +319 -0
- package/skills/xone-development/references/javascript/objeto-ai-llm-en-dispositivo.md +358 -0
- package/skills/xone-development/references/javascript/objetos-creables-a-m.md +527 -0
- package/skills/xone-development/references/javascript/objetos-creables-n-z.md +385 -0
- package/skills/xone-development/references/javascript/patrones-criticos-seguridad-y-rendimiento.md +595 -0
- package/skills/xone-development/references/javascript/patrones-de-navegacion-datos-y-codigo.md +751 -0
- package/skills/xone-development/references/javascript/patrones-de-ui-voz-integracion-y-seguridad.md +701 -0
- package/skills/xone-development/references/javascript/plantillas-y-funciones-utilitarias.md +647 -0
- package/skills/xone-development/references/javascript/self-y-dataobject.md +449 -0
- package/skills/xone-development/references/javascript/singletons-globales.md +361 -0
- package/skills/xone-development/references/javascript/ui-catalogo-de-metodos.md +464 -0
- package/skills/xone-development/references/javascript/ui-gps-camara-y-multimedia.md +506 -0
- package/skills/xone-development/references/javascript/ui-navegacion-mensajes-y-vista.md +422 -0
- package/skills/xone-development/references/resumen-js-datos-dispositivo.md +80 -0
- package/skills/xone-development/references/resumen-xml-y-css.md +74 -0
- package/skills/xone-development/references/tipos-de-prop.md +28 -0
- package/skills/xone-development/references/xml-ui/asfilter-visibilidad-eventos-y-macros.md +576 -0
- package/skills/xone-development/references/xml-ui/atributos-coll-group-frame.md +235 -0
- package/skills/xone-development/references/xml-ui/atributos-method-macro-script-event-app.md +244 -0
- package/skills/xone-development/references/xml-ui/atributos-prop.md +439 -0
- package/skills/xone-development/references/xml-ui/contents-y-macros.md +392 -0
- package/skills/xone-development/references/xml-ui/errores-comunes-xml.md +245 -0
- package/skills/xone-development/references/xml-ui/estructura-y-nodo-coll.md +326 -0
- package/skills/xone-development/references/xml-ui/eventos-ciclo-de-vida-e-interaccion.md +704 -0
- package/skills/xone-development/references/xml-ui/eventos-sistema-login-y-personalizados.md +944 -0
- package/skills/xone-development/references/xml-ui/layouts-herencia-y-buenas-practicas.md +618 -0
- package/skills/xone-development/references/xml-ui/mapas.md +685 -0
- package/skills/xone-development/references/xml-ui/mappings-y-colecciones-separadas.md +148 -0
- package/skills/xone-development/references/xml-ui/nodos-group-y-frame.md +666 -0
- package/skills/xone-development/references/xml-ui/patrones-de-pantalla.md +643 -0
- package/skills/xone-development/references/xml-ui/prop-atributos-y-condiciones.md +298 -0
- package/skills/xone-development/references/xml-ui/prop-tipos-basicos.md +493 -0
- package/skills/xone-development/references/xml-ui/prop-tipos-combos-y-controles.md +664 -0
- package/skills/xone-development/references/xml-ui/prop-tipos-listas-y-mapas.md +412 -0
- package/skills/xone-plan-builder/SKILL.md +183 -0
- package/skills/xone-plan-builder/agents/openai.yaml +5 -0
- package/skills/xone-plan-builder/references/TASKS-FORMAT.md +132 -0
- package/skills/xone-project-generator/SKILL.md +111 -0
- package/skills/xone-project-generator/references/canonical-sizes.md +292 -0
- package/skills/xone-project-generator/references/colecciones-base.md +16 -0
- package/skills/xone-project-generator/references/convenciones-de-nombres.md +16 -0
- package/skills/xone-project-generator/references/ejemplos-por-sector-y-prohibiciones.md +140 -0
- package/skills/xone-project-generator/references/fase-3-estilos-css.md +597 -0
- package/skills/xone-project-generator/references/fase-6-colecciones.md +762 -0
- package/skills/xone-project-generator/references/fase-7-asfilter-e-integraciones.md +142 -0
- package/skills/xone-project-generator/references/fase-7-entidades-y-estructura-de-pantalla.md +494 -0
- package/skills/xone-project-generator/references/fase-7-plantilla-consola.md +477 -0
- package/skills/xone-project-generator/references/fase-7-plantillas-de-pantalla.md +302 -0
- package/skills/xone-project-generator/references/fase-7-viewmodes-graficos-y-listas.md +681 -0
- package/skills/xone-project-generator/references/fase-7-viewmodes-mapa-y-calendario.md +479 -0
- package/skills/xone-project-generator/references/fases-0-2-analisis-y-modelo-de-datos.md +350 -0
- package/skills/xone-project-generator/references/fases-10-12-readmes-y-validacion.md +194 -0
- package/skills/xone-project-generator/references/fases-4-5-estructura-y-configuracion.md +587 -0
- package/skills/xone-project-generator/references/fases-8-9-eventos-y-javascript.md +861 -0
- package/skills/xone-project-generator/references/flujo-de-generacion.md +67 -0
- package/skills/xone-project-generator/references/plantillas-estandar.md +98 -0
- package/skills/xone-project-generator/references/tamanos-canonicos.md +49 -0
- package/skills/xone-review/SKILL.md +189 -0
- package/skills/xone-spec-builder/SKILL.md +235 -0
- package/skills/xone-spec-builder/agents/openai.yaml +5 -0
- package/skills/xone-spec-builder/references/ADR-FORMAT.md +55 -0
- package/skills/xone-spec-builder/references/CONTEXT-FORMAT.md +42 -0
- package/skills/xone-spec-builder/references/PLAN-FORMAT.md +120 -0
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
# XOne XML — Referencia de atributos: coll, group y frame
|
|
2
|
+
|
|
3
|
+
> Fuente: `xone/v2/xone-help-docs/topics/07-xml-attributes-reference.md` §1–§3. Referencia de la skill; el índice está en [../../SKILL.md](../../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Contenido: §1 todos los atributos de coll · §2 atributos de group · §3 atributos de frame, con tipo, valores permitidos y valor por defecto
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Nodo `<coll>` — Coleccion/Pantalla
|
|
10
|
+
|
|
11
|
+
Define una tabla de datos (mapeada a SQL) o una pantalla de UI. Es el nodo raiz de cada fichero `.xne`.
|
|
12
|
+
|
|
13
|
+
> **REGLAS GENERALES DE NAMING (aplican a coll/group/frame/prop):**
|
|
14
|
+
>
|
|
15
|
+
> - **`name` es case-sensitive.** `name="MiNombre"` y `name="minombre"` son **distintos**. Aplica también a referencias cruzadas: `self.X`, `mapcol`, `linkedto`, `inherits`, `<field name="...">`, `getControl("...")`, `ui.openEditView("...")`, `appData.getCollection("...")`.
|
|
16
|
+
> - **El `id` de `<group>` es obligatorio y único en la coll.** Dos `<group id="1">` en la misma coll producen comportamiento indefinido.
|
|
17
|
+
> - **Unicidad de `name` en la coll.** No puede repetirse el `name` de ningun nodo dentro de una `<coll>`, aunque estén en grupos/frames distintos.
|
|
18
|
+
|
|
19
|
+
### 1.1 Atributos de identificación y datos
|
|
20
|
+
|
|
21
|
+
| Atributo | Tipo | Obligatorio | Default | Descripción |
|
|
22
|
+
|---|---|---|---|---|
|
|
23
|
+
| `name` | string | **Sí** | — | Identificador único de la colección. Usar PascalCase. **Case-sensitive.** |
|
|
24
|
+
| `title` | string | No | `name` | Título visible en la UI. |
|
|
25
|
+
| `sql` | string | No | — | Sentencia SQL `SELECT`. Usar `##PREF##` para el prefijo de tabla. |
|
|
26
|
+
| `objname` | string | No | — | Nombre de la tabla para operaciones de lectura. |
|
|
27
|
+
| `updateobj` | string | No | — | Nombre de la tabla para INSERT/UPDATE/DELETE. |
|
|
28
|
+
| `progid` | string | No | — | Identificador del objeto de negocio. **Opcional**: sin él la coll es un objeto de datos genérico (≡ `ASData.CASBasicDataObj`). Solo casos especiales: `ASGestion.CASEmpresa` (Empresas), `ASGestion.CASUser` (Usuarios). |
|
|
29
|
+
| `connection` | string | No | conexión por defecto | Nombre de la conexión en `<connection>`. |
|
|
30
|
+
| `filter` | string | No | `""` | Filtro SQL adicional (cláusula WHERE). |
|
|
31
|
+
| `sort` | string | No | `""` | Orden de datos (cláusula ORDER BY). |
|
|
32
|
+
| `loadall` | bool | No | `false` | Carga todos los registros al inicializar. |
|
|
33
|
+
| `volatile` | bool | No | `false` | No cachea objetos; siempre relee de BD. |
|
|
34
|
+
| `stringkey` | bool | No | `false` | La PK es de tipo string. |
|
|
35
|
+
| `threshold` | int | No | `200` | Tamaño máximo de la caché LRU de objetos. |
|
|
36
|
+
| `userawsql` | bool | No | `false` | No reescribe el SQL (lo usa tal cual). |
|
|
37
|
+
| `idfieldname` | string | No | `ID` | Nombre del campo PK cuando no se llama `ID`. |
|
|
38
|
+
| `dependent` | bool | No | `false` | Indica si la colección depende de una colección padre. |
|
|
39
|
+
| `check-owner` | bool | No | `false` | Verifica que los registros pertenezcan al usuario/empresa actual. |
|
|
40
|
+
| `autorefresh` | bool | No | `false` | Refresca datos automáticamente al regresar de otra ventana. |
|
|
41
|
+
| `inherits` | string | No | `""` | Nombre de coll de la que se hereda estructura visual. |
|
|
42
|
+
|
|
43
|
+
### 1.2 Atributos de UI/celda en listas
|
|
44
|
+
|
|
45
|
+
| Atributo | Tipo | Default | Descripción |
|
|
46
|
+
|---|---|---|---|
|
|
47
|
+
| `cell-width` | medida | auto | Ancho fijo de celda en grid. |
|
|
48
|
+
| `cell-height` | medida | auto | Alto fijo de celda en grid. |
|
|
49
|
+
| `cell-bgcolor` | color | heredado | Color de fondo de celda. |
|
|
50
|
+
| `cell-bgcolor_out` | color | heredado | Color de fondo fuera del viewport. |
|
|
51
|
+
| `cell-forecolor` | color | heredado | Color de texto de celda. |
|
|
52
|
+
| `cell-forecolor_out` | color | heredado | Color texto fuera del viewport. |
|
|
53
|
+
| `cell-border-color` | color | — | Color del borde de celda. |
|
|
54
|
+
| `cell-border-width` | medida | `0` | Grosor del borde de celda. |
|
|
55
|
+
| `cell-even-color` | color | — | Color para filas pares (zebra). |
|
|
56
|
+
| `cell-odd-color` | color | — | Color para filas impares (zebra). |
|
|
57
|
+
| `cell-selected-bgcolor` | color | — | Fondo de celda seleccionada. |
|
|
58
|
+
| `cell-selected-forecolor` | color | — | Texto de celda seleccionada. |
|
|
59
|
+
| `cell-selected-border-color` | color | — | Borde de celda seleccionada. |
|
|
60
|
+
| `cell-selected-border-width` | medida | — | Grosor borde celda seleccionada. |
|
|
61
|
+
| `editinline-rows` | int | `1` | Filas visibles en edición inline. |
|
|
62
|
+
| `no-data-text` | string | `""` | Texto cuando no hay registros. |
|
|
63
|
+
| `start-from-bottom` | bool | `false` | Scroll anclado al final de la lista (chats). Declarable en la coll o en el content (`type="Z"`); el del content tiene preferencia. |
|
|
64
|
+
| `divider-height` | int | — | Alto (grosor) del separador entre ítems de la lista (`type="Z"`). En listas expandibles el default es `4`. |
|
|
65
|
+
| `divider-color` | color | — | Color del separador entre ítems de la lista (`type="Z"`). |
|
|
66
|
+
| `divider-background` | string | — | Imagen (ruta de recurso) usada como separador entre ítems; tiene prioridad sobre `divider-color`. |
|
|
67
|
+
| `page-limit-off` | bool | `false` | Desactiva la paginación automática. |
|
|
68
|
+
|
|
69
|
+
### 1.3 Atributos de pantalla y comportamiento
|
|
70
|
+
|
|
71
|
+
| Atributo | Tipo | Default | Descripción |
|
|
72
|
+
|---|---|---|---|
|
|
73
|
+
| `special` | bool | `false` | Coleccion de pantalla pura (sin datos). |
|
|
74
|
+
| `notab` | bool | `false` | No muestra pestanas aunque haya varios grupos. |
|
|
75
|
+
| `show-toolbar` | bool | `true` | Muestra la toolbar. |
|
|
76
|
+
| `fullscreen` | bool | `false` | Pantalla a fullscreen. |
|
|
77
|
+
| `secure-window` | bool | `false` | Bloquea capturas de pantalla del sistema. |
|
|
78
|
+
| `disable-keyguard` | bool | `false` | Desbloquea el teclado al mostrar la pantalla. |
|
|
79
|
+
| `keep-screen-on` | bool | `false` | Mantiene la pantalla encendida mientras esta visible. |
|
|
80
|
+
| `ignore-safe-area` | bool | `false` | Ignora la safe-area del sistema (notch, barra de navegación). |
|
|
81
|
+
| `load-imgbk` | bool | `false` | Carga la imagen de fondo durante la carga inicial. |
|
|
82
|
+
| `load-wait` | bool | `true` | Muestra el dialogo de espera durante la carga. |
|
|
83
|
+
| `show-async` | bool | `false` | Muestra la pantalla aunque aún estén cargando datos. |
|
|
84
|
+
| `fixed-group` | int | `-1` | ID de grupo siempre visible (header fijo). |
|
|
85
|
+
| `tab-height` | medida | auto | Alto de la barra de pestanas. |
|
|
86
|
+
| `tab-orientation` | enum | `top` | `top` o `bottom`. Posición de la barra de pestanas. |
|
|
87
|
+
| `toolbar-bgcolor` | color | — | Fondo de la toolbar. |
|
|
88
|
+
| `toolbar-forecolor` | color | — | Texto de la toolbar. |
|
|
89
|
+
| `window-keyboard-behaviour` | enum | `adjustResize` | Modo del teclado software: `adjustResize`, `adjustPan`, `adjustNothing`. |
|
|
90
|
+
| `screen-orientation` | enum | `sensor` | `portrait`, `landscape`, `reversePortrait`, `reverseLandscape`, `sensorPortrait`, `sensorLandscape`, `sensor`. |
|
|
91
|
+
| `resolution-width` | int | auto | Ancho lógico de diseño (el contenido se escala a este ancho). |
|
|
92
|
+
| `resolution-height` | int | auto | Alto lógico de diseño. |
|
|
93
|
+
| `remote-mapcoll` | string | `""` | Coleccion remota para uso con mapas. |
|
|
94
|
+
| `login-coll` | string | `""` | Marca esta coll como pantalla de login. |
|
|
95
|
+
| `logoff-coll` | string | `""` | Marca esta coll como pantalla de logoff. |
|
|
96
|
+
| `readonly` | bool | `false` | Toda la colección es de **solo lectura a nivel de persistencia**: ni INSERT ni UPDATE en BD. Útil para colls que solo muestran datos sin permitir grabar. No tiene efecto sobre la UI de los controles individuales (esa se controla con `locked` / `disableedit` en cada `<prop>`). |
|
|
97
|
+
| `class` | string | `""` | Clase CSS aplicada a la coleccion. |
|
|
98
|
+
|
|
99
|
+
### 1.4 Nodos especiales hijos de `<coll>`
|
|
100
|
+
|
|
101
|
+
| Nodo hijo | Descripción |
|
|
102
|
+
|---|---|
|
|
103
|
+
| `<create>` | Script ejecutado una sola vez al crear el objeto (primera apertura). |
|
|
104
|
+
| `<before-edit>` | Script al abrir para edición. **Usar para inicializar la pantalla.** |
|
|
105
|
+
| `<after-edit>` | Script tras entrar en modo edición. |
|
|
106
|
+
| `<load>` | Se dispara **por cada DataObject** al cargarse desde la BD (startBrowse/loadAll/`<contents>`/cargas individuales). **NO es evento de pantalla** y **NO recomendado** por impacto en rendimiento. |
|
|
107
|
+
| `<onchange>` | Script al cambiar el valor de un campo (necesita `<field name="CAMPO">`). |
|
|
108
|
+
| `<selecteditem>` | Script al pulsar un item de lista. |
|
|
109
|
+
| `<auto-selecteditem>` | Selecciona automáticamente un item al cargar. |
|
|
110
|
+
| `<onlongpressitem>` | Script al hacer long-press sobre un item. |
|
|
111
|
+
| `<onback>` | Script al pulsar el botón atrás. |
|
|
112
|
+
| `<macro>` | Declara una macro de coleccion (ver sección 6). |
|
|
113
|
+
| `<contents>` | Coleccion anidada embebida. |
|
|
114
|
+
| `<permissions>` | Permisos del sistema requeridos. |
|
|
115
|
+
| `<platform>` | Override de atributos por plataforma (ver sección 10). |
|
|
116
|
+
|
|
117
|
+
```xml
|
|
118
|
+
<coll name="MiPantalla" title="Mi Pantalla" special="true" notab="true"
|
|
119
|
+
show-toolbar="false" keep-screen-on="true" screen-orientation="portrait">
|
|
120
|
+
<before-edit refresh="false" show-wait-dialog="false">
|
|
121
|
+
<action name="runscript">
|
|
122
|
+
<script language="javascript">inicializar();</script>
|
|
123
|
+
</action>
|
|
124
|
+
</before-edit>
|
|
125
|
+
<group name="grpMain" id="1">
|
|
126
|
+
<!-- ... -->
|
|
127
|
+
</group>
|
|
128
|
+
</coll>
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 2. Nodo `<group>` — Grupo
|
|
134
|
+
|
|
135
|
+
Agrupa propiedades en una pestana o sección lógica dentro de una coleccion.
|
|
136
|
+
|
|
137
|
+
| Atributo | Tipo | Obligatorio | Default | Descripción |
|
|
138
|
+
|---|---|---|---|---|
|
|
139
|
+
| `name` | string | **Si** | — | Nombre único del grupo dentro de la coll. |
|
|
140
|
+
| `id` | int/string | **Si** | — | Identificador numérico **único dentro de la coll**. Si dos `<group>` comparten `id` en la misma coll el comportamiento es indefinido. Convencion: `1, 2, ...` normales; `999` HEADER fijo, `0` FOOTER fijo. |
|
|
141
|
+
| `title` | string | No | `id` | Título visible de la pestana. |
|
|
142
|
+
| `visible` | int (mask) | No | `-1` | Mascara binaria de visibilidad (misma lógica que `<prop>`). |
|
|
143
|
+
| `disableedit` | formula | No | `""` | Si la fórmula es verdadera, todos los controles del grupo quedan bloqueados para edición en la **UI** (equivalente a aplicar `locked="true"` a todos los `<prop>` del grupo). No afecta a la persistencia. |
|
|
144
|
+
| `disablevisible` | formula | No | `""` | Si la formula es verdadera, el grupo se oculta. |
|
|
145
|
+
| `fixed` | bool | No | `false` | Grupo fijo: no scrollea con el contenido. |
|
|
146
|
+
| `cache-groups` | bool | No | `false` | Cachea el contenido renderizado del grupo para mejorar rendimiento. |
|
|
147
|
+
| `drawer-orientation` | enum | No | `left` | `left` o `right`. Lado por el que aparece el drawer lateral. |
|
|
148
|
+
| `tab-theme` | string | No | tema actual | Tema visual de las pestanas. |
|
|
149
|
+
| `tab-width` | medida | No | auto | Ancho de cada pestana. |
|
|
150
|
+
| `group-theme` | string | No | tema actual | Tema visual del grupo. |
|
|
151
|
+
| `group-swipe` | bool | No | `true` | Permite cambiar de grupo deslizando horizontalmente. |
|
|
152
|
+
| `page-limit-off` | bool | No | `false` | Desactiva el limite de paginación visual del grupo. |
|
|
153
|
+
| `page-margin` | medida | No | `10dp` | Margen entre páginas al paginar. |
|
|
154
|
+
| `float-over-drawer` | bool | No | `false` | Los elementos flotantes se muestran sobre el drawer. |
|
|
155
|
+
| `bgcolor` | color | No | heredado | Color de fondo del grupo. |
|
|
156
|
+
| `forecolor` / `fgcolor` | color | No | heredado | Color de texto del grupo. |
|
|
157
|
+
| `class` | string | No | `""` | Clase CSS. |
|
|
158
|
+
|
|
159
|
+
```xml
|
|
160
|
+
<group name="grpPrincipal" id="1" group-swipe="true" tab-orientation="bottom">
|
|
161
|
+
<!-- frames y props aquí -->
|
|
162
|
+
</group>
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## 3. Nodo `<frame>` — Frame/Contenedor
|
|
168
|
+
|
|
169
|
+
Contenedor visual dentro de un grupo. Puede anidarse.
|
|
170
|
+
|
|
171
|
+
### 3.1 Identidad y posicionamiento
|
|
172
|
+
|
|
173
|
+
| Atributo | Tipo | Obligatorio | Default | Descripción |
|
|
174
|
+
|---|---|---|---|---|
|
|
175
|
+
| `name` | string | **Si** | — | Nombre único del frame dentro de la coll. |
|
|
176
|
+
| `group` | int | **Si** | — | ID del grupo al que pertenece. |
|
|
177
|
+
| `frame` | string | No | `""` | Nombre del frame padre (anidado). |
|
|
178
|
+
| `title` | string | No | `""` | Título mostrado en la cabecera del frame (si aplica). |
|
|
179
|
+
| `floating` | bool | No | `false` | Posicionamiento absoluto (saca el frame del flujo normal). |
|
|
180
|
+
| `top` / `left` / `right` / `bottom` | medida | No | — | Posición absoluta. Solo con `floating="true"`. |
|
|
181
|
+
| `width` / `height` | medida | No | auto | Tamaño explicito. `-1` = ocupar todo el espacio restante. `-2` = igual que `-1` pero con scroll. |
|
|
182
|
+
| `min-width` / `max-width` / `min-height` / `max-height` | medida | No | — | Restricciones de tamaño. |
|
|
183
|
+
| `newline` | bool | No | `true` | Salto de linea antes del frame. |
|
|
184
|
+
| `zorder` | int | No | `0` | Orden Z (profundidad) del frame. |
|
|
185
|
+
|
|
186
|
+
### 3.2 Comportamiento y scroll
|
|
187
|
+
|
|
188
|
+
| Atributo | Tipo | Default | Descripción |
|
|
189
|
+
|---|---|---|---|
|
|
190
|
+
| `scroll` | bool | `false` | Activa scroll interno en el frame. |
|
|
191
|
+
| `modal` | bool | `false` | Frame modal (bloquea interaccion con el resto). |
|
|
192
|
+
| `disableedit` | formula | `""` | Si verdadero, deshabilita el frame y todos sus hijos. |
|
|
193
|
+
| `disablevisible` | formula | `""` | Si verdadero, oculta el frame. |
|
|
194
|
+
| `ignore-touch-on-transparent-area` | bool | `false` | Los toques sobre áreas transparentes pasan al elemento del fondo. |
|
|
195
|
+
| `blend-bgcolor-with-image` | bool | `false` | Mezcla el color de fondo con la imagen de fondo. |
|
|
196
|
+
|
|
197
|
+
### 3.3 Drag & Drop
|
|
198
|
+
|
|
199
|
+
| Atributo | Tipo | Default | Descripción |
|
|
200
|
+
|---|---|---|---|
|
|
201
|
+
| `drag-enable` | bool | `false` | El frame es arrastrable. |
|
|
202
|
+
| `drag-area` | string | `""` | Nombre del hijo que actua como manija de arrastre. |
|
|
203
|
+
| `drag-opaque` | bool | `false` | El frame es opaco durante el arrastre. |
|
|
204
|
+
| `drop-target` | bool | `false` | Este frame acepta elementos soltados (drop). |
|
|
205
|
+
| `dropcoll` | string | `""` | Coleccion destino al soltar un elemento. |
|
|
206
|
+
| `notify-only-when-dropped` | bool | `false` | Solo dispara el evento al soltar (no durante el arrastre). |
|
|
207
|
+
|
|
208
|
+
### 3.4 Apariencia
|
|
209
|
+
|
|
210
|
+
| Atributo | Tipo | Default | Descripción |
|
|
211
|
+
|---|---|---|---|
|
|
212
|
+
| `bgcolor` | color | heredado | Color de fondo del frame. |
|
|
213
|
+
| `forecolor` | color | heredado | Color de texto del frame. |
|
|
214
|
+
| `border` | int (mask) | `0` | Bordes activos: top=1, right=2, bottom=4, left=8. Sumar para combinar. |
|
|
215
|
+
| `border-color` | color | — | Color del borde. |
|
|
216
|
+
| `border-width` | medida | `0` | Grosor del borde. |
|
|
217
|
+
| `border-corner-radius` | medida | `0` | Radio de esquinas redondeadas. |
|
|
218
|
+
| `tmargin` / `bmargin` / `lmargin` / `rmargin` | medida | `0` | Margenes externos. |
|
|
219
|
+
| `tpadding` / `bpadding` / `lpadding` / `rpadding` | medida | `0` | Padding interno. |
|
|
220
|
+
| `class` | string | `""` | Clase CSS. |
|
|
221
|
+
| `imgbk` | string | `""` | Imagen de fondo del frame. |
|
|
222
|
+
|
|
223
|
+
```xml
|
|
224
|
+
<frame name="frmHeader" group="1" width="100%" height="140p"
|
|
225
|
+
bgcolor="#1565C0" lpadding="15p" rpadding="15p">
|
|
226
|
+
<!-- props aquí -->
|
|
227
|
+
</frame>
|
|
228
|
+
|
|
229
|
+
<!-- Frame flotante (overlay) -->
|
|
230
|
+
<frame name="frmOverlay" group="1" floating="true"
|
|
231
|
+
top="50p" left="10%" width="80%" height="200p"
|
|
232
|
+
bgcolor="#FFFFFF" border-corner-radius="12" zorder="10">
|
|
233
|
+
</frame>
|
|
234
|
+
```
|
|
235
|
+
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
# XOne XML — Referencia de atributos: method, macro, script, event, platform, tipos y app
|
|
2
|
+
|
|
3
|
+
> Fuente: `xone/v2/xone-help-docs/topics/07-xml-attributes-reference.md` §5–§11. Referencia de la skill; el índice está en [../../SKILL.md](../../SKILL.md).
|
|
4
|
+
|
|
5
|
+
Contenido: §5 method · §6 macro · §7 script · §8 eventos disponibles · §9 platform (override por plataforma) · §10 tipos de propiedad · §11 atributos globales de la app
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 5. Nodo `<method>` — Método ejecutable
|
|
10
|
+
|
|
11
|
+
Define un método reutilizable que puede ser invocado desde scripts via `self.executeNode("nombre")`.
|
|
12
|
+
|
|
13
|
+
| Atributo | Tipo | Obligatorio | Default | Descripción |
|
|
14
|
+
|---|---|---|---|---|
|
|
15
|
+
| `name` | string | **Si** | — | Nombre único del método dentro de la coll. |
|
|
16
|
+
| `language` | enum | No | lenguaje por defecto | `javascript` (recomendado). `vbscript` esta descontinuado. |
|
|
17
|
+
| `params` | string | No | `""` | Parámetros separados por coma. |
|
|
18
|
+
| `return-type` | string | No | `""` | Tipo de retorno. |
|
|
19
|
+
| `execute-async` | bool | No | `false` | Ejecuta de forma asíncrona. |
|
|
20
|
+
| `disableedit` | formula | No | `""` | Si verdadero, el método no puede ejecutarse. |
|
|
21
|
+
|
|
22
|
+
Requiere nodo hijo `<script language="javascript">` con el código.
|
|
23
|
+
|
|
24
|
+
```xml
|
|
25
|
+
<method name="calcularTotal" language="javascript">
|
|
26
|
+
<script language="javascript">
|
|
27
|
+
var base = self.getValue("IMPORTE_BASE");
|
|
28
|
+
var iva = base * 0.21;
|
|
29
|
+
self.setValue("IVA", iva);
|
|
30
|
+
self.setValue("TOTAL", base + iva);
|
|
31
|
+
</script>
|
|
32
|
+
</method>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
> Llamada desde otro script: `self.executeNode("calcularTotal");`
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 6. Nodo `<macro>` — Macro de coleccion
|
|
40
|
+
|
|
41
|
+
Variable de tipo string con ambito de la coleccion, usable en SQL y filtros mediante la sintaxis `##NOMBRE##`.
|
|
42
|
+
|
|
43
|
+
| Atributo | Tipo | Obligatorio | Default | Descripción |
|
|
44
|
+
|---|---|---|---|---|
|
|
45
|
+
| `name` | string | **Si** | — | Nombre de la macro. Usar formato `##NOMBRE##`. |
|
|
46
|
+
| `value` | string | No | `""` | Valor inicial de la macro. |
|
|
47
|
+
| `default` | bool | No | `false` | Si `true`, se usa como valor por defecto. |
|
|
48
|
+
|
|
49
|
+
**Reglas críticas:**
|
|
50
|
+
- El nodo `<macro>` se declara como **hijo directo de `<coll>`**, al mismo nivel que los `<group>`.
|
|
51
|
+
- Sin declaración del nodo, `setMacro("##X##", valor)` no tiene efecto en el SQL.
|
|
52
|
+
- Para leer/escribir desde JS: `selfDataColl.getMacro("##X##")` / `selfDataColl.setMacro("##X##", valor)`.
|
|
53
|
+
- Para macros globales (toda la app): `appData.getGlobalMacro` / `appData.setGlobalMacro`.
|
|
54
|
+
|
|
55
|
+
```xml
|
|
56
|
+
<coll name="Pedidos" sql="SELECT * FROM ##PREF##Pedidos WHERE estado = ##FILTRO_ESTADO##">
|
|
57
|
+
<macro name="##FILTRO_ESTADO##" value="'pendiente'" default="true" />
|
|
58
|
+
<group name="grp1" id="1">
|
|
59
|
+
<!-- ... -->
|
|
60
|
+
</group>
|
|
61
|
+
</coll>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 7. Nodo `<script>` — Script
|
|
67
|
+
|
|
68
|
+
Nodo que contiene código JavaScript. Puede ser hijo de eventos, métodos o usarse inline.
|
|
69
|
+
|
|
70
|
+
| Atributo | Tipo | Obligatorio | Default | Descripción |
|
|
71
|
+
|---|---|---|---|---|
|
|
72
|
+
| `name` | string | No | `""` | Identificador del script. |
|
|
73
|
+
| `language` | enum | No | lenguaje por defecto | `javascript` (recomendado). No usar `vbscript`. |
|
|
74
|
+
| `type` | string | No | `text/javascript` | MIME type alternativo. |
|
|
75
|
+
| `src` | string | No | `""` | URL o ruta a fichero externo. |
|
|
76
|
+
| `ext-file` | string | No | `""` | Fichero externo relativo al proyecto. |
|
|
77
|
+
|
|
78
|
+
**Escape XML del JS embebido.** Para JS no trivial, **forma preferida**: declarar la función en un fichero `.js` externo (`functions.js` u otro `<include>`-ado) y llamarla desde el `.xne` con `miFuncion();` — así el JS se escribe normal y el XML solo invoca. Para snippets cortos inline, hay dos formas válidas: (a) entidades XML dentro del JS (`&` → `&`, `<` → `<`, `>` → `>`), o (b) envolver el bloque en `<![CDATA[…]]>` (solo válido dentro de nodos `<script>`; NO dentro de atributos XML como `onclick="…"`).
|
|
79
|
+
|
|
80
|
+
(fence sin lenguaje para que las entidades se rendericen literales)
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
<!-- OPCIÓN A: entidades XML -->
|
|
84
|
+
<script language="javascript">
|
|
85
|
+
if (a > 0 && b < 10) {
|
|
86
|
+
self.setValue("RESULTADO", a + b);
|
|
87
|
+
}
|
|
88
|
+
</script>
|
|
89
|
+
|
|
90
|
+
<!-- OPCIÓN B: CDATA (también válido dentro de <script>) -->
|
|
91
|
+
<script language="javascript"><![CDATA[
|
|
92
|
+
if (a > 0 && b < 10) {
|
|
93
|
+
self.setValue("RESULTADO", a + b);
|
|
94
|
+
}
|
|
95
|
+
]]></script>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## 8. Nodo `<event>` — Eventos disponibles
|
|
101
|
+
|
|
102
|
+
| Evento | Aplicable a | Cuando dispara |
|
|
103
|
+
|---|---|---|
|
|
104
|
+
| `<create>` | coll | Una sola vez al crear el objeto (primera apertura). |
|
|
105
|
+
| `<before-edit>` | coll | Al abrir para edición. **Usar para inicializar pantalla.** |
|
|
106
|
+
| `<after-edit>` | coll | Después de entrar en modo edición. |
|
|
107
|
+
| `<load>` | coll | Se dispara **por cada DataObject** al cargarse desde la BD (startBrowse/loadAll/`<contents>`/cargas individuales). **NO es evento de pantalla** y **NO recomendado** por impacto en rendimiento. |
|
|
108
|
+
| `<onchange>` + `<field name="X">` | coll, prop | Al cambiar el valor del campo indicado. |
|
|
109
|
+
| `<selecteditem>` | coll | Al seleccionar un item en lista. |
|
|
110
|
+
| `<auto-selecteditem>` | coll | Selección automática al cargar. |
|
|
111
|
+
| `<onlongpressitem>` | coll | Pulsacion larga sobre un item. |
|
|
112
|
+
| `<onback>` | coll | Al pulsar el botón atrás. |
|
|
113
|
+
| `<onfocus>` | prop | Al recibir foco. |
|
|
114
|
+
| `<delete>` (con `<rule>` hijos) | coll | Define **reglas de borrado** que se evaluan antes de eliminar un objeto. No es un evento "antes/después"; es un bloque de reglas (`<rule>` con condiciones SQL/script). |
|
|
115
|
+
| `<onlogon>` / `<login-ok>` / `<login-fail>` | coll de login | Flujo de autenticación. |
|
|
116
|
+
| `<onlogoff>` | coll | Al cerrar sesión. |
|
|
117
|
+
| `<onpushreceived>` | coll Empresas | **Exclusivo de la coll `Empresas`** (`ASGestion.CASEmpresa`). Al recibir una notificación push. |
|
|
118
|
+
| `<maintenance>` | coll Empresas | **Exclusivo de la coll `Empresas`.** Tarea de mantenimiento periódico. |
|
|
119
|
+
| `<sys-message>` | coll Empresas | **Exclusivo de la coll `Empresas`.** Mensaje de sistema (códigos 1000-1003, ver tópico 05 sección 5D). |
|
|
120
|
+
| `<nodoCustom>` | coll | Nodo invocable con `self.executeNode("nodoCustom")`. |
|
|
121
|
+
|
|
122
|
+
> **Nota:** `onclick` se declara **solo como atributo** del nodo `<prop>`, **nunca como nodo hijo** `<onclick>`. Los siguientes nombres **NO existen en ningún sitio** (ni nodo ni atributo): `onlostfocus`, `onblur`, `onsave`, `oncreate`, `oninit`. Hay además nombres que **SÍ existen como atributo de evento en `<prop>`** pero NO como nodo hijo de `<coll>`: `ontouch`, `onlongpress`, `ontextchanged`, `onfocuschanged`, `oneditoraction`, `onscroll`, `onkeydown`, `onswipe`, `oncodescanned`, `oncheckedchange`, etc. Casos específicos: `ondismiss` (atributo de `<prop>` con `behavior="swipe-dismiss"`), `beforesave`/`aftersave` (atributos de `<executeNode>`).
|
|
123
|
+
>
|
|
124
|
+
> **Caso especial — `<button>`:** existe como **alias legacy** de `<prop type="B">`. El motor lo trata como propiedad sintética con `type="B"`. **Forma canónica recomendada hoy:** `<prop type="B">`. Solo aparece como `<button>` en proyectos antiguos.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 9. Nodo `<platform>` — Override por plataforma
|
|
129
|
+
|
|
130
|
+
Permite sobrescribir atributos de cualquier nodo según la plataforma o tipo de dispositivo. Se declara como hijo del nodo que quiere sobreescribir.
|
|
131
|
+
|
|
132
|
+
| Atributo | Tipo | Obligatorio | Default | Descripción |
|
|
133
|
+
|---|---|---|---|---|
|
|
134
|
+
| `name` | string | **Si** | — | Plataforma: `android`, `ios`, `windows`. |
|
|
135
|
+
| `device` | string | No | `""` | Tipo de dispositivo: `phone`, `hiphone`, `tablet`, `mini`, `watchround`, `watchsquare`. |
|
|
136
|
+
| *(cualquier atributo del padre)* | — | No | heredado | Sobrescribe el atributo cuando la plataforma coincide. |
|
|
137
|
+
|
|
138
|
+
**Orden de resolución de atributos:**
|
|
139
|
+
1. `<platform name="...">` que coincide con la plataforma actual.
|
|
140
|
+
2. El nodo principal (el padre).
|
|
141
|
+
3. Regla CSS por clase.
|
|
142
|
+
4. Cadena vacia / valor por defecto.
|
|
143
|
+
|
|
144
|
+
```xml
|
|
145
|
+
<prop name="NOMBRE" type="T" visible="7" width="100%">
|
|
146
|
+
<!-- En tablet, el campo ocupa solo el 50% -->
|
|
147
|
+
<platform name="android" device="tablet">
|
|
148
|
+
<width>50%</width>
|
|
149
|
+
</platform>
|
|
150
|
+
</prop>
|
|
151
|
+
|
|
152
|
+
<coll name="MiPantalla" screen-orientation="portrait">
|
|
153
|
+
<!-- En tablet, la orientacion es libre -->
|
|
154
|
+
<platform name="android" device="tablet">
|
|
155
|
+
<screen-orientation>sensor</screen-orientation>
|
|
156
|
+
</platform>
|
|
157
|
+
</coll>
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## 10. Tipos de propiedad (atributo `type`)
|
|
163
|
+
|
|
164
|
+
| Código | Descripción | Notas |
|
|
165
|
+
|---|---|---|
|
|
166
|
+
| `T` | Texto editable. | El más usado para campos de texto. |
|
|
167
|
+
| `TN` ... `TN6` | Texto numérico con N decimales. | Ej. `TN2` para 2 decimales. |
|
|
168
|
+
| `N` ... `N6` | Numérico con N decimales. | `N` = entero, `N2` = 2 decimales. |
|
|
169
|
+
| `D` | Fecha. | Requiere `date-format` para personalizar. |
|
|
170
|
+
| `DT` | Fecha y hora. | |
|
|
171
|
+
| `TT` | Solo hora/reloj. | Requiere `mask="Hh#:#Mm"` para ser visible. |
|
|
172
|
+
| `B` | Botón en formulario. | Usar `onclick` como atributo. Soporta también `ontouchdown`/`ontouchup` para distinguir presionar de soltar (interacciones "mantener pulsado"). |
|
|
173
|
+
| `L` | Etiqueta de solo lectura (label) — forma preferida. | No editable. Muestra el `title`; sin `title`, usa el valor del campo. Usar `MAP_` siempre que sea posible. |
|
|
174
|
+
| `TL` | Alias legacy de `L`: se renderiza igual (label de solo lectura). | Equivalente a `type="L"`; el framework instancia el mismo control. Mantener por compatibilidad. |
|
|
175
|
+
| `THTML` | Texto con formato HTML. | Soporta HTML básico. `link-color` para enlaces. |
|
|
176
|
+
| `WEB` | WebView embebido. | Carga URLs o HTML local. |
|
|
177
|
+
| `IMG` | Imagen referenciada (path o URL). | `scale-type`, `zoom`, `keep-aspect-ratio`. |
|
|
178
|
+
| `PH` | Foto capturable con la camara. | Equivalente a `IMG` con captura. |
|
|
179
|
+
| `VD` | Video o escaner. | `code-type` para QR/barcode. |
|
|
180
|
+
| `DR` | Dibujo/firma. | `stroke-color`, `stroke-width`, `apply-format-to-file`. |
|
|
181
|
+
| `NC` | Checkbox/toggle/radio/switch. | `check-type` para variante. |
|
|
182
|
+
| `X` | Campo password. | `show-password-visibility-toggle` para ver/ocultar. |
|
|
183
|
+
| `Z` | Contenedor de contenidos/lista embebida. | Requiere `contents="NombreColeccion"`. |
|
|
184
|
+
| `AT` | Adjunto/fichero. | `attach-allowed` para filtrar tipos MIME. |
|
|
185
|
+
| `O` | Sub-objeto JavaScript. | No persiste en BD. Ideal para callbacks. |
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## 11. Atributos globales de la app
|
|
190
|
+
|
|
191
|
+
Atributos del nodo raiz `<app>` en `mappings.xne` o `app.xml`.
|
|
192
|
+
|
|
193
|
+
| Atributo | Tipo | Default | Descripción |
|
|
194
|
+
|---|---|---|---|
|
|
195
|
+
| `prefix` | string | `""` | Prefijo de tablas (macro `##PREF##`). Ej. `gen` genera `gen_` en el SQL. |
|
|
196
|
+
| `versión` | string | — | Versión de la aplicación. |
|
|
197
|
+
| `mainentry` | string | — | Coleccion de entry-point (pantalla inicial). |
|
|
198
|
+
| `login-coll` | string | — | Coleccion de login. |
|
|
199
|
+
| `default-language` | string | `javascript` | Lenguaje de scripts por defecto. Usar siempre `javascript`. |
|
|
200
|
+
| `theme` | string | `default` | Tema visual global de la app. |
|
|
201
|
+
| `scale-fontsize` | bool | `true` | Escala fuentes según `fontScale` del sistema (accesibilidad). |
|
|
202
|
+
| `android-font-factor` | float | `7` | Factor adicional de escala de fuentes en Android. |
|
|
203
|
+
| `appname` | string | nombre del fichero | Nombre lógico de la app. |
|
|
204
|
+
| `license` | string | — | Licencia de la app. |
|
|
205
|
+
| `compatibility-mode` | bool | `false` | Si `true`, ignora COMPLETAMENTE el CSS. |
|
|
206
|
+
| `debug` | bool | `false` | Activa el modo debug. |
|
|
207
|
+
|
|
208
|
+
### Macros de sistema disponibles
|
|
209
|
+
|
|
210
|
+
| Macro | Descripción |
|
|
211
|
+
|---|---|
|
|
212
|
+
| `##PREF##` | Prefijo de tablas definido en `app.xml`. |
|
|
213
|
+
| `##APP##` | Referencia a la app. |
|
|
214
|
+
| `##DEFAULT##` | Valor por defecto. |
|
|
215
|
+
| `##MAINFRAME##` | Frame raiz de la aplicación. |
|
|
216
|
+
| `##MAINENTRYPOINT##` | Padre del menu principal. |
|
|
217
|
+
| `##NOW_TIME##` | Fecha y hora actual. |
|
|
218
|
+
| `##DEVICE_OS##` | Sistema operativo del dispositivo. |
|
|
219
|
+
| `##DEVICE_OSSDKCODE##` | Código SDK del OS (Android API level). |
|
|
220
|
+
| `##DEVICE_TYPE##` | Tipo de dispositivo (`phone`, `tablet`, etc.). |
|
|
221
|
+
| `##CURRENT_ORIENTATION##` | Orientación actual (`portrait` o `landscape`). |
|
|
222
|
+
| `##FRAME_VERSION_CODE##` | Versión del framework XOne. |
|
|
223
|
+
| `##LIVEUPDATE_VERSION##` | Versión del LiveUpdate. |
|
|
224
|
+
| `##RIGHT_IN##` | Animación de entrada desde la derecha. |
|
|
225
|
+
| `##RIGHT_OUT##` | Animación de salida hacia la derecha. |
|
|
226
|
+
| `##LEFT_IN##` | Animación de entrada desde la izquierda. |
|
|
227
|
+
| `##LEFT_OUT##` | Animación de salida hacia la izquierda. |
|
|
228
|
+
| `##TOP_IN##` | Animación de entrada desde arriba. |
|
|
229
|
+
| `##BOTTOM_IN##` | Animación de entrada desde abajo. |
|
|
230
|
+
| `##PUSH_IN##` / `##PUSH_OUT##` / `##PUSH_DOWN_IN##` | Variantes de animación tipo push. |
|
|
231
|
+
| `##ALPHA_IN##` | Animación de entrada con fade. |
|
|
232
|
+
| `##ZOOM_IN##` | Animación de entrada con zoom. |
|
|
233
|
+
|
|
234
|
+
### Ficheros de configuración del proyecto
|
|
235
|
+
|
|
236
|
+
| Fichero | Uso |
|
|
237
|
+
|---|---|
|
|
238
|
+
| `app.ini` | Configuración inicial: Name, Title, Caption, Icon, IconFolder, FilesFolder. |
|
|
239
|
+
| `app.xml` | Definición global de la app (prefix, versión, CSS, scripts). |
|
|
240
|
+
| `mappings.xne` | Mapping principal: solo colecciones Empresas y Usuarios. Encoding: iso-8859-15. |
|
|
241
|
+
| `default.css` | Estilos globales. |
|
|
242
|
+
| `functions.js` | Funciones JavaScript globales (carga automática). |
|
|
243
|
+
| `license.ini` | Licencia de la aplicación. |
|
|
244
|
+
|