Re: [gx-l] Confirm y Javascript

mmmmmm....creo que en mi afan de simplificar el mail no explique muy bien el problema...la cosa tiene mas bemoles, aca les muestro como va y porque creo que lo que me pasaron no funciona...


En principio el usuario ingresa en el WebPanel &Mes, &Anio, &OsId y presiona el boton 'Facturar', en ese momento con JSEvent logro hacer que confirme o no  el proceso de facturación.
Si el usuario confima, se ejecuta el Prc que verifica la factura y de acuerdo al código de error obtenido tiene que hacer diferentes cosas y "advertir" al usuario de lo que va a hacer...asi seria el codigo...


                       &CodError = VerificarFactura.Udp(&Anio, &Mes, &OsId)
                        Do Case
Case &CodError = 1 //Impresa
Msg('La factura no se puede volver a generar porque ya fue impresa')
Case &CodError = 2 //Pagada
Msg('La factura no se puede volver a generar porque regista pagos')
Case &CodError = 3 //Anulada
  JsScript.Caption = "<script type='text/javascript'>document.getElementById('" + "_Confirmo" + "').value = confirm('La factura automática para este mismo perido ya fue generada y se encuenta anulado, Si confirma se generara una nueva factura?');</script>"
If &Confirmo
FacturarOS.Call(&Anio, &Mes , &OsId)
Endif
   Case &CodError = 4 //La factura tiene lineas manuales
JsScript.Caption = "<script type='text/javascript'>document.getElementById('" + "_Confirmo" + "').value = confirm('La factura automática para este mismo perído ya fue generada y se tiene lineas que han sido agregadas manualmente. Si confirma se re-generara la factura y se borraran las lineas agregadas manualmente?');</script>"
If &Confirmo
FacturarOS.Call(&Anio, &Mes , &OsId)
Endif
Case &CodError = 5
FacturarOS.Call(&Anio, &Mes , &OsId)
EndCase


Espero se entienda un poquito mejor,

Gracias x adelantado

El 5 de febrero de 2013 14:36, Pablo Moleri <pablo@cybernet.com.uy> escribió:
Hola,

Tenés que tener en cuenta donde ejecuta cada cosa. Al poner el procedimiento estás forzando al evento a ejecutar en el servidor, por esta razón el javascript se ejecuta recién después de que el control vuelve al browser (cuando el evento ya terminó de ejecutar).

Alternativas:
  1. Pedir siempre confirmación:
    Event Start
       BtnConfirm.JSEvent('onclick', "confirm('¿Está seguro?')")
    EndEvent

  2. Manejar estados: la primera vez setéas una variable oculta en pantalla y le mostrás un mensaje al usuario pidiendo que vuelva a confirmar, ej:

    Event Start
       BtnConfirm.caption = "Validar"
    EndEvent

    Event Enter
        &CodError = VerificarFactura.udp(&Anio, &Mes, &OsId, &CodError)

        If &CodError = 5 And &validado = false
            msg('Advertencia, esta factura tiene Código 5 vuelva a confirmar')
            &validado = true
            BtnConfirm.caption = "Confirmar"
        Endif
        If &CodError = 5 And &validado = true
            msg("Factura confirmada")
            &validado = false
            BtnConfirm.caption = "Validar"
        Endif
    EndEvent
Saludos,
Pablo Moleri


From: "César Javier Acuña Borobach" <csr.acn@gmail.com>
To: gx-l@gxtech.com.uy, gx-java@gxtech.com.uy
Sent: Martes, 5 de Febrero 2013 15:07:37
Subject: [gx-l] Confirm y Javascript


Hola a todos

A ver si me pueden ayudar con este comportamiento que no logro entender...

Se trata de un web panel donde, para realizar determinada acción  estoy solicitando al usuario confirmación usando javascript. (Son mis primeras lineas en Javascript en la vida). Lo hago de esta manera y NO funciona. 

&CodError = 0

&CodError = VerificarFactura.udpl(&Anio, &Mes, &OsId, &CodError)
If &CodError = 5
   ScriptTxt.Caption = "<script type='text/javascript'>document.getElementById('" + "_Confirmo" + "').value = confirm('Proceed?');</script>"
If &Confirmo
msg('Hacer Algo')
Endif
Endif

Sin embargo si quito la llamada al procedimiento, funciona correctamente (El procedimiento siempre devuelve 5)
Alguien puede echarme una mano, estoy con Genexus X Ev2 y generador Java

Gracias

--
Has recibido este mensaje porque estás suscrito al grupo "GeneXus" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a genexus+unsubscribe@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

0 Response to "Re: [gx-l] Confirm y Javascript"

Publicar un comentario