Filtro em Listview Topic is solved

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

thalesduarte
Posts: 95
Joined: 13 Sep 2021, 06:08

Filtro em Listview

Post by thalesduarte » 22 Sep 2022, 12:59

Olá, boa tarde.

Como o proprio titulo do tópico diz.

A minha dúvida é:

É possivel colocar um filtro em uma listview?

Semelhante ao do excel?

Tenho varias colunas e queria colocar um filtro nelas, pra quem for manipular, conseguir filtrar de acordo com a necessidade do que está alimentado.

Grato!

User avatar
flyingDman
Posts: 2837
Joined: 29 Sep 2013, 19:01

Re: Filtro em Listview  Topic is solved

Post by flyingDman » 22 Sep 2022, 15:16

Code: Select all

var =
(
a2,b12,c22
a3,b13,c23
a4,b14,c24
a5,b15,c25
a6,b16,c26
a7,b17,c27
a8,b18,c28
a9,b19,c29
a10,b110,c210
a11,b111,c211
a12,b112,c212
a13,b113,c213
a14,b114,c214
a15,b115,c215
a16,b116,c216
a17,b117,c217
a18,b118,c218
a19,b119,c219
a20,b120,c220
)

gui, add, text,, filter:
gui, add, edit, w50 x+5 gfltr vneedle
gui, add, listview, x5 w200 r20 vMyLV, header1|header2|header3
for x,y in strsplit(var,"`n","`r")
	lv_add("",strsplit(y,",").1,strsplit(y,",").2,strsplit(y,",").3)
LV_ModifyCol("", "AutoHdr")
gui, show

fltr:
gui, submit, nohide
LV_delete()
for x,y in strsplit(var,"`n","`r")
	if (instr(strsplit(y,",").1,needle) or instr(strsplit(y,",").2,needle) or instr(strsplit(y,",").3,needle))
		lv_add("",strsplit(y,",").1,strsplit(y,",").2,strsplit(y,",").3)
return
Isso filtra todas as colunas e assim que você altera a "edit control". Isso pode ser alterado para pesquisar apenas em determinadas colunas. Você também pode ativar isso com um botão em vez de uma alteração na edit control. Isso é muito rápido, mas quando o número de linhas é alto, você deve adicionar GuiControl, -Redraw, MyLV antes e GuiControl, +Redraw, MyLV depois dos loops
14.3 & 1.3.7

thalesduarte
Posts: 95
Joined: 13 Sep 2021, 06:08

Re: Filtro em Listview

Post by thalesduarte » 23 Sep 2022, 05:47

Olá @flyingDman
Obrigado por responder essa minha dúvida.

Existe somente essa possibilidade de realizar um filtro na Listview?

Estava pensando em algo semelhante ao excel.
No qual você seleciona as colunas, aplica o filtro, e consegue filtrar coluna por coluna.


Outra dúvida.

A respeito do

Code: Select all

GuiControl, +Redraw, MyLV
Qual a diferença de utilizar isso com e sem?

Grato pela atenção!

User avatar
flyingDman
Posts: 2837
Joined: 29 Sep 2013, 19:01

Re: Filtro em Listview

Post by flyingDman » 23 Sep 2022, 09:30

Não conheço nenhum outro método para fazer isso como no Excel.

O uso de "redraw" acelera significativamente a exibição dos dados.
14.3 & 1.3.7

Post Reply

Return to “Ajuda e Suporte Geral”