PROBLEMA CON LISTBOX cuando el valor es NUMERICO

187 views
Skip to first unread message

gcard...@gmail.com

unread,
Apr 9, 2023, 4:31:12 PM4/9/23
to Comunidad de Visual Foxpro en Español
Buenas tardes comunidad.  Ayer desarrollando un proyecto requeri usar un  Listbox (dropdown-list) donde el valor a retonar en el controlsource es numerico desde la segunda columna del listbox.  Basicamente desde una tabla de provinicas o estados y se requiere retornar el ID (integer) de la provincia o estado para guardarlo en otra tabla.  Primero no lograba que me devolviera el id de la tabla de provincia.  Finalmente despues de muchas prueba y leer encontre que cuando el valor a devolver es numerico se debe poner la propiedad BOUNDTO en verdadero, sino devuelve el listindex (consecutivo en la lista). Con este ajuste logre que me devolviera el valor del id de provinicas en el control listbox, pero quedo con un problema. Apenas se cierra el dropdow list escogiendo el registro, el textbox del control queda en blanco. y si avanzo al campo sigiente y regreso se pierde el valor obtenido y vuelve a quedar al inicio de la lista.  Tambien encontre que si le doy doble click con el mouse finalmente muestra el texbox del control y ya empieza a comportarse normal. A mi parecer es un Bug de foxpro. 
Yo estoy trabajndo con visual foxpro v 9 sp3 (inclusive).  Windows 10 22h2 compliacion 19045.2728. Inicialmente arranque con un rowsourcetype de 2-alias pero probe con 6-fields y con 5-array ademas asigne el value inicial del control en numerico y el comportamiento siguio igual.
Quisiera saber si ha alguien le ha pasado esto y si hay algun workaround (truco) para corregirlo.
Agradezco de antemano la ayuda 

Att

Guido Cardona

ZeRoberto

unread,
Apr 9, 2023, 8:22:13 PM4/9/23
to publicesvfoxpro
Pregunta es listbox o combobox, lo tienes en un formulario o dentro de un grid

Saludos

Ze


--
Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/604c3bcd-52ec-4585-8ff4-e5e197f56d83n%40googlegroups.com.

GUIDO CARDONA

unread,
Apr 11, 2023, 5:55:42 PM4/11/23
to publice...@googlegroups.com
Es un combox (dropdownlist) style =2lista desplegable. Esta solo en un form fuera de un grid

Guido

ZeRoberto

unread,
Apr 11, 2023, 10:43:08 PM4/11/23
to publicesvfoxpro
Me pudieras explicar el truco para que te devuelva el id, yo normalmente lo hago asi

Combobox.BoundTo = .T.
Combobox.BoundColumn = 2
Combobox.RowSource = "dbBancos.Descripcion, BancoID"
Combobox.RowSourceType = 6
Combobox.CoumnCount = 0
Combobox.Value = 1

Saludos

Ze




GUIDO CARDONA

unread,
Apr 12, 2023, 12:29:47 AM4/12/23
to publice...@googlegroups.com
Saludos, basicamente es el uso del boundto en verdadero pero adicionalmente en el lostfocus asigno el valor del rowsource al value del campo en el formulario,adicionalmente asigno el displayvalue desde la tabla origen en el caso tuyo el nombre del banco. Soloq ueda un bug y es que al cerrar el drowdown o moverse a otro campo queda en blanco el textbox del control (el displayvalue) pero lo corrijo asignando del displayvalue en el lostfocus desde la tabla origen del control


integral

unread,
Apr 13, 2023, 4:02:59 PM4/13/23
to Comunidad de Visual Foxpro en Español
Estimado :

Buscando  información, encontré un articulo hace una semana que trata de como almacenar valores numericos en un ComboBox

Le dejo el link que le menciono.


PD : RECOMIENDA UTILIZAR UNA PROPIEDAD Y ASIGNAR DICHO VALOR A DICHA PROPIEDAD Y ALGUNOS DETALLES MAS QUE INDICA EL ARTICULO

Hasta la próxima.

Atte.,

Integral

Antonio Meza

unread,
Apr 13, 2023, 5:08:01 PM4/13/23
to Comunidad de Visual Foxpro en Español
Para obtener el valor del segundo campo del combo lo puedes hacer así en el evento VALID() del combo

id = VAL( this.ListItem( this.ListIndex, 2 )

Pero no entiendo porque hacer eso si el combo esta ligado a un cursor y es mas fácil obtener el valor del ID del cursor dentro del evento Valid() del combobox, incluso no es necesario mostrar el id en el combo ni usar BountTo y esas cosas raras de la vida jejejejejeje

id =  dbBancos.BancoID

saludos
Antonio Meza

gcard...@gmail.com

unread,
Apr 13, 2023, 9:39:19 PM4/13/23
to Comunidad de Visual Foxpro en Español
Ok hay varias formas de obtener el id numerico de la 2 columna pero el real problema es que el al cerrarse el list del combo el texto que queda mostrando el valor escogido (columna 1)
se limpia y queda en blanco. Es un bug (ya en sp3) y eso es molesto para el usuario. La idea es encontrar algun comportamiento que corrija el Bug.

Antonio Meza

unread,
Apr 13, 2023, 10:38:11 PM4/13/23
to Comunidad de Visual Foxpro en Español
Descarga el ejemplo que puse en este tema sobre el uso del Combo!! y prueba si tienes el mismo problema.

https://groups.google.com/g/publicesvfoxpro/c/ppvX0PyXUrc

saludos
Antonio Meza

integral

unread,
Apr 14, 2023, 4:10:54 PM4/14/23
to Comunidad de Visual Foxpro en Español
Estimado Amigo Guido :

Si aun sigues con el problema que mencionas en el ComboBox, podrias mostrar el codigo que estas aplicando en dicho control.

O tal vez un pequeño formulario de ejemplo donde revisar el problema presentado que nos comentas.

Atte.,

Integral
Reply all
Reply to author
Forward
0 new messages