{{indexmenu_n>1}} ====== Eventos / Reglas de negocio ====== /* {{indexmenu>wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:#eventos_reglas_de_negocio}} */ \\ ^ Elemento ^ Descripción ^ | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:1.-action:start]] | Nodo donde se expondrán las acciones a realizar en los eventos definidos en nuestra aplicación. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:2.-create:start]] | Nodo en el cual se van a describir las reglas de creación de las colecciones. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:3.-insert:start]] | Nodo en el cual se van a establecer las reglas y acciones de grabación en una colección. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:4.-before-edit:start]] | Evento ejecutado al ir a editar un objeto, aún no se ha empezado a pintar la pantalla. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:4.5.-after-edit:start|4.5.-after-edit ]] | Evento ejecutado al ir a editar un objeto, una vez que ya está pintado el UI. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:5.-onchange:start]] | Nodo en el cual se describen los campos cuyos cambios se quieren monitorear y las acciones que se desea que se ejecuten cuando ocurran los cambios. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:6.-delete:start]] | Nodo en el cual se van a describir las reglas y acciones de eliminación de las colecciones. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:7.-maintenance:start]] | Nodo para definir mantenimientos en una aplicación. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:8.-selecteditem:start]] | Nodo que tiene lugar cuando se selecciona una fila de contents. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:9.-onlogon:start]] | Regla de negocio que tiene lugar cuando entramos en la aplicación. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:10.-onlogoff:start]] | Regla de negocio que tiene lugar cuando vamos a salir de la aplicación. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:11.-onback:start]] | Evento que atiende al botón de volver atrás que ejecuta este nodo. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:12.-replica-ok:start]] | Nodo que sirve para capturar el evento de réplica de alguna tabla de la base de datos. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:13.-auto-selecteditem:start]] | Tiene lugar cuando van pasando automáticamente los “slides” o presentaciones en un contents | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:14.-reglas-de-negocio:start]] | Explicación de los distintos “eventos” disponibles en XOne para definir las reglas de negocio. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:15.-binding:start]] | %%Binding%% | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:16-sys-message:start]] | Nodo especial de la colección “Empresas”, para recibir eventos de %%XOneLive%%. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:17-notificaciones-push:start]] | Nodo especial de la colección empresas que se lanza cuando se pulsa en una notificación PUSH. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:18-onlong-press:start]] | onlong-press. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:19-oneditoraction:start]] | On editor action. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:20.-onmessage:start]] | onMessage. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:21.-onrecovery:start]] | onRecovery. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:22.-after-recovery-login:start]] | after-recovery-login. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:23.-permissions:start]] | permisos de la aplicación | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:24.-ondate-selected:start]] | onDateSelected | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:25.-onpage-selected:start]] | onPageSelected | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:26.-oncelldraw:start]] | onCellDraw | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:27.-onfocus:start]] | onFocus | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:28.-onlostfocus:start]] | onLostFocus | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:29.-load:start]] | Nodo que salta por cada registro que se carga en un contents | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:30.-onTextChanged:start]] | onTextChanged | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:31.-onConsolemessage:start]] | onConsoleMessage | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:32.-onfocuschanged:start]] | onfocusChanged | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:33.-onclick:start]] | onclick | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:34.-ondatashare:start]] | ondatashare | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:35-clipboard:start]] | Manejo del clipboard o portapapeles en Apps XOne | \\ Los eventos pueden ocurrir por una acción ejecutada por el usuario en la interface visual o por un script creado por el programador. ===== Acciones ===== \\ **Acciones disponibles para su ejecución dentro de los distintos Eventos**. \\ ^Elemento ^Descripción ^ | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:1.-action:start|Acciones de los eventos ]]| Acciones que se pueden realizar en los distintos eventos definidos más abajo | ===== Nodos XML de eventos ===== \\ **Eventos disponibles en la Plataforma XOne para la realización de las distintas reglas de negocio.** \\ ^Elemento ^Descripción ^ | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:2.-create:start|create ]]| Evento que se ejecuta cuando se crea un objeto. Esta creación podrá ser realizada mediante las acciones propias de los framework, o por un script creado por el programador | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:3.-insert:start|insert ]]| Evento que realiza sus acciones cuando el usuario guarda un objeto, ya sea una inserción nueva o una actualización del objeto | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:4.-before-edit:start|before-edit ]]| Evento ejecutado al ir a editar un objeto, aún no se ha empezado a pintar la pantalla. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:4.5.-after-edit:start|after-edit ]]| Evento ejecutado al ir a editar un objeto, una vez que ya está pintado el UI. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:5.-onchange:start|onchange ]]| Ejecución del evento al modificar el valor de un campo | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:6.-delete:start|delete ]]| Evento que se ejecuta cuando se va a borrar un objeto | \\ ===== Nodos XML de eventos "Especiales" ===== \\ ^Elemento ^Descripción ^ | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:11.-onback:start|onback ]]| Solo Android, nodo para controlar el comportamiento del botón detrás del sistema | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:23.-permissions:start|permissions]]| Solo Android, nodo para controlar los permisos de la aplicación sobre el dispositivo| \\ \\ ===== Nodos XML en colección Empresas ===== \\ ^Elemento ^Descripción ^ | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:7.-maintenance:start|maintenance ]]| Mantenimientos que se ejecutan cada cierto tiempo (Tareas Programadas), siempre en segundo plano. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:9.-onlogon:start|onlogon]]| Cuando se entra en la aplicación. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:10.-onlogoff:start|onlogoff ]]| Regla de negocio tiene lugar cuando vamos a salir de la aplicación. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:12.-replica-ok:start|replica-ok ]]| Nodo para capturar el evento de la réplica de alguna tabla concreta. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:16-sys-message:start|sys-message ]]| Nodo especial de la colección “Empresas”, para recibir eventos de XOneLive. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:17-notificaciones-push:start|onpushnotificationclick ]]| Nodo especial de la colección empresas que se lanza cuando se pulsa en una notificación PUSH. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:20.-onmessage:start|onmessage]]| Procesamiento de los intents. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:21.-onrecovery:start |onrecovery]]| Chequea si anteriormente se validó el usuario una vez logeados. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:22.-after-recovery-login:start|after-recovery-login]]| After Recovery Login | \\ ===== Nodos XML colecciones Contents ===== \\ ^Elemento ^Descripción ^ | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:8.-selecteditem:start|selecteditem ]]| Cuando seleccionamos un elemento de un contents (subgrid/detalles), el comportamiento predeterminado es lanzar el objeto seleccionado en edición, si queremos ejecutar unas acciones personalizadas cuando se seleccione un elemento del contents, podemos utilizar este evento. Unicamente disposible en colecciones que son mostradas en forma de contents. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:13.-auto-selecteditem:start|auto-selecteditem ]]| Nodo exclusivo para el contents con **viewmode="slideview"**, de forma que conforme van pasando automáticamente "las presentaciones" o slides, se va ejecutando el nodo , sin necesidad de que sea el usuario el que vaya pasando con el dedo. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:29.-load:start]] | Nodo que salta por cada registro que se carga en un contents| \\ /* ===== Atributos en Pestañas (Nodo Group) ===== \\ ^Elemento ^Descripción ^ | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:start#onfocus|OnFocus]] | Evento exclusivo para nodo group. Se produce cuando una pestaña obtiene el foco. | | [[wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:start#onlostfocus|OnLostFocus]] | Evento exclusivo para nodo group. Se produce cuando una pestaña pierde el foco. | ==== onfocus ==== \\ Exclusivo para las pestañas, cuando éstas cogen el foco. \\ ====onlostfocus ==== \\ Exclusivo para las pestañas, cuando éstas pierden el foco. */ ===== Eventos en controles ===== \\ Los eventos se nombran todo en minúscula cuando se definen como atributos y es indiferente cuando se usa el bind() \\ Propiedades comunes a todos los objetos de eventos: \\ \\ |**target**| Propiedad objetivo.| |**objItem**| XOneDataObject que lanzó el evento.| |**data**| Objeto javascript extra definido por el usuario al hacer bind().| \\ ---------------------------------------------------------------------------------------- ==== Prop type="B" (botones) ==== \\ ^onClick |x: Posición en el eje X en la pantalla (pixeles)\\ y: Posición en el eje Y en la pantalla (pixeles) | ^onLongPress |x: Posición en el eje X en la pantalla (pixeles)\\ y: Posición en el eje Y en la pantalla (pixeles) | ==== contents ==== \\ ^onLongPressItem |position: Índice en el content visual | ^onSelectedItem |position: Índice en el content visual | \\ ==== Prop type=”T” ==== \\ ^onTextChanged | **target**: Propiedad donde se produce el evento.\\ **keyPressed**: Tecla pulsada o todo el texto nuevo introducido de golpe (ej. por copiar y pegar)\\ **oldText**: Texto antes del cambio\\ **newText**: Texto ya cambiado\\ function eventoOnTextChanged(evento) { ui.showToast("onTextChanged! target: " + evento.target + "\nObjItem: " + evento.objItem + "\nTecla pulsada: " + evento.keyPressed + "\noldText: " + evento.oldText + "\nnewText: " + evento.newText); } | ^onTextLengthChanged |length: Tamaño total del texto | ^onFocusChanged |isFocused: Si tiene focus o no el target | ^onEditorAction |(Para simplemente pulsar tecla intro o siguiente en el teclado) | \\ ==== Contents viewmode "picturemap" ==== \\ ^onTouch |**x**: Posición en el eje X en la pantalla (pixeles)\\ **y**: Posición en el eje Y en la pantalla (pixeles)\\ translateX: ???\\ translateY: ???\\ scale: ??? | ==== Prop type=”WEB” ==== \\ ^onConsoleMessage |(para errores del webview y evitar que se los trague)\\ **messageLevel**: Error, warning o info\\ **message**: El mensaje de error\\ **lineNumber**: Línea de script afectada, si la hay\\ **sourceId**: El archivo de script afectado, si lo hay | function handleError(e) { if (e.messageLevel == "ERROR") { ui.msgBox("Nivel: " + e.messageLevel + "\nMensaje: " + e.message + "\nLínea: " + e.lineNumber + "\nID fuente: " + e.sourceId, "Error WebView", 0); } } ==== Nodo frame ==== \\ ^onScroll |**dx**: ???\\ **dy**: ???\\ **scrollX**: Posición scroll X respecto al frame\\ **scrollY**: Posición scroll Y respecto al frame\\ **width**: Ancho del frame actual\\ **height**: Alto del frame actual | ==== En appData, registrable solo con bind() ==== \\ ^onPushRegistered |**pushToken**: Token push que identifica al dispositivo | {{indexmenu>:wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos30.-onTextChanged:start}}