|
Página 1 de 1
|
ColumnView Y Selección De Campos
Autor |
Mensaje |
Ninfus
Usuario
Registrado: Diciembre 2010
Mensajes: 9
Edad: 52
|
ColumnView Y Selección De Campos
Hola de nuevo.
Tengo un form con un columnview que muestra la información contenida en una BD SQLite. Tengo en el mismo Form un TextBox y un Button para realizar búsquedas. La BD tiene 100 registros de equipos, los cuales se muestran correctamente en el columnview. La búsqueda la hago con un query que busca, valga la redundancia, en la tabla de la BD el campo "hostname" y me muestra los resultados asociados en el mismo Columnview. Es decir, de los 100 registros iniciales mostrados por el columnview, una vez realizada la búsqueda, solamente me muestra 1, el que yo busqué.
Lo que quiero hacer:
Realizar esa misma búsqueda, pero que, una vez se encuentre el registro solicitado, me lo muestre "marcado", "seleccionado" o cualquier sinónimo que se os ocurra entre los 100 registros. Es decir, una vez realizda la busqueda y encontrado el dato, éste debe de aparecer "resaltado" entre los 100 restantes.
Espero haber sido claro esta vez y pues, una vez más agradezco de antemano cualquier orientación al respecto.
Gracias.
|
#1 Domingo, 19 Diciembre 2010, 19:05 |
|
|
ahtonio
Programador
Registrado: Octobre 2009
Mensajes: 144
Edad: 58 Ubicación: Zaragoza
|
Re: ColumnView Y Selección De Campos
Hola, yo eso no lo haría con un ColumnView, no obstante creo que es lo mismo para un TableView o GridView. Sacado de la ayuda - F1
ColumnView.MoveTo (gb.qt)
Syntax
FUNCTION MoveTo ( Key AS String ) AS Boolean
Moves the internal cursor to a specified item.
Returns TRUE if the item does not exist.
Esto debe seleccionarlo y por lo tanto resaltarlo.
Antonio
xxx
|
#2 Martes, 21 Diciembre 2010, 17:27 |
|
|
Ninfus
Usuario
Registrado: Diciembre 2010
Mensajes: 9
Edad: 52
|
Re: ColumnView Y Selección De Campos
Muchas gracias Ahtonio
Entiendo que debo de averiguar el nº de key correspondiente al campo, capturarlo en una variable y hacer un MoveTo hacia el nº de key capturado.
Pensaba que habría una forma más sencilla....
|
#3 Martes, 21 Diciembre 2010, 20:09 |
|
|
ahtonio
Programador
Registrado: Octobre 2009
Mensajes: 144
Edad: 58 Ubicación: Zaragoza
|
Re: ColumnView Y Selección De Campos
Hola de nuevo. Cuando tu insertas o añades un item en el columnview lo haces así
miColumnV.Add(mikey, turesult!Hostname)
El mikey, probablemente será el id que tengas en tu base de datos u otra referencia que sera clave única.
Ese es el key que usarás. No tienes que buscar nada pues ya lo has puesto.
ColumnView.Add (gb.qt)
Syntax
FUNCTION Add ( Key AS String, Text AS String [ , Picture AS Picture, Parent AS String, After AS String ] ) AS .ColumnViewItem
Adds an item to the view.
* Key is the key of the new item.
* Text is the text of the new item.
* Picture is the picture displayed besides the item. By default, no picture is displayed.
* Parent is the key of the parent item where the item will be inserted. By default, the new item is a root item.
* After is the key of an item that the new item will directly follows. This item and the new item must have the same parent. By default, the new item become the last child of its parent.
The newly created item is returned.
Si pones el codigo que usas es posible que te ayude pero como no se la forma de insertar los items, no puedo decirte que función podrías emplear para hacer la selección. Ten en cuenta que cuando selecciones en el columnview el item que queda, perderás el foco del textbox y no podrás seguir escribiendo y ahí es donde no entiendo para que el Columnview con un solo item seleccionado y con un textbox con el mismo texto que en el columnview.
Perdon si no te entiendo.
Antonio
xxx
última edición por ahtonio el Martes, 21 Diciembre 2010, 20:21; editado 1 vez
|
#4 Martes, 21 Diciembre 2010, 20:19 |
|
|
Ninfus
Usuario
Registrado: Diciembre 2010
Mensajes: 9
Edad: 52
|
Re: ColumnView Y Selección De Campos
Este es el código que crea las columnas y muestra los datos:
DIM i AS Integer
Frame1.Visible = FALSE
ColumnView1.Refresh
ColumnView1.Clear
ColumnView1.Columns.Count = 8
ColumnView1.Columns[0].Text = "Hostname"
ColumnView1.Columns[0].Width = 100
ColumnView1.Columns[0].Alignment = 1
ColumnView1.Columns[1].Text = "Dirección IP"
ColumnView1.Columns[1].Width = 150
ColumnView1.Columns[1].Alignment = 1
ColumnView1.Columns[2].Text = "Hostid"
ColumnView1.Columns[2].Width = 100
ColumnView1.Columns[2].Alignment = 1
ColumnView1.Columns[3].Text = "Ubicación"
ColumnView1.Columns[3].Width = 100
ColumnView1.Columns[3].Alignment = 1
ColumnView1.Columns[4].Text = "Proyecto"
ColumnView1.Columns[4].Width = 150
ColumnView1.Columns[4].Alignment = 1
ColumnView1.Columns[5].Text = "Marca"
ColumnView1.Columns[5].Width = 100
ColumnView1.Columns[5].Alignment = 1
ColumnView1.Columns[6].Text = "Modelo"
ColumnView1.Columns[6].Width = 100
ColumnView1.Columns[6].Alignment = 1
ColumnView1.Columns[7].Text = "Sistema Op."
ColumnView1.Columns[7].Width = 150
ColumnView1.Columns[7].Alignment = 1
Resultado = Conexion.Exec("select * from equipos order by Hostname")
FOR i = 0 TO Resultado.Count - 1 STEP +1
ColumnView1.Add(i, Resultado!Hostname)
ColumnView1[i][1] = Resultado!IP1
ColumnView1[i][2] = Resultado!Hostid
ColumnView1[i][3] = Resultado!Ubicacion
ColumnView1[i][4] = Resultado!Proyecto
ColumnView1[i][5] = Resultado!Marca
ColumnView1[i][6] = Resultado!Modelo
ColumnView1[i][7] = Resultado!Sistema_Operativo
Resultado.MoveNext
NEXT
Lo que quiero hacer es una búsqueda y que el resultado lo resalte.
|
#5 Martes, 21 Diciembre 2010, 20:40 |
|
|
ahtonio
Programador
Registrado: Octobre 2009
Mensajes: 144
Edad: 58 Ubicación: Zaragoza
|
Re: ColumnView Y Selección De Campos
Hola, he estado un poco desconectado y no dispongo del interprete para probarlo, no obstante, la solución más rápida que veo es así:
Aprovechando tu código:
DIM i AS Integer
Frame1.Visible = FALSE
ColumnView1.Refresh
ColumnView1.Clear
ColumnView1.Columns.Count = 8
ColumnView1.Columns[0].Text = "Hostname"
ColumnView1.Columns[0].Width = 100
ColumnView1.Columns[0].Alignment = 1
ColumnView1.Columns[1].Text = "Dirección IP"
ColumnView1.Columns[1].Width = 150
ColumnView1.Columns[1].Alignment = 1
ColumnView1.Columns[2].Text = "Hostid"
ColumnView1.Columns[2].Width = 100
ColumnView1.Columns[2].Alignment = 1
ColumnView1.Columns[3].Text = "Ubicación"
ColumnView1.Columns[3].Width = 100
ColumnView1.Columns[3].Alignment = 1
ColumnView1.Columns[4].Text = "Proyecto"
ColumnView1.Columns[4].Width = 150
ColumnView1.Columns[4].Alignment = 1
ColumnView1.Columns[5].Text = "Marca"
ColumnView1.Columns[5].Width = 100
ColumnView1.Columns[5].Alignment = 1
ColumnView1.Columns[6].Text = "Modelo"
ColumnView1.Columns[6].Width = 100
ColumnView1.Columns[6].Alignment = 1
ColumnView1.Columns[7].Text = "Sistema Op."
ColumnView1.Columns[7].Width = 150
ColumnView1.Columns[7].Alignment = 1
Resultado = Conexion.Exec("select * from equipos order by Hostname")
FOR EACH Resultado
ColumnView1.Add(Resultado.Index, Resultado!Hostname)
ColumnView1[i][1] = Resultado!IP1
ColumnView1[i][2] = Resultado!Hostid
ColumnView1[i][3] = Resultado!Ubicacion
ColumnView1[i][4] = Resultado!Proyecto
ColumnView1[i][5] = Resultado!Marca
ColumnView1[i][6] = Resultado!Modelo
ColumnView1[i][7] = Resultado!Sistema_Operativo
NEXT
Según entiendo, tienes un textbox que pones el Hostname y necesitas que se resalte ese Item en el ColumnView:
Busco el Index en el Result
FOR EACH Resultado
IF Resultado!Hostname = TextBoxH.Text THEN
ColumnView1.MoveTo(Resultado.Index)
ColumnView1.SelectAll(True) 'Si quieres iluminar todo
BREAK 'Sales ¿Para que seguir recorriendo el Result?
ENDIF
NEXT
Un saludo,
Antonio
|
#6 Jueves, 23 Diciembre 2010, 13:24 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|