Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:16-sys-message:start [2018/09/04 14:08] ejetoro [NODO SYS MESSAGE] |
wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:16-sys-message:start [2018/09/07 17:53] (actual) ejetoro [Colección entry-point] |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
{{indexmenu_n> | {{indexmenu_n> | ||
- | ====== NODO SYS-MESSAGE | + | ===== NODO SYS-MESSAGE ===== |
\\ | \\ | ||
El nodo **sys-message** es un nodo especial de la colección “Empresas”, | El nodo **sys-message** es un nodo especial de la colección “Empresas”, | ||
+ | \\ | ||
Utilizado para realizar acciones cuando esté ocurriendo alguno de los eventos llevados a cabo por el < | Utilizado para realizar acciones cuando esté ocurriendo alguno de los eventos llevados a cabo por el < | ||
+ | \\ | ||
Estos eventos están codificados numéricamente, | Estos eventos están codificados numéricamente, | ||
\\ | \\ | ||
+ | <WRAP center round important 60%> | ||
+ | Actualmente no se pueden controlar únicamente uno ó dos casos aislados del XOneLive y no hacer nada en los otros, si se especifica el nodo < | ||
+ | </ | ||
+ | ==== EJEMPLO DE USO ==== | ||
<code xml> | <code xml> | ||
< | < | ||
Línea 12: | Línea 17: | ||
<param name=" | <param name=" | ||
<param name=" | <param name=" | ||
- | <!-- Este parámetro liveResponse en iOS aún no está implementado | ||
<param name=" | <param name=" | ||
- | --> | ||
< | < | ||
sysMessage(codigo, | sysMessage(codigo, | ||
Línea 37: | Línea 40: | ||
case 1002: | case 1002: | ||
cadena=" | cadena=" | ||
+ | appData.getCurrentEnterprise().setVariables(" | ||
+ | |||
+ | // Obtenemos un puntero al objeto del menú principal que está en una variable global (En el before-edit del entry-point se habrá inicializado esta variable con self) | ||
+ | var objeto=appData.getCurrentEnterprise().getVariables(" | ||
+ | var view=ui.getView(appData.getCurrentEnterprise().getVariables(" | ||
+ | if (view != undefined) { | ||
+ | if (objeto != undefined) { | ||
+ | objeto.executeNode(" | ||
+ | } | ||
+ | } | ||
break; | break; | ||
Línea 45: | Línea 58: | ||
/* es responsabilidad del programador limpiar la cola de réplica y cerrar la aplicación. | /* es responsabilidad del programador limpiar la cola de réplica y cerrar la aplicación. | ||
/* ************************ */ | /* ************************ */ | ||
- | + | ||
- | ui.msgBox(" | + | // |
+ | ui.msgBox(" | ||
var bResult = replica.processReplicatorQueue(liveResponse); | var bResult = replica.processReplicatorQueue(liveResponse); | ||
if (bResult) { | if (bResult) { | ||
Línea 55: | Línea 69: | ||
} | } | ||
break; | break; | ||
- | | + | } |
} | } | ||
</ | </ | ||
+ | ==== CODIGO ADICIONAL ==== | ||
+ | A continuación se desarrolla a modo de ejemplo un código para mostrar una ventana flotante cuando se recibe el código 1002 desde el XOneLive (Cuando se han aplicado todas las actualizaciones pendientes).\\ | ||
+ | \\ | ||
+ | |||
+ | === Colección entry-point === | ||
+ | En la colección entry-point, | ||
+ | |||
+ | <code xml> | ||
+ | <!-- Código del frame flotante donde vamos a mostrar el mensaje informativo al usuario con una cuenta atrás para cerrar el framework y aplicar los cambios que hayan llegado a través del XOneLive --> | ||
+ | <frame name=" | ||
+ | <prop name=" | ||
+ | <prop name=" | ||
+ | <prop name=" | ||
+ | <prop name=" | ||
+ | </ | ||
+ | |||
+ | <!-- Con el siguiente código en la colección entry-point, | ||
+ | < | ||
+ | <action name=" | ||
+ | < | ||
+ | appData.getCurrentEnterprise().setVariables(" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <!-- Este es el nodo que se ejecuta en el código de ejemplo anterior cuando se captura el código 1002. --> | ||
+ | < | ||
+ | <action name=" | ||
+ | < | ||
+ | comprobarActualizaciones(); | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | <action name=" | ||
+ | < | ||
+ | appData.getCurrentEnterprise().setVariables(" | ||
+ | ui.restartApp(); | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | <action name=" | ||
+ | < | ||
+ | self.MAP_ACTUALIZACION=0; | ||
+ | self.MAP_BANDERACANCELAR=1; | ||
+ | ui.executeActionAfterDelay(" | ||
+ | ui.getView(self).refreshAll(" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | \\ | ||
+ | En el código siguiente, se pone visible el frame flotante " | ||
+ | \\ | ||
+ | <code javascript> | ||
+ | function comprobarActualizaciones() { | ||
+ | if (appData.getCurrentEnterprise().getVariables(" | ||
+ | self.MAP_ACTUALIZACION=1; | ||
+ | ui.getView(self).refreshAll(" | ||
+ | |||
+ | appData.getCurrentEnterprise().setVariables(" | ||
+ | //## | ||
+ | self.MAP_TXT_TITLE4=" | ||
+ | ui.refresh(" | ||
+ | |||
+ | self.MAP_BANDERACANCELAR=0; | ||
+ | ui.executeActionAfterDelay(" | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function contador() { | ||
+ | if (self.MAP_BANDERACANCELAR==0) { | ||
+ | var contador=appData.getCurrentEnterprise().getVariables(" | ||
+ | |||
+ | appData.getCurrentEnterprise().setVariables(" | ||
+ | //## | ||
+ | self.MAP_TXT_TITLE4=" | ||
+ | ui.refresh(" | ||
+ | |||
+ | if (appData.getCurrentEnterprise().getVariables(" | ||
+ | appData.getCurrentEnterprise().setVariables(" | ||
+ | ui.restartApp(); | ||
+ | } else { | ||
+ | ui.executeActionAfterDelay(" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | \\ | ||
+ | Código CSS utilizado\\ | ||
+ | <code css> | ||
+ | .ppal_subtitulo { | ||
+ | extends: | ||
+ | width:96%; | ||
+ | fontsize: | ||
+ | fontbold: | ||
+ | labelwidth: | ||
+ | text-border: | ||
+ | locked: | ||
+ | text-forecolor:# | ||
+ | align: | ||
+ | text-align: | ||
+ | } | ||
+ | |||
+ | .btn_MsgActualizacion { | ||
+ | bgcolor:# | ||
+ | forecolor:# | ||
+ | width:33%; | ||
+ | lmargin: | ||
+ | height: | ||
+ | text-align: | ||
+ | textfont-size: | ||
+ | tmargin: | ||
+ | } | ||
+ | </ |