ColumnView Y Selección De Campos


Objetivo: 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.

Perfil MP  
Objetivo: 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

Perfil MP  
Objetivo: 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....

Perfil MP  
Objetivo: 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
Perfil MP  
Objetivo: 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.

Perfil MP  
Objetivo: 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

Perfil MP  

Página 1 de 1


  
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

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1691s (PHP: 14% SQL: 86%)
Consultas SQL: 24 - Debug off - GZIP Activado