Problema con listview

20/02/2004 - 16:57 por JD | Informe spam
Hola foro, tengo un problemita que explico a continuacion...

Tengo un formulario, una caja de texto, y un listview... ahora, lo que
quiero es que al momento de yo ir tecleando una palabra en la caja de texto
hacer una busqueda incremental en el control listview. mi control listview
consta de 2 columnas, una con un numero de control mismo que uso en el campo
key del listview, y la segunda columna, es el nombre de la persona a la que
esta asignado ese numero de control. Lo que yo quiero es teclear el nombre
de la persona y que el control listview se vaya localizando en el renglon
donde va coincidiendo lo que tecleo en el textbox.

Lei sobre el metodo Finditem del listview, pero no funciona puesto que busca
por el campo Key. tambien dice que busca en la propiedad Tag y en los
subitems, pero esto no es cierto puesto que no funciona o no se que estoy
haciendo mal.

Ayudenme, ya estoy desesperado pues necesito hacer eso.

Saludos

JD.

Preguntas similare

Leer las respuestas

#1 Víctor B.
21/02/2004 - 13:04 | Informe spam
Tienes toda la razón, lo he probado también con VB6 y tampoco funciona, debe
ser un "Bug" no documentado, de todas formas puedes implementar tu propio
FindItem. Este sería un pequeño ejemplo chabacano:
Suponiendo que tienes en un formulario un ListView llamado 'lst' y un
TextBox llamado Text1, en el evento KeyPress del TextBox estaría el
siguiente código:
LPARAMETERS nKeyCode, nShiftAltCtrl
LOCAL oITEM, sTXT, nH

*!* Primero recogemos la tecla pulsada del buffer del teclado
=DODEFAULT()

*!* Quitamos los espacios sobrantes
m.sTXT=ALLTRIM(THIS.Text)

IF LEN(m.sTXT)>0 THEN
*!* Empieza la búsqueda
FOR nH=1 TO THISFORM.LSt.ListItems.Count
IF THISFORM.LSt.ListItems(nH).SubItems(1)=m.sTXT THEN
*!* Si lo encuentra(suponiendo que SET EXACT está en OFF, lo hace
visible y lo selecciona
THISFORM.LSt.ListItems(nH).EnsureVisible()
THISFORM.LST.ListItems(nH).Selected=.T.
ENDIF
NEXT
ENDIF
*!* Impedimos que se ejecute el código de la Clase, si no se duplicaría la
tecla pulsada.
NODEFAULT

Espero que sea de tu ayuda, saludos...


"JD" escribió en el mensaje
news:%
Hola foro, tengo un problemita que explico a continuacion...

Tengo un formulario, una caja de texto, y un listview... ahora, lo que
quiero es que al momento de yo ir tecleando una palabra en la caja de


texto
hacer una busqueda incremental en el control listview. mi control listview
consta de 2 columnas, una con un numero de control mismo que uso en el


campo
key del listview, y la segunda columna, es el nombre de la persona a la


que
esta asignado ese numero de control. Lo que yo quiero es teclear el nombre
de la persona y que el control listview se vaya localizando en el renglon
donde va coincidiendo lo que tecleo en el textbox.

Lei sobre el metodo Finditem del listview, pero no funciona puesto que


busca
por el campo Key. tambien dice que busca en la propiedad Tag y en los
subitems, pero esto no es cierto puesto que no funciona o no se que estoy
haciendo mal.

Ayudenme, ya estoy desesperado pues necesito hacer eso.

Saludos

JD.



Respuesta Responder a este mensaje
#2 Ana María Bisbé York
22/02/2004 - 18:53 | Informe spam
Hola JD:

Quizás te interese echar un vistazo al control SimpleList de Mike Lewis. El
artículo con su explicación y el control lo puedes bajar de:
http://www.ml-consult.demon.co.uk/foxst-28.htm

Pronto estará traducido al español en PortalFox.

Saludos,

Ana

"JD" escribió en el mensaje
news:#
Hola foro, tengo un problemita que explico a continuacion...

Tengo un formulario, una caja de texto, y un listview... ahora, lo que
quiero es que al momento de yo ir tecleando una palabra en la caja de


texto
hacer una busqueda incremental en el control listview. mi control listview
consta de 2 columnas, una con un numero de control mismo que uso en el


campo
key del listview, y la segunda columna, es el nombre de la persona a la


que
esta asignado ese numero de control. Lo que yo quiero es teclear el nombre
de la persona y que el control listview se vaya localizando en el renglon
donde va coincidiendo lo que tecleo en el textbox.

Lei sobre el metodo Finditem del listview, pero no funciona puesto que


busca
por el campo Key. tambien dice que busca en la propiedad Tag y en los
subitems, pero esto no es cierto puesto que no funciona o no se que estoy
haciendo mal.

Ayudenme, ya estoy desesperado pues necesito hacer eso.

Saludos

JD.



Respuesta Responder a este mensaje
#3 Pablo Alvarez G.
27/02/2004 - 18:19 | Informe spam
Bueno yo lo soluciones de esta forma, no se si es la mejor o no pero al
menos funciona, el siguiente código debe de estar en el interactivechange
del textbox

If ThisForm.Optiongroup1.Option1.value=1
select DISTINC CCODIGOC01,CRAZONSO01,CIDCLIEN01 from
ALLTRIM(RUTA)+"MGW10002";
where ALLTRIM(this.value) $ CCODIGOC01;
order by CCODIGOC01;
into CURSOR CON_CLIENTES

ThisForm.List1.rowsource="CON_CLIENTES.CCODIGOC01,CRAZONSO01,CIDCLIEN01"
thisform.refresh
else
if ThisForm.Optiongroup1.Option2.value=1
select DISTINC CCODIGOC01,CRAZONSO01,CIDCLIEN01 from
ALLTRIM(RUTA)+"MGW10002";
where ALLTRIM(this.value) $ UPPER(CRAZONSO01);
order by CCODIGOC01;
into CURSOR CON_CLIENTES

ThisForm.List1.rowsource="CON_CLIENTES.CCODIGOC01,CRAZONSO01,CIDCLIEN01"
thisform.refresh
endif
Endif
******* Hasta aqui obtenemos los datos mandandolos a un
cursor y alimentamos de datos al list, la consulta es sobre datos de tipo
texto

LOCAL nIndex
FOR nIndex=1 TO Thisform.List1.ListCount
IF UPPER(Thisform.List1.ListItem(nIndex))=UPPER(ALLTRIM( this.Value))
Thisform.List1.ListIndex=nIndex
EXIT
ENDIF
ENDFOR
Thisform.Refresh()
*******************y con esto se selecciona en la lista
automaticamente

Aclaro este código lo obtube de Portal Fox desgraciadamente no recuerdo la
liga directa.
Espero que te sirva de algo ¡Suerte!!
Pablo Alvarez G.


Tengo un formulario, una caja de texto, y un listview... ahora, lo que
quiero es que al momento de yo ir tecleando una palabra en la caja de


texto
hacer una busqueda incremental en el control listview. mi control listview
consta de 2 columnas, una con un numero de control mismo que uso en el


campo
key del listview, y la segunda columna, es el nombre de la persona a la


que
esta asignado ese numero de control. Lo que yo quiero es teclear el nombre
de la persona y que el control listview se vaya localizando en el renglon
donde va coincidiendo lo que tecleo en el textbox.

Lei sobre el metodo Finditem del listview, pero no funciona puesto que


busca
por el campo Key. tambien dice que busca en la propiedad Tag y en los
subitems, pero esto no es cierto puesto que no funciona o no se que estoy
haciendo mal.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida