Foros Néfele 4 Harbour › Foros › Dudas › WMsgAlert y Ajax
- Este debate tiene 7 respuestas, 3 mensajes y ha sido actualizado por última vez el 4 años, 3 meses por Alfredo Sanz. This post has been viewed 744 times
-
AutorEntradas
-
-
18-08-2020 a las 03:23 #412ramonzeaParticipante
Estoy intentando poner un mensaje cn WMsgAlert, pero tengo unos detalles.
Hago una lista de items con wBevel y un botón para cada item, para agregarlo a una tabla de control, tipo carrito de compras.
1-Si pongo
:cOnClick := "AgregaCarrito"
marca error por que no puedo recoger el valor WO para insertarlo en la página actual.
2.- Si pongo
:cOnClick := AgregaCarrito(:WO, aProducto)
se ejecuta correcto, pero se ejecutan todos los botones creados.
ya hice muchos tipos de formas incluso con Ajax, pero al parecer no le atino a la forma correcta.
123456789101112WITH OBJECT oAlert := WMsgAlert():New()//:lTagScript := .T.:cAjaxBevel := "mensaje01":cText := cText:cType := "info" //question":lToast := .T.:cBackGroundColor := "yellow":cPosition := xc_BottomRight:lShowConfirmButton := .F.:nPrimaryDelay := nDelay:Create()End WithGracias.
- Este debate fue modificado 4 años, 3 meses por Alfredo Sanz.
- Este debate fue modificado 4 años, 3 meses por Alfredo Sanz.
-
18-08-2020 a las 09:39 #413Alfredo SanzSuperadministrador
El planteamiento que haces no es correcto.
La llamada a Ajax es la que te tiene que devolver el alert para inyectarlo en la página. Por ejemplo
- En un browse tenemos un botón de borrar que al hacer click llama por ajax a "borradato"
123456789WITH object :AddCol( "", xc_Center, xc_Center ):nWidth := 1:cToolTip := "borrar":cId := "borra":cClrText := "red":cCursor := "pointer":cOnClick := "borradato":cAjaxBevel := "NflCargo"END12345678910111213141516171819202122232425FUNCTION BorraDatoLOCAL oMsgAlertLOCAL cRegistrocRegistro = GetRowValue( oCGI:GetCGIValue( "borra" ) )WITH OBJECT oMsgAlert := WMsgAlert():New():lTagScript := .T.:cTitle := "¿Confirmar borrado?" + ToString(cRegistro:cID):cType := "info":cAjaxBevel := "nflcargo":cConfirmButton := 'Sí':cConfirmButtonIcon := 'exit_to_app':cOnConfirm := "cBorrarRegistro":aParams := { { "linea", cRegistro:cId} }:cCancelButton := "No":cCancelButtonIcon := "cancel":Create()ENDSendAjax( oMsgAlert:FullHtml() )RETURN NILy nos devuelve el código necesario para hacer el alert y la acción a realizar ( cOnConfirm )
12345678910111213FUNCTION cBorrarRegistro( )LOCAL oAltWITH OBJECT oAlt := WMsgAlert():New( ):cText := "Dato Borrado ":cType := "success":lShowConfirmButton := .t.:Create()END WITHSendAjaxScript( RemoveLine(oCGI:GetCGIValue("linea")) + oAlt:fullhtml())RETURN NIL12345678910111213141516171819202122232425262728293031323334FUNCTION SendAjax( cDato)with object oCgi:Send(""):Send( cDato )endRETURN NIL//-------------------------------------Function SendAjaxScript( cText , cModal , cFocus)IF !Empty(cModal)cText += cOpenModal( cModal)ENDIFIF !Empty(cFocus)cText += SetFocus( cFocus )ENDIFoCGI:send("")oCGI:send("<script>"+ crlf + cText + crlf + "</script>")RETURN NIL//----------------------------------------------Function cOpenModal( cName)RETURN '$("#'+cName+'").modal("open");' + crlf//----------------------------------------------Function SetFocus( cName)RETURN 'document.querySelector("#'+cName+'").focus();' + crlf//-------------------------------------FUNCTION RemoveLine( cLine )RETURN 'document.querySelector("#'+cLine+'").remove();'+crlf- Esta respuesta fue modificada 4 años, 3 meses por Alfredo Sanz.
-
19-08-2020 a las 05:37 #418ramonzeaParticipante
Estoy usando un wButton
123456789101112WITH OBJECT WButton():New( :WO ):cid := "aProd" + NToC(nId)//:lEnabled := aProducto[4] > 0:aWidth[xc_M] := 2:cIcon := "add_shopping_cart":cOnClick := "AgregaCarrito" //Si lo llamo directo lo llama por cada producto(:WO, aProducto):cAjaxBevel := "msgalert":aParams := { { "codigo", aProducto[1] },;{ "descrip", aProducto[2] };}:Create()End WithYa no marca error pero no logro que se vea el mensaje de resultado.
12345678910111213Function AgregaCarrito()Local cMsgLOCAL cCodigo := Trim(oCGI:GetCGIValue( "codigo" ))LOCAL cDescrip := Trim(oCGI:GetCGIValue( "descrip" ))IF ( SumaArticuloCarrito( cCodigo ) ) <-- Busco y grabo en una tabla o dbf el producto o le sumo 1cMsg := zMsgInfo( AsciiHTML("Añadido " + cDescrip ) ) <---Regresa el oAlert:FullHtml()ElsecMsg := zMsgInfo( AsciiHTML("Error al añadir " + cDescrip ) )EndoCgi:Send( "" )oCgi:Send( cMsg )Return ( Nil )Podría ser mi lógica que viene muy apegada el modo escritorio aún.
jejejejej
Saludos.
-
19-08-2020 a las 10:27 #419Alfredo SanzSuperadministrador
Ten en cuenta que el bevel que pongas en :cAjaxBevel (en tu caso msgalert) tiene que existir en el html
Existe un bevel especial llamado nflcargo , lo crea néfele automáticamente y te puede servir para estas cosas.
Prueba a poner :nAjaxBevel := "nflcargo"
-
19-08-2020 a las 15:30 #420ramonzeaParticipante
Gracias!!! Gracias!!! eso era, si tenía un wBevel y le puse id="msgalert", pero lo eliminé antes de tus sugerencias.
con nflcargo funciona correctamente.
Saludos.
-
19-08-2020 a las 16:08 #421Alfredo SanzSuperadministrador
Perfecto!!
Ramón, me gustaría poder contar con tu asistencia en la reunión sobre Néfele que estamos preparando para mañana
-
19-08-2020 a las 17:40 #423Eduardo TrasviñaParticipante
Hola Alfredo, Ramon, soy nuevo en este foro, estoy interesado en esta herramienta, si es posible me gustaria asistir a la reunion sobre nefele programada al parecer para este 20 de agosto, soy de Mexico.
-
19-08-2020 a las 18:43 #424Alfredo SanzSuperadministrador
Hola Eduardo. Bienvenido!!
Mándame un email a nefele4harbour@gmail.com y te mando el enlace de skype para la reunión.
-
-
-
AutorEntradas
- Debes estar registrado para responder a este debate.