FoxPro/Visual FoxPro - PROVINCIAS Y LOCALIDADES

 
Vista:

PROVINCIAS Y LOCALIDADES

Publicado por Buru (14 intervenciones) el 01/06/2020 03:30:08
Hola como estan, soy muy nuevo en esto y estoy haciendo un programa en foxpro con tablas nativas del mismo.

Tengo dos TABLAS Provincias y Localidades ambas estan relacionadas por el campo ID_PROV

Tengo un formulario y quiero que me muestre si selecciono tal Provincia en un combobox, las localidades que le corresponden en otro combobox.

Solamente me falta filtrar las localidades, me muestra todas, yo quisiera que me muestre las que corresponden segun el ID.


Gracias.
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
Imágen de perfil de Mauricio Antonio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

PROVINCIAS Y LOCALIDADES

Publicado por Mauricio Antonio (1541 intervenciones) el 01/06/2020 15:02:34
En el evento que selecciones en el primer combobox, haces el filtro de provincias del segundo combobox. Yo lo hago en el evento VALID, aca valido que haga una seleccion valida y luego el filtro. Saludos.
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

PROVINCIAS Y LOCALIDADES

Publicado por Buru (14 intervenciones) el 02/06/2020 01:40:02
Me darias algun ejemplo??


Gracias por la 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
Imágen de perfil de Mauricio Antonio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

PROVINCIAS Y LOCALIDADES

Publicado por Mauricio Antonio (1541 intervenciones) el 02/06/2020 07:36:00
en el evento VALID del combobox Provincias:
1
2
3
4
if EMPTY(thisform.Text_Provincias.displayvalue)   && aca debes poner el nombre que has definido para provincias en el FORM.
   messagebox('Seleccionar Provincia')
   return 0
endif
*
set filter to Provincias.id_provid = Localidades.id_provid in Localidades
* Con esto deberia de funcionarte. Saludos.
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
Imágen de perfil de Mauricio Antonio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

PROVINCIAS Y LOCALIDADES

Publicado por Mauricio Antonio (1541 intervenciones) el 02/06/2020 16:03:18
Te pido disculpas Abel, te aclaro que el mensaje que leiste era para un compañero que no tenia nada de codigo, este caso creo yo, es diferente porque te pide ayuda en un objeto nada mas. Pero entiendo tu malestar, nuevamente, disculpame. Mi codigo no es perfecto, solo es un codigo malo por cierto.
Saludos.
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

PROVINCIAS Y LOCALIDADES

Publicado por Abel (286 intervenciones) el 02/06/2020 16:53:35
Abrazo Mauricio.
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

PROVINCIAS Y LOCALIDADES

Publicado por Buru (14 intervenciones) el 04/06/2020 01:03:44
Disculpame Abel, si hago consultas muy basicas, necesitaba ayuda y como se que en internet es servicio lo publique, acaso te molesta que haga estas consultas?? No las respondas y segui en tus cosas.
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

PROVINCIAS Y LOCALIDADES

Publicado por Abel (286 intervenciones) el 04/06/2020 14:37:59
Mi conversación no iba con vos; y no me moleste en responder como habrás notado; solo que noto que esperas soluciones armadas y no estudiarlas y entenderlas, ya que te enviaron una respuesta muy clara y seguiste consultando en una nueva linea. Pero como dije no me interesa si aprendes o no, mi charla era con Mauricio y él si entendió lo que quise decir.
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
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

PROVINCIAS Y LOCALIDADES

Publicado por Fidel José (657 intervenciones) el 02/06/2020 21:23:09
Te muestro una de las tantas posibilidades. No es la más breve pero puede resultar más fácil de manejar.

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
*<note>
        La función ShowError() que se ve en el ejemplo, es una UDF que muestra el mensaje de error.
 
	El ejemplo está basado en una tabla con los siguientes campos:
	Provincia C(30)
	Codprov	  C(1)		* ID de Provincia
	CIUDAD	  C(50)
	CPOSTAL   C(4)
 
	Se utilizan dos combobox (cmb_Provincias y cmb_Localidades)
	Se utilizan dos propiedades del form "MiCodProv" y "MiCiudad"
	Se utilizan dos métodos del form: "relleno_cmb_Provincias" y "relleno_cmb_localidades"
 
	Este ejemplo es válido solamente para tablas nativas
	En otro caso, se deberán utilizar cursores en lugar de arrays.
*</note>
 
*<task>
	* Agrego dos métodos al formulario:
		* 1 - relleno_cmb_Provincias()
		* 2 - relleno_cmb_localidades()
 
	* Agrego una propiedad "MiCodProv" al formulario
	* para manejar el cmb_Provincias
		ADDPROPERTY(thisform,"MiCodprov","")
 
	* Agrego una propiedad "MiCiudad" al formulario
	* para manejar el cmb_Localidades
		ADDPROPERTY(thisform,"MiCiudad","")
*</task>
 
*<Init>
		this.relleno_cmb_Provincias()
*</Init>
 
 
*<metodo name="relleno_cmb_Provincias">
	** METODO:	relleno_cmb_Provincias
	TRY
 
		LOCAL LOEX AS EXCEPTION,;
			i,;
			lnTally
 
		LOCAL ARRAY laProvin(1)
 
 
 
		* Determino del archivo de localidades las provincias
		* existentes con su Id. (codprov)
		SELECT distinct provincia,codprov ;
			FROM zip_code ;
			WHERE !DELETED() ;
			ORDER BY provincia ;
			INTO ARRAY laProvin
		lnTally = _tally
 
 
		* Relleno el combobox.
		WITH thisform.cmb_provincias
			.clear
			.RowSourceType = 0
			.boundcolumn = 2
			.ControlSource = 'thisform.MiCodProv'
 
			* Se agrega esta línea para evitar que aparezca el cuadro vacío
			.AddListItem("(Seleccione Provincia)",1,1)
			.AddListItem("",1,2)
 
			FOR i = 1 TO m.lnTally
				.AddListitem(PROPER(laProvin[i,1]),i+1,1)
				.AddListitem(laProvin[i,2],i+1,2)
			NEXT
			.requery
			.refresh
		ENDWITH
 
		thisform.relleno_cmb_localidades(thisform.MiCodprov)
 
	CATCH TO LOEX
		LOEX.USERVALUE = PROGRAM()
		SHOWERROR(LOEX)
 
	FINALLY
 
 
	ENDTRY
</metodo>
 
<metodo name = "relleno_cmb_localidades">
 
	* METODO: relleno_cmb_localidades
	**********************************
	* Llamado por relleno_cmb_Provincias()
	* Llamado por cmb_provincias.Click()
	* -------------------------------------
	LPARAMETERS tcCodProv
	TRY
 
		LOCAL LOEX AS EXCEPTION,;
			i,;
			lnTally
 
		LOCAL ARRAY laLocali(1)
 
 
		* Determino del archivo de localidades las provincias
		* existentes con su Id. (codprov)
		SELECT ciudad,cpostal ;
			FROM zip_code ;
			WHERE codprov == m.tcCodProv ;
			ORDER BY ciudad ;
			INTO ARRAY lalocali
		lnTally = _tally
 
 
		* Relleno el combobox.
		WITH thisform.cmb_localidades
			.clear
			.RowSourceType = 0
			.boundcolumn = 2
			.columnCount = 2
			.columnwidths = "150,50"
			.ControlSource = 'thisform.MiCiudad'
 
			* Se agrega esta línea para evitar que aparezca el cuadro vacío
			.AddListItem("(Seleccione Localidad)",1,1)
			.AddListItem("",1,2)
 
			FOR i = 1 TO m.lnTally
				.AddListitem(PROPER(laLocali[i,1]),i+1,1)
				.AddListitem(laLocali[i,2],i+1,2)
			NEXT
			.Enabled = !EMPTY(m.lnTally)	&& cuando no hay localidades, se deshabilita el cuadro
			.requery
			.refresh
		ENDWITH
 
 
	CATCH TO LOEX
		LOEX.USERVALUE = PROGRAM()
		SHOWERROR(LOEX)
 
	FINALLY
 
 
	ENDTRY
</metodo>
 
<evento name = "cmb_Provincias.Click"
	* Código del Evento Click de cmb_Provincias
	TRY
 
		LOCAL LOEX AS EXCEPTION,;
			lnItem
		lnItem = this.ListItemId
		IF !EMPTY(m.lnItem)
			thisform.relleno_cmb_localidades(THIS.ListItem(m.lnItem,2))
		ENDIF
 
	CATCH TO LOEX
		LOEX.USERVALUE = PROGRAM()
		SHOWERROR(LOEX)
 
	FINALLY
 
 
	ENDTRY
 
*</evento>
 
 
<evento name = "cmb_Localidades.Click">
 
	* Código del Evento Click de cmb_Localidades
	* (Solo para ejemplo - debe ir lo que se necesita realmente)
 
	LOCAL lnItem,;
		lcCodigo,;
		lcCiudad
 
	lnItem = this.ListItemId
	IF !EMPTY(m.lnItem)
 
		lcCodigo = this.ListItem(m.lnItem,2)
		lcCiudad = this.ListItem(m.lnItem,1)
 
		MESSAGEBOX("Código Postal = "+m.lcCodigo + CHR(13) ;
			+ "Ciudad = "+m.lcCiudad )
 
 
 
	ENDIF
*</evento>
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

PROVINCIAS Y LOCALIDADES

Publicado por Buru (14 intervenciones) el 04/06/2020 01:06:10
Muchas gracias por la 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