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 4 años, 2 meses por juan. This post has been viewed 742 timesnovedades. This post has been viewed 742 times
-
AutorEntradas
-
-
05-10-2020 a las 02:32 #981juan.novedadesParticipante
Buenas 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 #991Alfredo SanzSuperadministrador
Al 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 #993juan.novedadesParticipante
Funciono 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 #994XeviParticipante
En 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 #996juan.novedadesParticipante
Hola Xevi gracias por el tip pero ya probe quitandola pero sigue sin localizar la funcion. Saludos Cordiales.
-
06-10-2020 a las 11:33 #1004Pedro AmaroSuperadministrador
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.
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 #1016juan.novedadesParticipante
Genial, muchas gracias por el dato! Integrada y funcionando.
Saludos cordiales.
- Esta respuesta fue modificada 4 años, 2 meses por juan.novedades.
-
-
AutorEntradas
- Debes estar registrado para responder a este debate.