Foros Néfele 4 Harbour › Foros › Dudas › Dudas con paso de parametros
Etiquetado: WBrowse
- Este debate tiene 6 respuestas, 4 mensajes y ha sido actualizado por última vez el 5 años por
juan. This post has been viewed 1041 timesnovedades. This post has been viewed 1041 times
-
AutorEntradas
-
-
05-10-2020 a las 02:32 #981
juan.novedadesParticipanteBuenas tardes, iniciando con este proyecto mas que interesante con operaciones basicas, tengo un llamada en el onclick a otra pagina desde un arraybrowse de la siguiente manera:
1234567WITH OBJECT WArrayBrowse():New( :WO ):cId := "Bancos" // Id que le damos al ArrayBrowse:nStyle := xc_Striped // Estilo visual, con pautado pijama:cClrHeadPane := "red lighten-4" // Le damos color a las cabeceras:cOnClick := "EditarClasificacion" // MainFunction" // "VisParam" // En caso de picar en un elemento del ArrayBrowse:cClrHeadPane := "green lighten-2":nStyle := xc_HighlightAgrega el siguiente codigo en el Main.Prg
123456789Class TCgi From XCgiMethod MainFunction InLine MainPage()Method Clasificaciones InLine Clasificaciones()Method EditarClasificacion InLine EditarClasificacion()Method AgregaClasificacion InLine AgregaClasificacion()// Method BorrarClasificacion InLine BorrarClasificacion()End ClassY en el EditarClasificacion.Prg al inicio esta esto:
123456789Procedure EditarClasificacion()Local aDatosLOCAL cCodigo := oCGI:GetCgiValue( "Bancos" )// Local cX := oCgi:GetCgiArray( cparametro )LOCAL hParam := oCGI:aParamsToHash(.F.)//oCGI:Console( cCodigo )oCGI:Console( hParam["FUNCTION","value"] )Y ahi esta la duda... como obtengo los valores del renglon seleccionado en el arraybrowse ?
De antemano muchas gracias!
-
05-10-2020 a las 16:09 #991
Alfredo SanzSuperadministradorAl ArrayBrowse le tienes que informar de la columna que quieres que actúe como campo clave, y que será el valor que te retorne
Eso se hace con la propiedad :nIndexValue
12WITH OBJECT oBrowse := WArrayBrowse():New( :WO ):nIndexValue := 1después, en EditarClasificacion() pones
12Local cRegistrocRegistro := oCGI:GetCGIValue( "Bancos" ) //El :cID del ArrayBrowselo que te devolverá una cadena con <valor columna informada en nIndexValue> | < id de la fila html>
si haces un oCGI:Console( cRegistro ) , el nefele console te devolverá algo así como "003|bancos_lin2"También puedes hacer
123oRegistro := GetRowValue( cRegistro )oCGI:Console(oRegistro:cValue)oCGI:Console(oRegistro:cId)que como ves, te devuelve una estructura donde
:cValue -> valor de nIndexValue de la fila
:cId -> id de la fila (el <tr>) correspondiente dentro de la tablaDe esta forma tienes el id del registro seleccionado para poder consultar en la base de datos y el id de la fila en la que te encuentras para poder poner o extraer la información
-
05-10-2020 a las 16:45 #993
juan.novedadesParticipanteFunciono perfecto la linea: cRegistro := oCGI:GetCGIValue( "Bancos" ) //El :cID del ArrayBrowse
Pero la linea: oRegistro := GetRowValue( cRegistro ) al momento de compilar marca "undefined reference to 'HB_FUN_GETROWVALUE'" en xailer tengo la version personal "6.2.0" y la version de Nefele es la "1.3" el proyecto tiene enlazadas las librerias "wClassNefele" y "NefeleProject" me falta algo mas?
Saludos Cordiales.
-
05-10-2020 a las 16:49 #994
XeviParticipanteEn la versión de Nefele 1.3 debes de quitar la lib wClassNefele del proyecto.
No se si será ese el error.
Un Saludo,
Xevi.
-
05-10-2020 a las 17:02 #996
juan.novedadesParticipanteHola Xevi gracias por el tip pero ya probe quitandola pero sigue sin localizar la funcion. Saludos Cordiales.
-
06-10-2020 a las 11:33 #1004
Pedro AmaroSuperadministradorFredy 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.
1234567891011FUNCTION 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 eRetorno -
06-10-2020 a las 19:15 #1016
juan.novedadesParticipanteGenial, muchas gracias por el dato! Integrada y funcionando.
Saludos cordiales.
-
Esta respuesta fue modificada 5 años por
juan.novedades.
-
Esta respuesta fue modificada 5 años por
-
-
AutorEntradas
- Debes estar registrado para responder a este debate.