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:Saludos,
- Pedir siempre confirmación:
Event Start
BtnConfirm.JSEvent('onclick', "confirm('¿Está seguro?')")
EndEvent- 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
Pablo MoleriFrom: "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 todosA 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 = 5ScriptTxt.Caption = "<script type='text/javascript'>document.getElementById('" + "_Confirmo" + "').value = confirm('Proceed?');</script>"If &Confirmomsg('Hacer Algo')EndifEndifSin 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 JavaGracias
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