FoxPro/Visual FoxPro - Valor numérico de un Form. hacia otro Form. (VFP)

   
Vista:

Valor numérico de un Form. hacia otro Form. (VFP)

Publicado por Adrian peadrianicolas@gmail.com (1 intervención) el 08/08/2016 23:10:08
Necesito una ayuda: tengo que calcular el costo de un producto en el Formulario "Costos" y enviar ese VALOR NUMÉRICO al Formulario "Productos".
El problema es que primero trabajo con el Form "Producto" donde ingreso producto nuevo y secundariamente dando clic en un botón "Calcular costo" se abre un Form "Costos" y calculo el costo (cantidad*precio, etc.),
Ese maldito valor numérico calculado no pasa al Form inicial "Producto" y en consecuencia guardar ese valor en el textbox de "Producto".
Eh intentado con variables públicas y con comando raros como el STORE, hay veces que guarda pero mal y con con otro valor que ni siquiera existe.
PD: Estos dos Formularios comparten una misma tabla. (No se si hay otro método mejor, AGRADEZCO DE CORAZÓN LAS RESPUESTAS).
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

Valor numérico de un Form. hacia otro Form. (VFP)

Publicado por Fidel José (321 intervenciones) el 08/08/2016 23:31:14
Tienes dos alternativas, cuando menos:
1) Que el form secundario sea modal (Windowtype=1) y en el Evento Unload devuelva el valor obtenido
local lnCosto
DO FORM SECUNDARIO WITH (parametros) TO lnCosto
IF !ISNULL(lnCosto)
Thisform.Costo = lnCosto
ENDIF

* El formulario secundario puede tener un calculo que remate en una propiedad llamada Costo, inicializada como null
Addproperty(thisform,"Costo_Obtenido", null )
* Si se calcula el costo, la propiedad tendrá una valor numérico
* Unload
RETURN THISFORM.COSTO_Obtenido

2) Crear un método en el formulario primario que se pasa como parámetro para llamarlo desde el secundario.
En este caso el secundario no necesita ser modal. El procedimiento de cálculo puede estar en el mismo formulario primario, en el método que se pasa como parámetro, que debe contener a su vez la sentencia lparameters que le permita recibir los valores para calcular el costo ( lo que averiguas en tu secundario)
En ese caso, la llamada deberá ser más o menos así, suponiendo que tienes creado un método "calcular_costo" en e padre.
DO FORM SECUNDARIO WITH thisform , "Calcular_Costo"

En el init del formulario secundario:
LPARAMETERS toForm , tcRaiseEvent
Addproperty(Thisform , "oform", toForm)
Addproperty(Thisform, "cRaise" , tcRaiseEvent )

En el Evento Click del botón que acepta la selección:
RAISEEVENT(thisform.oform , thisform.cRaise , Param1, Param2, etc )
Thisform.Release
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