Retornar el valor de 2 variables de un formulario modal al form principal

2,206 views
Skip to first unread message

integral

unread,
May 6, 2011, 9:27:02 AM5/6/11
to Mundo Visual FoxPro
Amigos :

Hace unos dias realize la pregunta de como pasar una variable de un
formulario a otro
y al final llegue a resolver dicho tema mediante...

Do form XXX To mivariable

Pues bien ahora que se me presento la situacion de querer pasar los
valores de 02 variables al formulario principal noto que solo puede
hacerse utilizando el siguiente comando

Do form XXX With valor 1, valor2

Tengo la siguiente pregunta :

Como le hago para capturar los valores de dichas variables en el
formulario principal sin tener que utilizar variables publicas...

A la espera de sus comentarios y/o sugerencias...

atte.,

Gabriel


Gard22 Gmail

unread,
May 6, 2011, 2:03:05 PM5/6/11
to mundovis...@googlegroups.com
Con Gusto.

Formulario principal
Do form formularios/causa_ing_datos with n_nit, v_puc, v_nompuc, v_doc, v_deta, fechdoc, fechvto, r_social, mes_ano

En el init del formulario causa_ing_datos asi:
Parameters n_nit, v_puc, v_nompuc, v_doc, v_deta, fechdoc, fechvto, r_social, mes_ano

En el unload del formulario causa_ing_datos asi:
Return v_puc
Return v_nompuc
Return v_doc
Return v_deta
Return fechdoc
Return fechvto
Return mes_ano

El formulario causa_ing_datos debe ser modal
WindowType 1 - Modal


Cordialmente,


Gard
 





--
_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
FoxPro" de Grupos de Google.

Para anular la suscripción a este grupo, envía un mensaje a:
mundovisualfox...@googlegroups.com

Zarlu

unread,
May 6, 2011, 6:06:36 PM5/6/11
to Mundo Visual FoxPro
Buenas tardes!

VFP5
En experiencia personal he tenido que manejar variables públicas
cuando recibos los parametros pasados tal como lo dices.
Pero prueba lo que te sugieren y si no funciona como quieres avisa y
te comento como lo he manejado (sin variables públicas).
Ahora bien considera como manejar los valores de retorno al formulario
que las envió, si es que requieres el caso.

Suerte
zarlu
Chetumal, Quintana Roo, México

Carlos Miguel FARIAS

unread,
May 7, 2011, 11:34:20 AM5/7/11
to mundovis...@googlegroups.com
Las variables "privadas" Es algo que se dejo en general de usar con los vfp por ser mas seguro usar locales y excepcionalmente globales.
Pero cuando de un formulario necesito devolver infinidad de valores a su "llamador", no es problematico utilizar:
a) variables privadas, se declaran privadas antes de invocar el "subformulario", este modifica los contenidos y al volver, las variables tienen los valores retornados.
b) agregar propiedades al omnipresente objeto _screen y poner o leer los valores alli.
c) Crear un cursor con todos los campos, variables que se necesiten en el "llamador", cargar los valores en el "llamado" y al volver, tenemos todos los datos (cuyo volumen puede ser muy grande)

integral

unread,
May 7, 2011, 7:29:27 PM5/7/11
to Mundo Visual FoxPro

Gracias amigos por sus comentarios, tomando como base el ejemplo del
amigo Gard22 logre resolver mi problema. Al codigo expuesto solo le
faltaba inicializar las variables...

Amigo Carlos Farias, veo que existen varias formas como solucion a mi
pregunta, me gustaria ver un ejemplo tuyo en base al punto B que
indicas de agregar propiedades al objeto _screen...

atte.,

Gabriel


On 7 mayo, 10:34, Carlos Miguel FARIAS <carlosmiguelfar...@gmail.com>
wrote:
> > mundovisualfox...@googlegroups.com- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

Carlos Miguel FARIAS

unread,
May 8, 2011, 10:11:57 AM5/8/11
to mundovis...@googlegroups.com
El ejemplo no es mio, lo aprendi de la comunidad...

el Objeto _screen es una variable del sistema global que representa a la ventana del fox, por eso, cuando corres una aplicación, dicho objeto siempre está (es la ventana básica de fondo).
Como objeto tiene propiedades y se le pueden agregar propiedades con el metodo

addproperty()

Ejemplo

_SCREEN.addproperty( 'svUnaPropiedad' ) && creada pero sin valor
_SCREEN.addproperty( 'svOtraPropiedad', 'valor' ) && creada pero con el valor 'Valor'

Cuando se quiere ver el contenido (en cualquier lugar)
? _SCREEN.svOtraPropiedad

O asignar valor
_SCREEN.svUnaPropiedad = 1234

Como _SCREEN es global, pueden agregarsele propiedades en cualquier parte del codigo, borrarselas o asignar/cambiar valor en cualquier parte.

tambien puedes usar las funciones ADDPROPERTY( objeto, 'nombre', valor ) o eliminar una propiedad agregada (REMOVEPROPERTY( objeto, 'nombre' )

Puedes chequear si una propiedad existe con

PEMSTATUS( objeto, 'nombre', 5 ).

Además pemstatus te permite otros controles sobre propiedades, metodos, etc.

Aleks_Mtz

unread,
Jan 15, 2015, 1:15:12 PM1/15/15
to mundovis...@googlegroups.com
Es increible como al pasar de los años ( 3 y medio ) esta duda y sus respuestas me sacaron de un apuro !!!

Saludos desde las Heladas Tierras de Dios y Maria Santísima, Monterrey NL México, la Ciudad de las Montañas .... y Arriba el Monterrey !!!

Cesar Yamunaque Baca

unread,
Jan 17, 2015, 5:35:51 PM1/17/15
to mundovis...@googlegroups.com
Si defines las variables en el formulario principal cualquier valor que se coloque a esas variables en el formulario secundario se vera reflejado en el principal cuando se cierra el secundario.

Siempre y cuando el secundario sea Modal

Tienes dos TextBox en el Formulario AAA, de igual manera en el formulario XXX
En el formulario AAA tienes un Boton
en el evento Click del Boton

valor1=This.parent.text1.value
valor2=This.parent.text2.value

DO FORM xxx WITH valor1, Valor2

&& esto sucede despues de cerrar el formulario xxx
This.parent.text1.value=valor1
This.parent.text2.value=valor2

This.parent.Refresh


****************************************************
En el INIT del Formulario XXX
PARAMETER inValor1, inValor2

This.text1.value=inValor1
This.text2.value=inValor2

En el formulario xxx tienes un boton
En el evento click del boton

valor1=This.parent.text1.value
valor2=This.parent.text2.value

ThisForm.release

**************************************************

No se si me deje entender, 
Saludos
Reply all
Reply to author
Forward
0 new messages