FoxPro/Visual FoxPro - listbox - filtrar el contenido al hacer click o dobleclick en el mismo

   
Vista:

listbox - filtrar el contenido al hacer click o dobleclick en el mismo

Publicado por gabriel (18 intervenciones) el 28/10/2015 17:39:02
Buenos días, necesito de la ayuda de uds con lo siguiente, tengo una tabla (articulos), en un listbox muestro el campo (rubro), lo que necesito es que en otro listbox me filtre el contenido de cada rubro al hacer click o dobleclick en el mismo, espero me puedan ayuda, muchas gracias por su tiempo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

listbox - filtrar el contenido al hacer click o dobleclick en el mismo

Publicado por Fidel José (321 intervenciones) el 28/10/2015 23:55:11
1) Supongamos que tenemos un Form con dos ListBox (lst_List1 y lst_list2)
2) Supongamos que tenemos una tabla de productos llamada "PRODUC" y una tabla de rubros llamada "USTIPO", donde el código de rubro se llama "TIPO" en ambas tablas.
3) Creamos un método dentro del formulario llamado "Get_Products"

Tendrás que adaptar los nombres de tablas y de campos a tu caso.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
* Init del Formulario
PROCEDURE Init
	LOCAL lnTally, i
 
		&& Agrego dos propiedades al formulario (Para controlar los ListBox)
		ADDPROPERTY(thisform,"rubro","")
		ADDPROPERTY(thisform,"codprod","")
 
		SELECT distinct pro.tipo,rub.describe ;
			FROM produc as pro,ustipo as rub ;
			WHERE pro.tipo = rub.tipo ;
			INTO ARRAY laRubros
		lnTally = _tally
 
		WITH this.lst_list1
			.clear
			.boundcolumn=2
			.Columncount = 2
			.Columnlines = .f.
			.columnwidths = "200,40"
			.ControlSource = 'thisform.rubro'
			FOR i = 1 TO m.lnTally
				.AddListitem(PROPER(laRubros[i,2]),i,1)
				.addListitem(laRubros[i,1],i,2)
			NEXT
			.requery
			.refresh
		ENDWITH
 
 
	ENDPROC
 
* Codigo que debe colocarse en el Click y DblClick del control "lst_list1"
	PROCEDURE Lst_list1.Click
		thisform.get_products(this.ListItem(this.ListItemId,2))
 
	ENDPROC
 
	PROCEDURE Lst_list1.DblClick
		thisform.get_products(this.ListItem(this.ListItemId,2))
	ENDPROC
 
* Codigo del método Get_Produc
	PROCEDURE get_products
		LPARAMETERS tcRubro
		LOCAL ARRAY laPRoduc(1)
		LOCAL i,lnTally
 
		SELECT descrip,marca,codprod FROM produc WHERE tipo==tcRubro INTO ARRAY laproduc
		lnTally = _tally
		this.codprod = IIF(m.lnTally > 0 ,laProduc[1,3],"")
		WITH this.lst_list2
			.clear
			.boundColumn = 3
			.ColumnCount = 2
			.columnLines = .f.
			.ColumnWidths = "200,100"
			.ControlSource = 'thisform.codprod'
			FOR i= 1 TO m.lnTally
				.addListitem(PROPER(laProduc[i,1]),i,1)
				.addListitem(laProduc[i,2],i,2)
				.addlistitem(laProduc[i,3],i,3)
			ENDFOR
			.requery
			.refresh
		ENDWITH
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

listbox - filtrar el contenido al hacer click o dobleclick en el mismo

Publicado por gabriel (18 intervenciones) el 29/10/2015 11:35:47
Muchisimas gracias por tu tiempo, me sirvió muchisimo tu ayuda!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar