_screen.NewObject('cl_modfact_db','modfact_db.prg')
_screen.cl_modfact_db.metodo()
_screen.cl_modfact_db.propiedad()
oApp
/Interfaz
/Bus
/Cliente
/Datos
/Factura
/Datos
/Proovedor
/Datos
/Producto
/Datos
/Comun
/Datos
---------- Mensaje reenviado ----------
De: Jorge González <jrockg...@gmail.com>
Fecha: 2 de julio de 2016, 8:44
Asunto: Re: [vfp] Re: Procedures reutilizados en varios forms en programación en capas
Para: publice...@googlegroups.com
--Jorge González
Entonces mejor aún por que ya tenes todo bien estructurado, lo que debes de hacer es tener jerarquía, en mis inicios con fox pro yo compre un Framework, y ahí vi como ellos trabajan, lo que te he dicho lo he tomado de ahí el Framework todavia existe
http://www.promatrix.com/index.php/products
La versión standard es free, para que podas observarla hoy ya no la uso por que ya he desarrollado bastante mi propio Framework (aunque me falta) sin. Embargo men sirvió bastante para entender a como trabajar con clases y objetos.
F. Ernesto Calderón
www.tiservicios.net
Tengo dudas con respecto al comportamiento que tienen algunos objetos declarados en la capa de negocios.Es el caso del objeto oDatos.Cuando se solicita datos vacíos los mismos se crean pero cuando corre el procedure.SolicitaLlenarCursorDetalleFactura() al finalizar el procedimiento estos dejan de ser objetos.
.................
No se si ayude pero yo creo todos los objetos anclandolos al objeto _screen de visual fox, yo lo trabajo así y no me da problema, mira los post iniciales ahí lo explico detalladamente
Define Class oDatos_clientes as Custom * Propiedades de Datos * Usar el cursor CLIENTES Procedure Obtener_Datos * Abrimos la tabla Select id, cliente from midatabase!clientes into cursor clientes readwrite * Asignamos las propiedades de Datos * Usar el cursor Clientes * Cerramos la tabla * No cerrar el cursor creado EndProc EndDefine
Sobre esta pregunta, cuando creas oDatos por primera vez, ya se debe crear con todas sus propiedades, por ejemplo con un método DatosNuevo() que cree el objeto, agregue las propiedades y lo devuelva.
En esta parte los datos deberían ser recuperados por la capa de datos, no por el negocio.
La asignación está bien hecha, aunque si tenés que actualizar varias propiedades te conviene guardar una referencia de objeto en una variable, que es más cómodo y corto, por ej:
loDatos = oApp.Transf.oDatos
loDatos.propiedad = valor
Te recomiendo que veas el proyecto de antonio para manejo de datos, que creo que te puede ser muy util para tu caso.
Saludos
Siempre podés retornar un array dentro del objeto de datos
</d