Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
Última revisión Ambos lados, revisión siguiente
wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:4.5.-after-edit:start [2017/08/10 16:19]
127.0.0.1 editor externo
wiki:2.-desarrollo-app:2.3.-codigo:c.-eventos:4.5.-after-edit:start [2019/05/20 17:56]
ary [Nodo AFTER-EDIT]
Línea 1: Línea 1:
 {{indexmenu_n>1}} {{indexmenu_n>1}}
-===== Nodo BEFORE-EDIT =====+===== Nodo AFTER-EDIT =====
  
-Aquí se podrán poner todas y cada una de las acciones que se han explicado en la parte de acciones. \\+Nodo similar al before-edit, la diferencia fundamental es que el after-edit se ejecuta cuando ya se ha pintado la pantalla. \\
 \\ \\
-Su ámbito es a nivel de **coll**, como el resto de eventos.\\ +La razón de ser de este nodo es principalmente por si los scripts del before-edit son un poco pesados, evitar que el usuario se quede con la pantalla "en blanco" esperando a que se procesen los scripts, al hacer las cosas en el after-edit, el usuario al menos ya ve la pantalla, de forma que ganamos en "fluidez", evitando las esperas "innecesarias"
 +\\ 
 +Su ámbito es a nivel de **coll**.\\
 \\ \\
-Este evento se ejecuta cuando alguien edita un objeto, el mismo debe ser editado por el usuario de la aplicación, es decir, si se edita un objeto mediante códigoscript, no se ejecuta este nodo, es un evento de usuario.\\ +Este evento se ejecuta cuando alguien lanza un objeto en edición, el mismo debe ser editado por el usuario de la aplicación, es decir, si se edita un objeto mediante código script, no se ejecuta este nodo, es un evento de UI. Tiene que lanzarse una ventana de edición para que se ejecute. ( Podría hacerse ejecutando el nodo con script: self.executeNode("after-edit"); ó this.ExecuteNode "after-edit" según sea js ó vbscript )\\
  
 \\ \\
-Asignamos el valor **0** a la bandera "MAP_BANDERA" se comprueba si hay recibos, dando mensaje error si los hubiera.+En el ejemplo, comprobamos la versión que tiene el usuario en la tabla de usuario actualizamos si vemos que tenemos una más reciente.
      
 <code xml> <code xml>
-<before-edit> +<after-edit show-wait-dialog="false" refresh="true"
-<action name="runscript"> + <action name="runscript"> 
- <include file="todo1_recibos.vbs"/>  + <script language="javascript"> 
- <script language="VBScript">  + if ( user.APPVERSION != appData.getGlobalMacro("##VERSION##") { 
- This("MAP_BANDERA")=0 + user.APPVERSION = appData.getGlobalMacro("##VERSION##"); 
- CheckRecibosPendientes + user.save(); 
- If This("MAP_NOPAGA")=1 Then + replica.start(); 
- AppData.FailWithMessage -8100,"El Cliente tiene recibos pendientes." + } 
- End If  + </script> 
- </script>  + </action> 
-</action> +</after-edit>
-</before-edit>+
 </code> </code>
 \\ \\
  
-\\ 
-**Ejecución de script**. En este ejemplo busca si hay llamadas para un cliente en una fecha determinada.\\ 
  
-<code xml+<code javascript
-<action name="runscript"> + <!-- se lanza despues del pintado --> 
- <script language="VBScript"> +    <after-edit show-wait-dialog="false" refresh="false"> 
- dim c +        <action name="runscript"> 
- set c=appdata.GetCollection("Llamadas"+            <script language="javascript"> 
- c.filter="IDCLIENTE=+ CSTR(this("ID")) + " AND FEMISION&gt;='" + cstr(This("FEMAIL")) + "'" +                lockContents(["Chat","nUsuarios","Chatear"]); 
- c.Startbrowse+            </script> 
 +        </action> 
 +    </after-edit> 
 + </code>   
  
- //En caso de que haya, se rellenará la bandera "MAP_LLAMADAS" 
- if not c.currentItem is nothing then 
- this("MAP_LLAMADAS")=1 
- end if 
- c.EndBrowse 
- </script> 
-</action>  
-</code>  
-\\ 
- 
-Se **comprueba el usuario** para asignarle los permisos que le correspondan.\\ 
-\\ 
-<code xml> 
-<action name="runscript"> 
- <script language="VBScript"> 
- if this("TRIDUSUARIO")&lt;&gt;AppData.CurrentUser("ROWID") then 
- this("MAP_DISABLE")=1 
- else 
- if this("ESTADO")="3" then 
- this("MAP_DISABLE")=0 
- else 
- if this("ACTUALIZADO")=1 then 
- this("MAP_DISABLE")=1 
- else 
- this("MAP_DISABLE")=0 
- end if 
- end if 
- end if 
- </script> 
-</action> 
-</code>  
-\\ 
-**Se lanza pantalla de confirmación.**\\ 
-\\ 
-<code xml> 
-<script language="VBScript"> 
- if This("IDSPGMCIERRE") =0 then 
- ok=AppData.UserInterface.MsgBox ("¿Continuará con la resolución de la avería?","ATENCION!",4) 
- If ok=6 Then 
- ' ha dicho si 
- This("MAP_INDTERMINA")=0 
- else 
- ' ha dicho no 
-     This("MAP_INDTERMINA")=1 
- end if 
- end if 
-</script> 
-</code>