Clase para utilizar formularios MDI

637 views
Skip to first unread message

Walter R. Ojeda Valiente

unread,
Nov 14, 2012, 10:23:07 PM11/14/12
to publice...@googlegroups.com
Desde hace tiempo que tenía pendiente hacer una clase que me permitiera facilmente utilizar formularios MDI en mis aplicaciones. Las aplicaciones MDI muestran varios formularios a la vez y el usuario puede interactuar con cualquiera de ellos simplemente haciendo un click con el mouse.

Normalmente a los formularios MDI se los confina a un cierto área de trabajo para que no tapen información importante. Por ejemplo, no queremos que tapen el menú.

Además, se los puede visualizar en cascada, uno arriba del otro, uno a la derecha del otro. También es conveniente tener la posibilidad de cerrarlos a todos de una vez.

En el siguiente enlace encontrarán un archivo .ZIP que contiene la clase que creé y un ejemplo funcional para que puedan ver lo que se puede hacer con ella.

http://www.mediafire.com/?qt4q1llbixrxs0p

Para ejecutarlo:
1. Creen una carpeta, por ejemplo: CLASEMDI
2. Copien el archivo .ZIP a esa carpeta
3. Descompriman el archivo .ZIP en esa carpeta
4. Ingresen al Visual Foxpro
5. En la ventana de comandos simplemente escriban: DO MAIN

Dentro del archivo .ZIP también se encuentra un documento titulado "Como crear una aplicación MDI.txt", les servirá de guía si quieren utilizar esta clase

Desde luego que esta clase (como todas las clases) puede ser mejorada, así que si tienen sugerencias o dudas o consultas o descubren algún error, pueden comunicarse conmigo.

Por ejemplo, se podría colocar un icono a cada botón, mantener los tamaños de los formularios, hacer titilar el botón que corresponde al formulario actual cuando éste obtiene el foco, mostrar pestañas en vez de botones, etc.

Saludos.

Walter.

P.D.: Edgar Acevedo, esta clase es bastante más compleja que la de Excel, pero tratar de entender como funciona podría ser productivo y útil.

"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House

Walter R. Ojeda Valiente

unread,
Nov 14, 2012, 10:30:43 PM11/14/12
to publice...@googlegroups.com
Se me olvidaba:

Para probar el funcionamiento hagan click en los botones que están a la izquierda: "Productos", "Compras", "Clientes", "Ventas", etc. y luego en los botones que están abajo y en los botones que están arriba.

Saludos.

Walter.


"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House




From: wr...@hotmail.com
To: publice...@googlegroups.com
Subject: [vfp] Clase para utilizar formularios MDI
Date: Thu, 15 Nov 2012 03:23:07 +0000
--
 
 
 

Edgar Acevedo

unread,
Nov 14, 2012, 10:35:54 PM11/14/12
to publice...@googlegroups.com
Mil gracias Walter.  Desde hace una semana estoy estudiando la de Excel y aplicando lo que he entendio a otras cosas que había hecho solo mediante PROCEDURES.

En unos minutos bajaré este archivo y lo estudiaré también. Mejor si es mas compleja que la de Excel, me ayudará a entender mejor para que "otras cosas" puedo usar las clases.  En terminos generales las entiendo, es simplemente que me ha costado entender "en qué" puedo usarlas, y estos ejemplos me estan ayudando a entender ese "para que"...

Saludos,


Edgar Acevedo.


--
 
 
 

Allan Raúl Acuña

unread,
Nov 14, 2012, 10:36:53 PM11/14/12
to publice...@googlegroups.com
Estimados Colegas 

Mis saludos antes que nada.

Me han encomendado un Software para un Restaurante Buffete, alguno de ustedes me podrían orientar los elementos.

Por otro lado debo hacer con un Touch Screen para ir agregando al carrito lo que se lleva el cada plata de la persona en la lista.

Desde ya muchas gracias por sus comentarios.

Saludos cordiales;

Lic. Allan R. Acuña
Desarrollador Independiente
msn= allan...@hotmail.com
skype= niceasysoft
            +(505) 8 831 8191      
www.NicEasySoft.com
Managua, Nicaragua
Centroamérica

Walter R. Ojeda Valiente

unread,
Nov 14, 2012, 10:41:40 PM11/14/12
to publice...@googlegroups.com
¿Para qué puedes usarlas? Practicamente para todo.

¿Ventajas?
Escribes menos, tienes un código más legible, ganas más dinero

¿Desventajas?
Si no estás acostumbrado a pensar en clases al principio te costará y te tomará su tiempo, pero cuando lo hayas conseguido los beneficios serán harto evidentes.


Saludos.

Walter.

"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House




Date: Wed, 14 Nov 2012 21:35:54 -0600
Subject: Re: [vfp] Clase para utilizar formularios MDI
From: aper...@gmail.com
To: publice...@googlegroups.com
--
 
 
 

Edgar Acevedo

unread,
Nov 14, 2012, 10:44:18 PM11/14/12
to publice...@googlegroups.com
Acertado, como siempre.  Muchas gracias. Muchas gracias por el corolario.  Me anima más a "hundirle el diente" a las clases.

Salu2,

Edgar Acevedo.



--
 
 
 

Robert Martínez

unread,
Nov 14, 2012, 10:46:20 PM11/14/12
to publice...@googlegroups.com


Muy practico tu ejemplo, creo que nos servirá a todos,

Gracias.

Walter R. Ojeda Valiente

unread,
Nov 14, 2012, 10:55:52 PM11/14/12
to publice...@googlegroups.com
El principal problema es tener un stock más o menos actualizado porque las cantidades usadas para hacer cada plato de comida pueden ser muy variables y tampoco puedes estar controlando que fue exactamente lo que se usó (nadie va a estar pesando y anotando que se usaron 20 gramos de sal, 200 gramos de harina, 45 centímetros cúbicos de aceite, etc.) La gente que está en la cocina no tiene ni tiempo ni ganas para hacer eso.

Por lo tanto, solamente tendrás un estimado. Por ejemplo, para hacer un sandwich de jamón y queso necesitarás: 50 gramos de jamón, 60 gramos de queso, 20 gramos de margarina, dos rebanadas de pan. Eso es lo que puedes tener establecido en tu tabla, pero en la realidad las cantidades usadas no serán exactamente esas.

El corte de inventario lo haces con las compras. Si se compró harina se supone que ya no había harina o que había muy poca. Por lo tanto, todos tus costos serán solamente estimativos.

Otro problema es el hurto que los empleados hacen, pueden estar llevando dentro de sus ropas insumos pequeños y relativamente caros (como nueces, almendras, especias, etc.)

En cuanto al tema informático en sí, es como fabricar cualquier otro producto. Tienes materia prima, insumos, mano de obra y gastos indirectos. Debes controlar dos stocks, el stock de materias primas y el stock de productos terminados. Cada vez que fabricas algo sabes que se empleó materia prima, insumos, mano de obra y gastos indirectos y actualizas las tablas correspondientes.


Saludos.

Walter.

"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House




From: allan...@hotmail.com
To: publice...@googlegroups.com
Subject: [vfp] Consulta para Aplicación para Restaurante Buffete
Date: Thu, 15 Nov 2012 03:36:53 +0000
--
 
 
 

Allan Raúl Acuña

unread,
Nov 14, 2012, 11:00:23 PM11/14/12
to publice...@googlegroups.com
Muchas gracias Walter,

La verdad tienes razón en todos los aspectos, es un poco difícil.

Básicamente lo que necesito es que cuando llega un cliente y el responsable de facturar indique lo que 
lleva en el plato para que le salga:

- ARROZ BLANCO
- JALAPEÑO
- ENSALADA DE MANZANA
- ETC

No sabría como organizar mis ventanas para ir dando agregar los pedido.

Saludos cordiales;

Lic. Allan R. Acuña
Desarrollador Independiente
msn= allan...@hotmail.com
skype= niceasysoft
            +(505) 8 831 8191      
www.NicEasySoft.com
Managua, Nicaragua
Centroamérica


Subject: RE: [vfp] Consulta para Aplicación para Restaurante Buffete
Date: Thu, 15 Nov 2012 03:55:52 +0000
--
 
 
 

Walter R. Ojeda Valiente

unread,
Nov 14, 2012, 11:12:57 PM11/14/12
to publice...@googlegroups.com
Basicamente necesitarás dos tablas:
- RECETASCABECERA
- RECETASDETALLES

En la tabla RECETASCABECERA tendrás el código del plato, el nombre del plato, el precio de venta y algunos otros datos que podrías necesitar

En la tabla RECETASDETALLES tendrás el código del plato (para que puedas relacionarlo con la tabla RECETASCABECERA), el código de la materia prima, la cantidad de materia prima utilizada

Para descontar la materia prima de tu stock puedes hacerlo en dos momentos: en el momento en que se fabricó el plato, o en el momento en que se vendió el plato. Y quizás para algunos platos debas hacerlo de la primera forma y para otros platos de la segunda forma.

La venta es lo más fácil que hay, es como vender cualquier artículo. Lo más complicado es tener un control del stock que se aproxime a la realidad.


Saludos.

Walter.

"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House



Subject: RE: [vfp] Consulta para Aplicación para Restaurante Buffete
Date: Thu, 15 Nov 2012 04:00:23 +0000
--
 
 
 

Allan Raúl Acuña

unread,
Nov 14, 2012, 11:14:58 PM11/14/12
to publice...@googlegroups.com
Muchas gracias Walter

Cuando tenga un avance la iré Mostrando.


Saludos cordiales;

Lic. Allan R. Acuña
Desarrollador Independiente
msn= allan...@hotmail.com
skype= niceasysoft
            +(505) 8 831 8191      
www.NicEasySoft.com
Managua, Nicaragua
Centroamérica



From: wr...@hotmail.com
To: publice...@googlegroups.com
Subject: RE: [vfp] Consulta para Aplicación para Restaurante Buffete
Date: Thu, 15 Nov 2012 04:12:57 +0000
--
 
 
 

Walter R. Ojeda Valiente

unread,
Nov 15, 2012, 8:10:31 PM11/15/12
to publice...@googlegroups.com
Le estoy haciendo algunas mejoras a la clase MDI que publiqué ayer, así que si alguien tiene alguna sugerencia este es un buen momento para decirla.

Saludos.

Walter.


"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House



Subject: [vfp] Clase para utilizar formularios MDI
Date: Thu, 15 Nov 2012 03:23:07 +0000
--
 
 
 

Jose Antonio Blasco

unread,
Nov 16, 2012, 4:10:29 AM11/16/12
to Comunidad de Visual Foxpro en Español
Walter, por la diferencia horaria no he visto tu post hasta ahora.

Una sugerencia, cuando pinchas en "Arriba-Abajo" o "Izquierda-Derecha", los formularios se redimensionan
¿Seria posible que mantuvieran su tamaño original, y se solaparan como cuando se ponen "En cascada" ?

Un saludo, y muchas gracias por todas tus aportaciones.



--
 
 
 



--
Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2

"No hay camino hacia la libertad, la libertad es el camino" - Indira Gandhi
“Nunca te olvides de sonreír, porque el día que no sonrías  será un día perdido”  -  Charles Chaplin
“Todo el mundo quiere tener un amigo, pero pocos se toman la molestia de ser uno”
- Anónimo

Walter R. Ojeda Valiente

unread,
Nov 16, 2012, 7:41:31 AM11/16/12
to publice...@googlegroups.com
Sí, José, esa es justamente una de las mejoras que tiene la última versión. Si tienes alguna otra sugerencia, bienvenida.


Saludos.

Walter.

"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House




Date: Fri, 16 Nov 2012 10:10:29 +0100
Subject: Re: [vfp] Clase para utilizar formularios MDI
From: jabl...@gmail.com
To: publice...@googlegroups.com
--
 
 
 

Jose Antonio Blasco

unread,
Nov 16, 2012, 10:05:53 AM11/16/12
to Comunidad de Visual Foxpro en Español
Walter, los botones inferiores, con los forms abiertos, no crees que deberían limitarse a verse 3 y activar si fuesen más, flechas para "anterior", "siguiente", o bien un desplegable para elegir.

Un saludo.

Walter R. Ojeda Valiente

unread,
Nov 16, 2012, 10:34:34 AM11/16/12
to publice...@googlegroups.com
Puede ser, podría ponerse como alternativa. Yo me basé en el programa EMS SQL Manager for Firebird, el cual lo implementa de la misma forma que hice yo. O sea, ví como lo hacían ellos e hice igual.


Saludos.

Walter.

"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House




Date: Fri, 16 Nov 2012 16:05:53 +0100
--
 
 
 

Mary

unread,
Nov 16, 2012, 12:50:32 PM11/16/12
to publice...@googlegroups.com
no crees q seria mejor una clase redidente en memoria que cuando uno abra un form se creo el tab poniendo en el formulario que uno abre algun codigo para se lanze el tab
por seria menos probelematico para aplicaciones grnades que ya estan hechas es un idea no mas

Walter R. Ojeda Valiente

unread,
Nov 16, 2012, 8:41:30 PM11/16/12
to publice...@googlegroups.com
No.

Saludos.

Walter.


"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House




Date: Fri, 16 Nov 2012 09:50:32 -0800
From: maeo...@gmail.com
To: publice...@googlegroups.com
Subject: [vfp] Re: Clase para utilizar formularios MDI
--
 
 
 

angel mena delgado

unread,
Nov 19, 2012, 7:40:44 PM11/19/12
to publice...@googlegroups.com
estoy terminando uno parecido solo que para un bar. aun que podrías tomarlo como base

te platicare a grandes rasgos igual y te das un idea.

Productos.  aquí lo mas complicado fue la Cocteleria ya que tuve que agregar  una tabla para indicar que insumos utilizaría y cantidades en mililitros.

ej.  
       cocteleria 
     PRODUCTO piña colada  1000 ml      
     INSUMOS...  piña  500 ml  ron  200 crema de coco 300

también en cada producto le indicamos si la venta sera por botella  y/o Copeo
Claro el precio por cada cosa..

Bacardi Añejo 3/4      BOTELLA       345.00    COPEO  30.00
  IMPORTATE...  indicar los ml por copeo. (50ml por copa..)


al momento de hacer el corte de caja. se calculan los ml utilizados por copeo y por coclearia. y cuando los ml acomplete una botellas se registra una salida automática
en el los movimientos.

Algo con lo que me atore un par de dias fue al momento de atender las mesas.
debes de mantener 50 o mas abiertas y con posibilidad de agregar productos en todas
y cada una de allas.


Tablas que utilizo

productos
categorias
insumos
meseros
mesas
cajas

general
detallado

movientos (entradas, salidas, inventario incial, ventas,compras)
para que nuestro inventario este bien.



poner atencion especial al momento de cobrar...

por centaje de los meseros
descuentos en efectivo
cortesias
algun porcentaje por uso de tarjetas bancarias



Espero que te sea de ayuda.

Saludos

Ángel Mena Delgado
Programador independiente
Texcoco, Estado de México


.


 









--
 
 
 

Arnaldo Toledano

unread,
Nov 20, 2012, 7:44:56 AM11/20/12
to publice...@googlegroups.com
Desarrolle un sistema para Restauran el cual abandone porque los Restauran en Argentina te ocasionan mas problemas que rédito monetario.
Para mi es muy sencillo.
1.- Los items los definís como cualquier ITEMS de cualquier sistema que tenga control de Stock.
1.1.- En mi caso le definía dos precios, puesto que es común que algunos bares-restauran tengan dos precios, uno para el día y otro para la noche.
1.2.- A los efectos de llevar un control de la materia prima,  cada ITEMS tenia un CAMPO que me indicaba si ESTABA asociado a una ARREGLO O FORMULA.
1.2.1. Si estaba asociado, tenia por separado otra tabla que contenía la formula.
    Ejemplo.
    Ítem para la venta.
    CÓDIGO            DESCRIPCIÓN             COSTO            PRECIO VTA1     PRECIO VTA2   etc-
    1500             PIZZA COMÚN                50.00                100.00            120.00
            Tabla de la formula
            CÓDIGO ÍTEM PADRE     CÓDIGO ÍTEM MATERIA PRIMA         DESCRIPCIÓN            CANTIDAD
            1500                                    15                                                        HARINA                           0.250
            1500                                    16                                                        TOMATE                          0.300
            1500                                    21                                                         QUESO                            0.500
            1500                                    25                                                          MORRONES                   0.100

De esta manera la definición de las formulas es utilizada por el USUARIO cuando este lo considera necesario.     
Cuando se vendía una PIZZA, al dar de baja el Stock, detectaba si tenia FORMULA asociada, si así era, procedía a dar
de baja del Stock de HARINA, TOMATE, QUESO, MORRONES, etc.

Cabe aclarar que cada ITEMS tiene un campo que determina si esta HABILITADO para la VENTA.
De esta manera, NO SE PUEDE FACTURAR el Harina, el Tomate, queso , etc.

2.- MESAS ABIERTAS.
Este ITEMS es interesante, puesto que a una determinada mesa le vas cargando ITEMS a medida que estos son solicitados.
A su vez cada MESA puede ser abierta VARIAS VECES en un  mismo TURNO.
Por lo que la clave primaria era NRO. DE MESA + NRO. DE APERTURA.
Para ello hay que desarrollar una rutina que INCREMENTE el numero de APERTURA.
Recuerdo que tuve un problema imprevisto en este tema.
Se suponía que una MESA no podría ser abierta mas de 99 veces en UN TURNO, por lo tanto era un campo de 2 caracteres.
ERROR.
Un cliente que también tenia DELIBERY y utilizaba la misma mesa para cada venta.
Después de la venta de delibery numero 99, se producían errores que no te cuento.

Si vas a trabajar con Pantalla Touch Screen, te aconsejo que trates de desarrollar la distribución de las mesas en el local.
Donde cada MESA sea un BOTÓN.
Las Mesas ABIERTAS serán BOTONES ENABLES no así las mesas CERRADAS.
Habilitas por separado para ABRIR MESAS.

Google sistemas de restaurante, casi todos tienen DEMOS.
Bajalas y analiza que es lo que te sirve.
http://www.mrcomanda.com acá tenes un BUEN SOFT con explicaciones en PDF.

Suerte



Arnaldo Toledano
Tesys Informática
Córdoba
Argentina

--
 
 
 

--

Allan Raúl Acuña

unread,
Nov 20, 2012, 5:13:47 PM11/20/12
to publice...@googlegroups.com
Muchas gracias Arnaldo

Voy a analizar todo lo expuesto.


Saludos cordiales;

Lic. Allan R. Acuña
Desarrollador Independiente
msn= allan...@hotmail.com
skype= niceasysoft
            +(505) 8 831 8191      
www.NicEasySoft.com
Managua, Nicaragua
Centroamérica



Date: Tue, 20 Nov 2012 09:44:56 -0300
From: arnaldo....@gmail.com
To: publice...@googlegroups.com
Subject: Re: [vfp] Consulta para Aplicación para Restaurante Buffete
--
 
 
 
Reply all
Reply to author
Forward
0 new messages