Autor |
Mensaje |
calcena
Ingeniero Programador
Registrado: Julio 2016
Mensajes: 272
Edad: 47
|
[SOLUCIONADO] Valor De Un Combobox
Buenas noches a todos,
cómo puedo obtener el Value, Index (manual) en un control ComboBox, ListBox
cmbPrioridad.Clear
cmbPrioridad.Add("Todos", 0)
cmbPrioridad.Add("Ok", 1)
cmbPrioridad.Add("Ko", 2)
cmbPrioridad.Add("Warning", 555)
cmbPrioridad.Add("Critical",
si selecciono el 4 item me devuelve el orden de la lista indexada en base 0, pero yo o que quiero es que me devuelva 555, o también pude ser que no esté utilizando bien alguna propiedad o incluso el control que necesito.
sPrioridad = cmbPrioridad.Index
Saludos y gracias.
última edición por calcena el Martes, 14 Agosto 2018, 19:27; editado 3 veces
|
#1 Viernes, 10 Agosto 2018, 20:44 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Valor De Un Combobox
El parámetro "Index" del Método ".Add( )" del ComboBox sólo es útil y necesario si tú deseas insertar un ítem en un específico elemento ya ocupado; o mejor, para reposicionar aquel item.
Para obtener el index del item selecto:
Public Sub Form_Open()
ComboBox1.Add("Todos")
ComboBox1.Add("Ok")
ComboBox1.Add("Ko")
ComboBox1.Add("Warning")
ComboBox1.Add("Critical")
End
Public Sub ComboBox1_Click()
Print ComboBox1.Index
End
última edición por vuott el Viernes, 10 Agosto 2018, 22:51; editado 1 vez
|
#2 Viernes, 10 Agosto 2018, 22:48 |
|
|
calcena
Ingeniero Programador
Registrado: Julio 2016
Mensajes: 272
Edad: 47
|
Re: Valor De Un Combobox
El parámetro "Index" del Método ".Add( )" del ComboBox sólo es útil y necesario si tú deseas insertar un ítem en un específico elemento ya ocupado; o mejor, para reposicionar aquel item.
Para obtener el index del item selecto:
Public Sub Form_Open()
ComboBox1.Add("Todos")
ComboBox1.Add("Ok")
ComboBox1.Add("Ko")
ComboBox1.Add("Warning")
ComboBox1.Add("Critical")
End
Public Sub ComboBox1_Click()
Print ComboBox1.Index
End
Vale, reformulo la pregunta, ya que creo que no se ha entendido correctamente.
Quiero que cada opción de un combobox tenga un valor y un texto, pero que solo se muestre el texto
Valor=3 texto=ejemplo
Valor=9 texto=otro ejemplo
Cómo puedo ontener el valor y no el texto?? Y que propiedad sirve para almavenar el valor. key.
Saludos.
|
#3 Sabado, 11 Agosto 2018, 08:09 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Valor De Un Combobox
[
Vale, reformulo la pregunta, ya que creo que no se ha entendido correctamente.
Quiero que cada opción de un combobox tenga un valor y un texto, pero que solo se muestre el texto
Valor=3 texto=ejemplo
Valor=9 texto=otro ejemplo
Cómo puedo ontener el valor y no el texto?? Y que propiedad sirve para almavenar el valor. key.
Saludos.
Prácticamente todos los controles de gambas tienen la propiedad .tag (etiqueta) que es una variable de tipo Variant, o sea, que puede almacenar cualquier cosa. Así en un combobox puedes, por ejemplo, hacer esto.
Public Sub Form_Open()
Combobox1.tag=new integer[]
ComboBox1.Add("Todos")
combobox1.tag.Add(1)
ComboBox1.Add("Ok")
combobox1.tag.Add(5)
ComboBox1.Add("Ko")
combobox1.tag.Add(100)
ComboBox1.Add("Warning")
combobox1.tag.Add(146)
ComboBox1.Add("Critical")
combobox1.tag.Add(777)
End
Public Sub ComboBox1_Click()
Print combobox1.tag[ComboBox1.Index]
End
=================== No podemos regresar
|
#4 Sabado, 11 Agosto 2018, 09:12 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Valor De Un Combobox
Quiero que cada opción de un combobox tenga un valor y un texto, pero que solo se muestre el texto
Valor=3 texto=ejemplo
Valor=9 texto=otro ejemplo
Cómo puedo ontener el valor y no el texto?
Es decir que el ComboBox tienes que muestrar solo el texto de un item, pero cuando se seleciona un item, el ComboBox tiene que devolver solo un valor numérico ?
|
#5 Sabado, 11 Agosto 2018, 13:40 |
|
|
calcena
Ingeniero Programador
Registrado: Julio 2016
Mensajes: 272
Edad: 47
|
Re: [SOLUCIONADO] Valor De Un Combobox
Efectivamente vuott eso es lo que necesito, aunque ya lo tengo solucionado tal como ha indicado shordi.
Ahora tengo un problemilla, y es que cómo puedo recuperar un item por el tag.
Detallo mi consulta:
almaceno el ID de una acción en una tabla
ID_ROL 6
NOMBRE supervisor
Bien con el tema del TAG puedo cargar un control desde un recordset. Pues bien al recuperar cómo puedo recuperar desde rstResultado!ID_ROL ???
combo.Tag= rstResultado!ID_ROL
Saludos y gracias.
|
#6 Lunes, 13 Agosto 2018, 21:09 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: [SOLUCIONADO] Valor De Un Combobox
...cómo puedo recuperar un item por el tag.
Siguiendo la sugerencia de shordi, tienes que considerar que la lista de los "item"es un array como aquella de .Tag !
...y por esto tú podrías usar el Método .Find( ) dell'array que devuelve el indice del array donde está el valor que vas buscando; y así usarlo al array de la lista de los ítem, para conseguir el ítem correspondiente a aquel índice.
http://gambaswiki.org/wiki/comp/gb/integer[]/find
Es decir...
Public Sub Form_Open()
Combobox1.tag = New Integer[]
ComboBox1.Add("Todos")
combobox1.tag.Add(1)
ComboBox1.Add("Ok")
combobox1.tag.Add(5)
ComboBox1.Add("Ko")
combobox1.tag.Add(100)
ComboBox1.Add("Warning")
combobox1.tag.Add(146)
ComboBox1.Add("Critical")
combobox1.tag.Add(777)
End
Public Sub Button1_Click()
Print ComboBox1[ComboBox1.Tag.Find(Val(InputBox("Inserta el valor contenido en un elemento del .Tag......")))].Text
End
última edición por vuott el Lunes, 13 Agosto 2018, 23:05; editado 6 veces
|
#7 Lunes, 13 Agosto 2018, 22:28 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Valor De Un Combobox
Citar: Pues bien al recuperar cómo puedo recuperar desde rstResultado!ID_ROL ???
combo.Tag= rstResultado!ID_ROL
No entiendo qué quieres decir con "al recuperar". Explícate un poco
=================== No podemos regresar
|
#8 Martes, 14 Agosto 2018, 08:06 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Valor De Un Combobox
De todas formas, páste por éste hilo y échale un ojo a los dbControles. Creo que lo que estás buscando es un dbComboBox...
https://foro.gambas-es.org/viewtopic.php?f=5&t=4220
=================== No podemos regresar
|
#9 Martes, 14 Agosto 2018, 08:10 |
|
|
calcena
Ingeniero Programador
Registrado: Julio 2016
Mensajes: 272
Edad: 47
|
Re: Valor De Un Combobox
Citar: Pues bien al recuperar cómo puedo recuperar desde rstResultado!ID_ROL ???
combo.Tag= rstResultado!ID_ROL
No entiendo qué quieres decir con "al recuperar". Explícate un poco
Vale ..voy a ello, a ver si consigo explicar mi necesidad.
Teniendo un control ComboBox con la propiedad TAG podemos asociar un valor a un elemento/Item tal como me has comentado shordi (TAG -> 55 Texto que aparece en el combobox -> "esto es gambas" )
Si esto lo guardamos en una tabla, lógicamente guardamos el ID_SELECCION = 55.
Pues bien si estamos en modo mantenimiento de tablas, CRUD, edición ...como le queramos llamar. Al pulsar sobre un item de un Gridview obtenemos por Resultset los valores recuperados para representar en la pantalla (controles), pues bien si he recuperado el valor 55 de la tabla, cómo se puede hacer para que el combo pase a ser esto es gambas??
Gracias por las respuestas.
|
#10 Martes, 14 Agosto 2018, 12:18 |
|
|
|