Foros Néfele 4 Harbour › Foros › Ejemplos › ArrayBrowse con mensaje de Alerta en OnClick
- Este debate tiene 2 respuestas, 3 mensajes y ha sido actualizado por última vez el 4 años, 1 mes por Alfredo Sanz. This post has been viewed 831 times
-
AutorEntradas
-
-
14-10-2020 a las 16:37 #1189XeviParticipante
Un ejemplo sencillo, mostrando un mensaje alerta (de los del sample Néfele) al presionar un Click en un registro
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566#include "Xailer.ch"#include "Nefele.ch"PROCEDURE ArrayBrowseAlertOnClick()With Object TWebPage():New():lAlerts := .T.WITH OBJECT WArrayBrowse():New(:WO):cId := "MiBrowse" // Id que le damos al ArrayBrowse:nStyle := xc_Striped // Estilo visual, con pautado pijama:cClrHeadPane := "#bfccc3" //"red lighten-4" // Le damos color a las cabeceras:cOnClick := "DatosRegistro" // En caso de picar en un elemento del ArrayBrowse:cAjaxBevel := "nflcargo":nIndexValue := 1// Añadimos ColumnasWITH OBJECT :AddCol( "Columna1" ) AS wItemColBrowse:cClrPane := "#bfccc3" //"blue darken-1" // Puedo darle color al fondo de la columna:cClrText := "white" // Y al Texto:cAlign := xc_RightEND WITHWITH OBJECT :AddCol( "Columna2" ) AS WItemColBrowse:lBold := .T. // Podemos asignar la letra en Negrita:cAlign := xc_LeftEND WITH:AddCol( "Columna3",,xc_Left)// Le alimentamos datos directamente:aItems := { { "Registro 1", "Lin1Col2", "Lin1Col3" },;{ "Registro 2", "Lin2Col2", "Lin2Col3" },;{ "Registro 3", "Lin3Col2", "Lin3Col3" } }// Y creamos el ArrayBrowse:Create()END WITHoCgi:SendPage( :Create() )End WithRETURNPROCEDURE DatosRegistro()Local cHtmlLocal oRegistro := GetRowValue( oCGI:GetCGIValue( "MiBrowse" ) )WITH OBJECT WMsgAlert():New():cText := AsciiHtml( oRegistro:cValue ):Create()cHtml := :FullHtml()END WITHoCGI:SendScript( cHtml )RETURN//Fredy te ha comentado el uso de una función que utiliza, pero que no esta aun incluida en Nefele, estaré en la proxima versión pero por ahora puedes incluirla en tu proyecto.FUNCTION GetRowValue( cDato )Local eRetorno// En cDato llega en indice (nIndexValue del browse que será el campo clave en la base de datos) y el id html de la linea para poder cambiarlacDato := hb_ATokens( cDato , "|" )WITH OBJECT eRetorno := TExsTruct():New():AddMember( "cValue"):AddMember( "cId"):cValue := cDato[1]:cId := cDato[2]ENDRETURN eRetornoUn Saludo,
Xevi.
- Este debate fue modificado 4 años, 1 mes por Xevi.
-
15-10-2020 a las 04:33 #1211juan.novedadesParticipante
Muy bueno Xevi, solo tuve que agregar lo siguiente en main.prg:
Method ArrayBrowseAlertOnClick InLine ArrayBrowseAlertOnClick()
Method DatosRegistro InLine DatosRegistro()Saludos Cordiales!
-
15-10-2020 a las 10:29 #1215Alfredo SanzSuperadministrador
Recordad:
Todas las funciones y procedimientos del cgi a las que accedamos desde el navegador (el procedure inicial, los que lanzamos al pulsar un botón, etc) así como los que llamamos por Ajax tienen que estar declarados en el enrutador del main.prg
123456Class TCgi FROM XCgiMETHOD ArrayBrowseAlertOnClick() Inline ArrayBrowseAlertOnClick()METHOD DatosRegistro() Inline DatosRegistro()END CLASSEn cambio, en este caso la función GetRowValue() no hace falta declararla en el enrutados, porque es una función a la que no accedemos "desde fuera" del Cgi, sino que la usamos internamente dentro del propio Cgi. Por lo tanto, no hace falta que la pongamos en el enrutador.
Os dejo el ejemplo funcionando en
https://samples.nefele.dev/cgi-bin/usuarios.exe?ArrayBrowseAlertOnClick
- Esta respuesta fue modificada 4 años, 1 mes por Alfredo Sanz.
-
-
AutorEntradas
- Debes estar registrado para responder a este debate.