FoxPro/Visual FoxPro - Pasar parametro del menu a un formulario

   
Vista:

Pasar parametro del menu a un formulario

Publicado por LINCE (52 intervenciones) el 19/01/2013 04:48:28
Hola amigos, saludos
Tengo un problema y quiero que me ayuden,....tengo un formulario para crear clientes en una tabla, pero necesito diferenciar estos clientes por categorias. En el menu tengo algunas opciones para crear clientes en diferentes categorias, cómo hago para usar el mismo formulario para grabar en la misma tabla de clientes en las diferentes opciones del menu, quisiera saber como indicarle al formulario desde que opcion del menu estoy haciendo click....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

Pasar parametro del menu a un formulario

Publicado por Fidel (558 intervenciones) el 19/01/2013 14:41:32
En el INIT del formulario, primera línea escribes algo así
PARAMETERS xcCategoria
if vartype(xcCategoria)#"C"
xcCategoria="Valor predeterminado"
endif

THISFORM.ADDPROPERTY("Categoria",xcCategoria) && crea una propiedad con el valor del parámetro

* Al grabar, el replace sería.
REPLACE CampoCategoria with Thisform.Categoria

En el comando o procedimiento de menu
DO FORM \forms\FormClientes WITH "Valor Correspondiente"

Sin embargo, me permito recomendarte algo.
Coloca todas tus categorías en un ComboBox dentro del formulario y obligas al operador a seleccionar una. De esa forma no complicas el menú con cuestiones secundarias.

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
* Debes tener una tabla ó registro de categorias de clientes
* Supone MisCateg ("IdCat" c(1),"Describe" c(40))
* INDEX ON IDCAT TAG IIDCAT
 
* Supone que la Tabla de clientes (o un cursor sobre esa tabla)
* se llama CurClien y tiene un campo "IDCAT" C(1)
 
* Agrega un ComboBox al formulario
 
*INIT del formulario
nit=1
with thisform.Combo1
	.Sorted=.t.                        && optativo
        .RowSourceType=0       && Default
	.BoundColumn=2          && Valor de la segunda columna
	.ControlSource='CurClien.IdCat'
	.ADdlistitem("(Seleccione Categoria)",1,1)
	.Addlistitem("",1,2)
	select MisCateg
	scan
		nit=nit+1
		.AddlistItem(Proper(describe),nit,1)
		.AddListitem(idcat,nit,2)
	endscan
	.requery
	.refresh
endwith
 
* En el botón de grabar
* Evento Click()
SELECT CurClien
if empty(IdCat)
	messagebox("No ingresó la categoría del cliente",0,"Mensaje")
	thisform.combo1.SetFocus
	return
endif
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