Tema cerrado 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Solucionado PushValueAndExit en onchange
07-07-2015, 09:27 AM
Mensaje: #1
PushValueAndExit en onchange
Hola, estoy realizando un proyecto en el que tengo que comprobar si una persona esta ya dada de alta en el sistema. Para ello, cuando se introduce su DNI, en un nodo onchange, se realiza la búsqueda por DNI, y si existe, entonces se cargan los datos de esta persona.

Para ello, lo he intentado mediante un PushValueAndExit, de manera que se cargue el nuevo y el que estoy viendo se borre y se cierre la ventana, pero si no es pulsando un boton, no me funciona. Parece que sea algún problema de refresco de la pantalla.


el prop que provoca la llamada del onchange:
Código XOne:
<prop name="NIF" group="1" type="T" visible="1" frame="DatosPropietario_SupI" fixed-text="true" size="15" disableedit="MAP_NOEDITAR=1" /> 

El codigo del onchange es el siguiente:
Código XOne:
<onchange>
        <
field name="NIF">
          <
action name="runscript">
            <
script language="VBScript">
            
NuevoPropietarioOnChangeNIF
          </script>
          </action>
        </field>
</onchange> 
Y la función a la que llama es:
Código XOne:
Function NuevoPropietarioOnChangeNIF()
    if 
len(cstr(this("NIF")))>0 then
           idPropietarioNuevo
=ComprobarExistePropietario(this("ID"),this("NIF"))
        
        if 
idPropietarioNuevo>0 then
            res
=ui.MsgBox("El propietario ya existe. ¿Desea utilizar esta persona como propietario actual?","INFORMACION",4)
            if 
res=6 then
                Set Coll
=appdata.GetCollection("NuevoPropietario")
                
Coll.Clear
                Set Obj
=Coll("ID",idPropietarioNuevo)
                if 
Obj is nothing then ' Si no existe, ha habido un error.
                    ui.msgbox "No se encuentra el propietario a cargar","ERROR",0
                    Exit Function
                end if
'
Actualizamos los datos del propietario actual al nuevo
                 appdata
.executeSQL "UPDATE GEN_AGENDA SET IDPROPIETARIO="+cstr(idPropietarioNuevo)+" WHERE IDPROPIETARIO="+cstr(this("ID"))
'Borramos el propietario actual
                appdata.executeSQL "DELETE FROM GEN_PROPIETARIOS WHERE ID="+cstr(this("ID"))
                
                 AppData.PushValueAndExit Obj    
                 ui.Refresh
            else
                this("NIF")=""
            end if
        end if
    end if
End Function 

¿Alguna sugerencia?

Un saludo!
Encuentra todos sus mensajes
07-07-2015, 10:42 AM
Mensaje: #2
RE: PushValueAndExit en onchange
Has comprobado que llegas a la ejecución del PushValueAndExit, justo antes de ejecutarse??
Lo otro que puedes probar es poner un Pushvalue solo, para ver si se ejecuta.
Encuentra todos sus mensajes
07-07-2015, 11:21 AM
Mensaje: #3
RE: PushValueAndExit en onchange
Hola Rubén,
si he probado a poner solo el Pushvalue pero pasa lo mismo, se queda parado hasta que pulso un botón y entonces se ejecuta.
Justo antes del pushvalue he puesto que me muestre un mensaje y lo muestra correctamente.

Código XOne:
ui.msgbox "cargo el id="cstr(Obj("ID")),"A",0
AppData
.PushValue Obj 

Muestra el mensaje con le ID que tiene que cargar, pero no lo carga hasta que se pulsa un boton...

Un saludo!
Encuentra todos sus mensajes
07-07-2015, 01:01 PM
Mensaje: #4
RE: PushValueAndExit en onchange
Prueba a hacer esto. Pon en el onchange un executeafterdelay, y ese llama a un nodo, que es el que hace el pushvalue.
Encuentra todos sus mensajes
08-07-2015, 09:00 AM
Mensaje: #5
RE: PushValueAndExit en onchange
Hola Ruben,
con el ExecuteActionAfterDelay si que ha funcionado correctamente Wink

Muchas gracias!

Un saludo!
Encuentra todos sus mensajes
Tema cerrado 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | XOne | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS