In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Duda con edición de ListBox en columna de un browse

Foro público de Xailer en español
Responder
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Duda con edición de ListBox en columna de un browse

Mensaje por Bingen Ugaldebere »

Buenas compañeros.
A ver si alguien sabe por que pasa lo siguiente.
Tengo un DbBrowse con una columna que tiene nEditType=beLISTBOX y le he
asignado una lista de nombres en un aEditListText y otra lista de
códigos en aEditListBound, al igual que hago con muchos ComboBox.
Funcionar funciona pero en el browse me enseña los códigos, al añadir o
editar me saca los nombres y al salir de la edición me muestra el código.
Lo mismo que harí­a un ComboBox si no indico nDataType=dtBOUND pero aquí­
no hay manera de asignar esta propiedad puesto que no existe.
Deberí­a de existir esta propiedad o tengo que hacer algun truco para ver
los nombres.
Gracias y Salu2.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Duda con edición de ListBox en columna de un browse

Mensaje por ignacio »

Bingen Ugaldebere escribió el mar, 24 mayo 2011 13:30Buenas compañeros.
A ver si alguien sabe por que pasa lo siguiente.
Tengo un DbBrowse con una columna que tiene nEditType=beLISTBOX y le he
asignado una lista de nombres en un aEditListText y otra lista de
códigos en aEditListBound, al igual que hago con muchos ComboBox.
Funcionar funciona pero en el browse me enseña los códigos, al añadir o
editar me saca los nombres y al salir de la edición me muestra el código.
Lo mismo que harí­a un ComboBox si no indico nDataType=dtBOUND pero aquí­
no hay manera de asignar esta propiedad puesto que no existe.
Deberí­a de existir esta propiedad o tengo que hacer algun truco para ver
los nombres.
Gracias y Salu2.
No consigo entender tu problema, lo siento. Dinos como reproducirlo con algún ejemplo de Xailer. Gracias de antemano.
Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Duda con edición de ListBox en columna de un browse

Mensaje por Bingen Ugaldebere »

Gracias Ignacio pero preparar un ejemplo es tan sumamente complicado ya
que va todo son "Select" sobre base de datos MYSql que he desistido de
lo que querí­a hacer y lo he hecho de otra manera mas chapucera pero
funcional.
Gracias.
Avatar de Usuario
Carlos Ortiz
Mensajes: 872
Registrado: Mié Jul 01, 2009 5:44 pm
Ubicación: Argentina - Córdoba
Contactar:

Duda con edición de ListBox en columna de un browse

Mensaje por Carlos Ortiz »

Hola Bingen,
nosotros lo hacemos de la siguiente forma
en el cFieldName tengo idtipomedi
en el nEditType beListBox
en el OnCreate de la columna.
local oDataSet:=TOdbcDataSet():New()
oDataSet:Close()
oDataSet:=AppData:oSql:QU("select descripcion , idtipomedios from
tiposmedios order by descripcion" )
oDataSet:Open()
oSender:aEditListText := oDataSet:SaveToArray( {|Self, nArrayPos|
pad(::descripcion,30) } )
oSender:aEditListBound := oDataSet:SaveToArray( {|Self, nArrayPos|
::idtipomedios } )
en el OnGetData
ret := ""
IF ::oTiposmedios:DevolverPorID(ValoresDetalle->idtipomedi)
ret:=::oTiposmedios:descripcion
ENDIF
RETURN ret
la clase tipomedios que no viene mucho al caso es la siguiente:
/*
Clase Tiposmedios
Generada el 21-04-2010 12:50:54
*/
#include "Xailer.ch"
//---------------------------------------------------------- --------------------
CLASS Tiposmedios From TComponent
METHOD DevolverPorID( ID )
METHOD DevolverPorCodigo( codigo )
METHOD Actualizar()
METHOD Agregar()
METHOD Eliminar()
PROPERTY idtipomedios INIT 0
PROPERTY codigo INIT ""
PROPERTY descripcion INIT ""
ENDCLASS
//---------------------------------------------------------- --------------------
METHOD DevolverPorID( ID ) CLASS Tiposmedios
local ret:=.F.
local hArray:=AppData:oSql:QH( "select codigo,descripcion from
Tiposmedios where idtipomedios="+str(ID))
IF len(hArray)>0
::idtipomedios := ID
::codigo := hArray['codigo']
::descripcion := hArray['descripcion']
ret := .t.
ELSE
::New()
AppData:oSql:cError:="El registro que intenta modificar ya no existe
en la base de datos."
ENDIF
RETURN ret
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Duda con edición de ListBox en columna de un browse

Mensaje por Bingen Ugaldebere »

Gracias voy a intentar hacerlo de esta manera a ver que me sale.
El 02/06/2011 3:00, Carlos Ortiz escribió:
> Hola Bingen,
> nosotros lo hacemos de la siguiente forma
> en el cFieldName tengo idtipomedi
> en el nEditType beListBox
>
> en el OnCreate de la columna.
> local oDataSet:=TOdbcDataSet():New()
> oDataSet:Close()
> oDataSet:=AppData:oSql:QU("select descripcion , idtipomedios from
> tiposmedios order by descripcion" )
> oDataSet:Open()
> oSender:aEditListText := oDataSet:SaveToArray( {|Self, nArrayPos|
> pad(::descripcion,30) } )
> oSender:aEditListBound := oDataSet:SaveToArray( {|Self, nArrayPos|
> ::idtipomedios } )
>
> en el OnGetData
> ret := ""
> IF ::oTiposmedios:DevolverPorID(ValoresDetalle->idtipomedi)
> ret:=::oTiposmedios:descripcion
> ENDIF
> RETURN ret
>
>
>
> la clase tipomedios que no viene mucho al caso es la siguiente:
> /*
> Clase Tiposmedios
> Generada el 21-04-2010 12:50:54
> */
> #include "Xailer.ch"
> //---------------------------------------------------------- --------------------
>
> CLASS Tiposmedios From TComponent
> METHOD DevolverPorID( ID )
> METHOD DevolverPorCodigo( codigo )
> METHOD Actualizar()
> METHOD Agregar()
> METHOD Eliminar()
> PROPERTY idtipomedios INIT 0
> PROPERTY codigo INIT ""
> PROPERTY descripcion INIT ""
> ENDCLASS
>
> //---------------------------------------------------------- --------------------
> METHOD DevolverPorID( ID ) CLASS Tiposmedios
> local ret:=.F.
> local hArray:=AppData:oSql:QH( "select codigo,descripcion from
> Tiposmedios where idtipomedios="+str(ID))
> IF len(hArray)>0
> ::idtipomedios := ID
> ::codigo := hArray['codigo']
> ::descripcion := hArray['descripcion']
> ret := .t.
> ELSE
> ::New()
> AppData:oSql:cError:="El registro que intenta modificar ya no existe
> en la base de datos."
> ENDIF
> RETURN ret
>
>
Avatar de Usuario
MarceloAR
Mensajes: 24
Registrado: Dom Dic 01, 2019 2:38 pm
Ubicación: Argentina
Contactar:

Re: Duda con edición de ListBox en columna de un browse

Mensaje por MarceloAR »

Hola buenas tardes, siguiendo el hilo del post, a mi me ocurre lo mismo con respecto al combo en el browse.
Me pueden decir como se soluciona ?

Código: Seleccionar todo

   cSql := "SELECT id, nombre FROM clavesCategorias ORDER BY nombre"
   aData := AppData:Cnn:queryArray( cSql )
   for each a in aData
      AAdd( aDatID, a[1] )
      AAdd( aDatNom, a[2] )
   next
   WITH OBJECT ::oBrw:aCols[5]
       :nEditType      := beLISTBOX
       :aEditListText  := aDatNom
       :aEditListBound := aDatID
   END WITH
Saludos
Marcelo Roggeri
Argentina
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Duda con edición de ListBox en columna de un browse

Mensaje por ignacio »

Hola,

Sin escribir una sola línea de código.

Saludos
Adjuntos
ArrayBrowse.zip
(3.21 KiB) Descargado 122 veces
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
MarceloAR
Mensajes: 24
Registrado: Dom Dic 01, 2019 2:38 pm
Ubicación: Argentina
Contactar:

Re: Duda con edición de ListBox en columna de un browse

Mensaje por MarceloAR »

Te adjunto la imagen, como se puede observar no muestra el nombre de la forma de pago.
Eso mismo me ocurre en mi proyecto.
Imagen
osea en lugar del 1 deberia verse el Uno osea la descripcion o nombre
Marcelo Roggeri
Argentina
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Duda con edición de ListBox en columna de un browse

Mensaje por ignacio »

Buenos días,

Lo siento, pero no estoy de acuerdo. Una cosa es como se edita y otra muy distinta es como se visualiza. No tiene nada que ver. Si quiere que salga el texto tendrá que atrapar el evento OnBrowseModDrawCell(). Adjunto imagen:
Imagen 075.png
Imagen 075.png (28.11 KiB) Visto 2000 veces
Si no lo consigue le mando el código (3 líneas), pero creo que es bueno que lo intente por su cuenta primeramente.

Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
MarceloAR
Mensajes: 24
Registrado: Dom Dic 01, 2019 2:38 pm
Ubicación: Argentina
Contactar:

Re: Duda con edición de ListBox en columna de un browse

Mensaje por MarceloAR »

Sr Ignacio ten en cuenta que estoy dando mis primeros pasos, en samples busque y no encontré ejemplos de lo que necesito.
Aun no he hecho mi primer proyecto completo, le estoy dedicando el 100% de mi tiempo a Xailer desde hace 2 meses.
Estoy haciendo cosas que jamás pensé haría con Xailer, toda la ayuda es bienvenida ya que el tiempo es nuestro mayor costo, soy de aprender rápido mirando.
De todas maneras lo voy a intentar por ese lado no creo que sea algo muy difícil el tema es conocer o descubrir el camino de cada cosa.
Un saludo, sino lo logro le pediré el trozo de código.
P.D. como esto, tengo varias inquietudes que me voy quedando estancado.
Pero voy a ir de cosa por cosa para ir aprendiendo y descartando y no morir en el intento una vez mas.
Marcelo Roggeri
Argentina
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Duda con edición de ListBox en columna de un browse

Mensaje por ignacio »

Buenos días,

Le recomiendo que revise la gran cantidad de ejemplos que incluye Xailer y cuando vea algo que no comprende, no lo aparque, indague y por último, pregunte en el foro. Los conocimientos de Harbour y otros entornos de desarrollo basados en Harbour no son suficientes para ser 100% operativos con Xailer. Existe una curva de aprendizaje, que es mayor, cuanto menos se ha utilizado la programación orientada a objetos y la programación no procedural basada en eventos. Todo es cuestión de adaptarse al nuevo sistema. Dese tiempo, sino lo hace así, es muy probable que en breve plazo tenga que volver a rehacer su primera aplicación en Xailer desde cero. Ese es mi consejo.

Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
MarceloAR
Mensajes: 24
Registrado: Dom Dic 01, 2019 2:38 pm
Ubicación: Argentina
Contactar:

Re: Duda con edición de ListBox en columna de un browse

Mensaje por MarceloAR »

Buenas tardes, bueno ahi se pudo avanzar, muestro la imagen, que con 3 lineas de código se pudo reemplazar el id por el texto pero al entrar en modo edición haciendo doble click me muestra el id del pago en lugar de mostrar el texto.

Código: Seleccionar todo

METHOD BrowseMod1DrawCell( oSender, oCol, nIndex, xValue, cValue, nImage, nClrText, nClrPane, nState, hDC, aRect ) CLASS TForm1
   IF oCol:nDataCol == 5
      cValue := oCol:aEditListText[xValue]
   ENDIF
RETURN Nil
Alguna idea para seguir avanzando ?
Imagen
Marcelo Roggeri
Argentina
Responder