Formularios Top Level y Formsets

347 views
Skip to first unread message

Alejandro Garcia G.

unread,
Mar 31, 2017, 12:36:50 AM3/31/17
to Comunidad de Visual Foxpro en Español
Saludos.

Tengo el siguiente problema. En una actualización a un programa, utilizo un nuevo menu, la clase de Irwin que me permite tener un formulario con tiles, tipo Windows 8 como Menu principal. El cual lo tengo con ShowWindow 2- As Top-Level form, (no trabajo con el _SCREEN) y WindowType 0 - Modeless. Desde acá lanzo otra pantalla con un menu para el modulo escogido, el cual es otro formulario con ShowWindow = 1 - In Top-Level Form y tambien es Modeles. Todas las opciones (formularios) estan igual salvo que son 1 - Modal.

El problema me aparece cuando utilizo unos Formsets, o cuales he configurado de varias maneras pero no me los muestra cuadno lo llamo en modo de producción. ¿Como debo configurar estos formularios formsets para que me los muestre normalmente?

Fidel Charny

unread,
Mar 31, 2017, 7:34:56 AM3/31/17
to Comunidad de Visual Foxpro en Español
1) Para trabajar con el Screen oculto, todos los formularios deben ser showwindow = 1 o showwindow = 2.
2) Para dejar de renegar, olvídate de los Formsets.
3) Todos los otros formularios son WindowType = 1 ?. Debería haber una justificación importante para eso.

Carlos Miguel FARIAS

unread,
Mar 31, 2017, 8:19:31 AM3/31/17
to Grupo Fox
Fidel. Porque rechazas los Formsets?, son ideales para que se te enrede la lógica, que se ubiquen donde quieren, que el usuario se sienta que esta en el carajo, que tarde más en abrir. Los vas hacer sentir despreciados.
Deberían denunciarte al INADI por discriminar los Formsets.
Los formsets se merecen un monumento...
recordatorio en el cementerio. Pero esto es porque es viernes.
Los formsets son algo que apareció en Fox Dos, con pantallas de caracteres, donde no había posibilidad de herencia de clases, y solo seis niveles de formularios (incluido el _screen), por lo que en diseños complejos, partes comunes a todos los formularios (por ejemplo botones de navegación) debían repetirse en cada formulario (100 formularios navegables, 100 veces el código), que con formsets se re-aprovechaba la parte común.
Y como siempre, VFP lo mantuvo para compatibilidad descendente. Casi no he visto otros lenguajes que haga algo parecido (bueno python mantiene compatibilidad ascendente pero eso es harina de otro foro).
Pero es como pasa siempre, cosas que son ampliamente superadas se empiezan a utilizar porque alguien las "descubre" cuando en realidad se mantuvieron para el que lo estaba usando a la espera que lo reemplace por algo mejor.
Es lo mismo que el uso del append blank + replace, cuando con un INSERT de sql, es más rápido y simple.
Saludos: Miguel, La Pampa (RA)
Larga Vida y Prosperidad
Que la Fuerza los acompañe

Alejandro Garcia G.

unread,
Mar 31, 2017, 9:18:11 AM3/31/17
to Comunidad de Visual Foxpro en Español
Saludos, gracias por la respuesta. Basicamente tengo esos formsets pues ya los encontre dentro del proyecto que estoy modificando. Los deje pensando en que no se me iba a presentar problemas.

He puesto la pregunta para ver si hay alguna manera de seguir utilizandolos, yo en lo personal, no los usaba.

Creo que si no hoy otra opción, voy a reformarlos todos y dejarlos como form normales.

Con el resto de formularios no he tenido problemas, gracias a varios compañeros acá me ha, como Irwin, DC o Saul.

Gracias.

Carlos Miguel FARIAS

unread,
Mar 31, 2017, 9:38:54 AM3/31/17
to Grupo Fox
La forma más fácil de pasar formsets a forms, sin perder las ventajas de la sesión común de datos es usar un pageframe.
Todos y cada uno de los formularios (uno a uno) los pasas a sendos page dentro del pageframe.
Saludos: Miguel, La Pampa (RA)

Fidel Charny

unread,
Mar 31, 2017, 11:38:12 AM3/31/17
to Comunidad de Visual Foxpro en Español
Ja, ja,... Miguel, Odio los formsets!!!!
Y odio también que, leyendo la ayuda de Visual Fox, los formset aparezcan como algo importante. Hace algunos años, perdí una pila de horas de trabajo tratando de acomodar lo inacomodable y de econtrar "la razón de la sinrazón" de este embrollo. Hasta que, por fin, desistí.
Ciertamente que pageframe puede ser una buena opción, incluso con Tabs = .f.. En algún caso puede resultar interesante TabOrientation.
Por ejemplo, en lugar de tener 7 u 8 formularios inmanejables, queda todo sintetizado en uno.

Auto Generated Inline Image 1

Alejandro Garcia G.

unread,
Mar 31, 2017, 11:59:28 AM3/31/17
to Comunidad de Visual Foxpro en Español
Bueno, no soy tan radica, jejeje, pero honestamente no me gustan los formsets, tengo uno que menaje como 10 forms dentro de él es un dolor de cabeza, pero realmente no vale la pena cambiarlo ahora.

Para actualizar, lo que he hecho hasta ahora es lo siguiente: luego de configuarar si es Modal o no, y de colocar todos los forms del formset en 1 In Top-Level, antes de llamar a dicho formset activo el _SCREEN y lo coloco "oculto" dandole la propiedad Left a -3000, ya cuando saldo o cierre, quito el _SCREEN y el left lo dejo en 0.

Hasta ahora me ha funcionado en un 90%, ¿por que en un 90%?, pues resulta que tengo un formset que ademas es una clase, dicho formset tiene 1 solo formulario, y ese formulario unico no me lo esta mostrando, mejor dicho me lo deja detras del formulario principal con que arranca mi formset.

Sigo trabajando para ver si ahorro tiempo con esto, sino me toca como me dijeron, desarmarlo y armarlos por separado (formulario por fomrulario)

Carlos Miguel FARIAS

unread,
Mar 31, 2017, 12:06:47 PM3/31/17
to Grupo Fox
Excelente Fidel, no solo desde los estético, si no desde lo funcional, como CPN puedo decirte que está muy bueno como reporte.
Saludos: Miguel, La Pampa (RA)
Reply all
Reply to author
Forward
0 new messages