¿Cómo arreglar el Menu de mi programa?

Estoy aun en la etapa de diseño, y cree un menu para mi sistema, aun no he generado el ejecutable pero cuando llamo al formulario principal desde el cual ejecuto mi menu, todo bien pero luego de ejecutar alguna opción del menu (llamar a un formulario) luego las otras opciones no me funcionan en caso que quiera llamar a otro formulario o Formset abre el explorador y me manda a buscar el archivo pero en el diseño del menu esta el Path correcto. Si genero de nuevo el menu y ejecuto el Form principal de nuevo entonces si se ejecuta correctamente, Dime que puede ser que me este ocasionando este problema o sera yo que se me ha pasado por alto algún detalle. Gracias de nuevo

1 respuesta

Respuesta
1
Mm pues sí está algo raro. Cuando dices que abre el explorador y te pide el archivo ¿qué archivo te pide? ¿Con qué nombre y extensión? ¿No será que te está pidiendo abrir una tabla o algún otro archivo al que haces referencia en el formulario?
Si es posible, trata de especificar más detalles referentes al problema. Por ejemplo, exactamente qué pasos sigues cuando ocurre el problema, a qué archivo aputa alguna de las opciones del menú con la que tienes problemas.
Que bien que no estoy tan mal y que tu lo consideres raro, bueno los comandos son simples por ejemplo tengo la siguiente opcio: llamo a un formulario desde una de las opciones del menu
Set path to "D:\Proyecto D & L Comercial\Formularios"
do formset nuevo_cliente.scx
Puedo trabajar de manera normal y salir de este formset pero en otra de las opciones del menu si la ejecuto me manda a buscar el archivo al que estoy intentando acceder por ejemplo el código de esa opción seria:
Set path to "D:\Proyecto D & L Comercial\Formularios"
Do formset Proveedor.scx
E igual si ejecuto otra de las opciones del menu
et path to "D:\Proyecto D & L Comercial\Formularios"
Do formset Proveedor.scx
Como puedes ver son opciones simples que no contienen código que pueda crear conflicto a como creo. Nuevamente agradezco tu ayuda, Saludes
Te manda a buscar el archivo que estás intentando acceder. ¿Cuál es ese archivo, con extensión?
En el diseñador de menús, ¿qué opción estás escribiendo en el combo de "Resultado"?
Si te es posible, pon el código del menú generado por Visual FoxPro, lo debes encontrar en el archivo con extensión mpr que se guarda con el mismo nombre que el menú.
lparameters
oformref, getmenuname, luniquepopups, parm4, parm5, parm6, parm7, parm8, parm9
local
cmenuname, ntotpops, a_menupops, ctypeparm2, csaveformname
if type
("m.oformref") # "o" or ;
lower(m.oformref.baseclass) # 'form' or ;
m.oformref.
showwindow # 2
messagebox([this menu can only be called from a top-level form. ensure that your form's showwindow property is set to 2. read the header section of the menu's mpr file for more details.])
return
endif
m.ctypeparm2 =
type("m.getmenuname")
m.cmenuname =
sys(2015)
m.csaveformname = m.oformref.
name
if
m.ctypeparm2 = "c" or (m.ctypeparm2 = "l" and m.getmenuname)
m.oformref.
name = m.cmenuname
endif
if
m.ctypeparm2 = "c" and !empty(m.getmenuname)
m.cmenuname = m.getmenuname
endif
dimension
a_menupops[13]
if type
("m.luniquepopups")="l" and m.luniquepopups
for ntotpops = 1 to alen(a_menupops)
a_menupops[m.ntotpops]=
sys(2015)
endfor
else
a_menupops[1]="administra"
a_menupops[2]="productos"
a_menupops[3]="personal"
a_menupops[4]="documentos"
a_menupops[5]="reportesde"
a_menupops[6]="costos"
a_menupops[7]="facturacio"
a_menupops[8]="transaccio"
a_menupops[9]="ventas"
a_menupops[10]="consultarv"
a_menupops[11]="graficos"
a_menupops[12]="resumen"
a_menupops[13]="ayuda"
endif
* *********************************************************
* *
* * menu definition
* *
* *********************************************************
*
define menu
(m.cmenuname) in (m.oformref.name) bar
define pad
_3ae00lejt of (m.cmenuname) prompt "\<administrar" color scheme 3 ;
key alt+a, ""
define pad
_3ae00leju of (m.cmenuname) prompt "\<documentos" color scheme 3 ;
key alt+d, ""
define pad
_3ae00lejv of (m.cmenuname) prompt "\<facturacion" color scheme 3 ;
key alt+f, ""
define pad
_3ae00lejw of (m.cmenuname) prompt "\<transaccion" color scheme 3 ;
key alt+t, ""
define pad
_3ae00lejx of (m.cmenuname) prompt "\<ventas" color scheme 3 ;
key alt+v, ""
define pad
_3ae00lejy of (m.cmenuname) prompt "\<resumen" color scheme 3 ;
key alt+r, ""
define pad
_3ae00lejz of (m.cmenuname) prompt "a\<yuda" color scheme 3 ;
key alt+y, ""
define pad
_3ae00lek0 of (m.cmenuname) prompt "\<salir del sistema" color scheme 3 ;
key alt+s, ""
on pad
_3ae00lejt of (m.cmenuname) activate popup (a_menupops[1])
on pad
_3ae00leju of (m.cmenuname) activate popup (a_menupops[4])
on pad
_3ae00lejv of (m.cmenuname) activate popup (a_menupops[7])
on pad
_3ae00lejw of (m.cmenuname) activate popup (a_menupops[8])
on pad
_3ae00lejx of (m.cmenuname) activate popup (a_menupops[9])
on pad
_3ae00lejy of (m.cmenuname) activate popup (a_menupops[12])
on pad
_3ae00lejz of (m.cmenuname) activate popup (a_menupops[13])
on selection pad
_3ae00lek0 of (m.cmenuname) ;
do _3ae00lek1 ;
in locfile("\proyecto d & l comercial\menus\menuprincipal" ,"mpx;mpr|fxp;prg" ,"where is menuprincipal?")
define popup
(a_menupops[1]) margin relative shadow color scheme 4
define bar
1 of (a_menupops[1]) prompt "\<clientes"
define bar
2 of (a_menupops[1]) prompt "\-"
define bar
3 of (a_menupops[1]) prompt "\<proveedores"
define bar
4 of (a_menupops[1]) prompt "\-"
define bar
5 of (a_menupops[1]) prompt "productos"
define bar
6 of (a_menupops[1]) prompt "\-"
define bar
7 of (a_menupops[1]) prompt "personal"
define bar
8 of (a_menupops[1]) prompt "\-"
define bar
9 of (a_menupops[1]) prompt "usuarios"
on selection bar
1 of (a_menupops[1]) ;
do _3ae00lek2 ;
in locfile("\proyecto d & l comercial\menus\menuprincipal" ,"mpx;mpr|fxp;prg" ,"where is menuprincipal?")
on selection bar
3 of (a_menupops[1]) ;
do _3ae00lek3 ;
in locfile("\proyecto d & l comercial\menus\menuprincipal" ,"mpx;mpr|fxp;prg" ,"where is menuprincipal?")
on bar
5 of (a_menupops[1]) activate popup (a_menupops[2])
on bar
7 of (a_menupops[1]) activate popup (a_menupops[3])
on selection bar
9 of (a_menupops[1]) ;
do _3ae00lek4 ;
in locfile("\proyecto d & l comercial\menus\menuprincipal" ,"mpx;mpr|fxp;prg" ,"where is menuprincipal?")
define popup
(a_menupops[2]) margin relative shadow color scheme 4
define bar
1 of (a_menupops[2]) prompt "nuevos"
define bar
2 of (a_menupops[2]) prompt "\-"
define bar
3 of (a_menupops[2]) prompt "eliminar"
define bar
4 of (a_menupops[2]) prompt "\-"
define bar
5 of (a_menupops[2]) prompt "inventario"
on selection bar
1 of (a_menupops[2]) ;
do _3ae00lek5 ;
in locfile("\proyecto d & l comercial\menus\menuprincipal" ,"mpx;mpr|fxp;prg" ,"where is menuprincipal?")
on selection bar
5 of (a_menupops[2]) ;
do _3ae00lek6 ;
in locfile("\proyecto d & l comercial\menus\menuprincipal" ,"mpx;mpr|fxp;prg" ,"where is menuprincipal?")
define popup
(a_menupops[3]) margin relative shadow color scheme 4
define bar
1 of (a_menupops[3]) prompt "administrativo / servicio"
define bar
2 of (a_menupops[3]) prompt "\-"
define bar
3 of (a_menupops[3]) prompt "ventas"
on selection bar
1 of (a_menupops[3]) ;
do _3ae00lek7 ;
in locfile("\proyecto d & l comercial\menus\menuprincipal" ,"mpx;mpr|fxp;prg" ,"where is menuprincipal?")
on selection bar
3 of (a_menupops[3]) ;
do _3ae00lek8 ;
in locfile("\proyecto d & l comercial\menus\menuprincipal" ,"mpx;mpr|fxp;prg" ,"where is menuprincipal?")
define popup
(a_menupops[4]) margin relative shadow color scheme 4
define bar
1 of (a_menupops[4]) prompt "reportes de ventas"
define bar
2 of (a_menupops[4]) prompt "\-"
define bar
3 of (a_menupops[4]) prompt "costos"
on bar
1 of (a_menupops[4]) activate popup (a_menupops[5])
on bar
3 of (a_menupops[4]) activate popup (a_menupops[6])
define popup
(a_menupops[5]) margin relative shadow color scheme 4
define bar
1 of (a_menupops[5]) prompt "por vendedor"
define bar
2 of (a_menupops[5]) prompt "\-"
define bar
3 of (a_menupops[5]) prompt "por categoria producto"
define bar
4 of (a_menupops[5]) prompt "\-"
define bar
5 of (a_menupops[5]) prompt "ventas generales"
define popup
(a_menupops[6]) margin relative shadow color scheme 4
define bar
1 of (a_menupops[6]) prompt "alquileres"
define bar
2 of (a_menupops[6]) prompt "\-"
define bar
3 of (a_menupops[6]) prompt "salario basico y comisiones"
define bar
4 of (a_menupops[6]) prompt "\-"
define bar
5 of (a_menupops[6]) prompt "horas extras"
define bar
6 of (a_menupops[6]) prompt "\-"
define bar
7 of (a_menupops[6]) prompt "impuestos"
define bar
8 of (a_menupops[6]) prompt "\-"
define bar
9 of (a_menupops[6]) prompt "transporte"
define bar
10 of (a_menupops[6]) prompt "\-"
define bar
11 of (a_menupops[6]) prompt "viaticos"
define popup
(a_menupops[7]) margin relative shadow color scheme 4
define bar
1 of (a_menupops[7]) prompt "crear factura"
define bar
2 of (a_menupops[7]) prompt "\-"
define bar
3 of (a_menupops[7]) prompt "consultar"
define bar
4 of (a_menupops[7]) prompt "\-"
define bar
5 of (a_menupops[7]) prompt "devoluciones"
define bar
6 of (a_menupops[7]) prompt "\-"
define bar
7 of (a_menupops[7]) prompt "imprimir"
on selection bar
1 of (a_menupops[7]) ;
do _3ae00lek9 ;
in locfile("\proyecto d & l comercial\menus\menuprincipal" ,"mpx;mpr|fxp;prg" ,"where is menuprincipal?")
define popup
(a_menupops[8]) margin relative shadow color scheme 4
define bar
1 of (a_menupops[8]) prompt "gastos del mes"
define bar
2 of (a_menupops[8]) prompt "\-"
define bar
3 of (a_menupops[8]) prompt "ingresos"
define bar
4 of (a_menupops[8]) prompt "\-"
define bar
5 of (a_menupops[8]) prompt "planilla de pago"
define popup
(a_menupops[9]) margin relative shadow color scheme 4
define bar
1 of (a_menupops[9]) prompt "consultar ventas"
define bar
2 of (a_menupops[9]) prompt "\-"
define bar
3 of (a_menupops[9]) prompt "graficos"
on bar
1 of (a_menupops[9]) activate popup (a_menupops[10])
on bar
3 of (a_menupops[9]) activate popup (a_menupops[11])
define popup
(a_menupops[10]) margin relative shadow color scheme 4
define bar
1 of (a_menupops[10]) prompt "ventas por vendedor"
define bar
2 of (a_menupops[10]) prompt "\-"
define bar
3 of (a_menupops[10]) prompt "ventas por categoria de producto"
define bar
4 of (a_menupops[10]) prompt "\-"
define bar
5 of (a_menupops[10]) prompt "ventas generales"
define popup
(a_menupops[11]) margin relative shadow color scheme 4
define bar
1 of (a_menupops[11]) prompt "ventas por vendedor"
define bar
2 of (a_menupops[11]) prompt "\-"
define bar
3 of (a_menupops[11]) prompt "ventas por categoria de producto"
define bar
4 of (a_menupops[11]) prompt "\-"
define bar
5 of (a_menupops[11]) prompt "ventas generales"
define popup
(a_menupops[12]) margin relative shadow color scheme 4
define bar
1 of (a_menupops[12]) prompt "valance general de efectivo"
define popup
(a_menupops[13]) margin relative shadow color scheme 4
define bar
1 of (a_menupops[13]) prompt "uso y manejo del sistema d & l comercial"
define bar
2 of (a_menupops[13]) prompt "\-"
define bar
3 of (a_menupops[13]) prompt " soporte tecnico"
define bar
4 of (a_menupops[13]) prompt "\-"
define bar
5 of (a_menupops[13]) prompt "acerca de d & l comercial"
activate menu
(m.cmenuname) nowait
if
m.ctypeparm2 = "c"
m.getmenuname = m.cmenuname
m.oformref.
name = m.csaveformname
endif
* *********************************************************
* *
* * _3ae00lek1 on selection pad
* *
* * procedure origin:
* *
* * from menu: menuprincipal.mpr, record: 117
* * called by: on selection pad
* * prompt: salir del sistema
* * snippet: 1
* *
* *********************************************************
*
procedure
_3ae00lek1
release menus
* *********************************************************
* *
* * _3ae00lek2 on selection bar 1 of popup administra
* *
* * procedure origin:
* *
* * from menu: menuprincipal.mpr, record: 5
* * called by: on selection bar 1 of popup administra
* * prompt: clientes
* * snippet: 2
* *
* *********************************************************
*
procedure
_3ae00lek2
set path to
"d:\proyecto d & l comercial\formularios"
do formset
nuevo_cliente.scx
* *********************************************************
* *
* * _3ae00lek3 on selection bar 3 of popup administra
* *
* * procedure origin:
* *
* * from menu: menuprincipal.mpr, record: 8
* * called by: on selection bar 3 of popup administra
* * prompt: proveedores
* * snippet: 3
* *
* *********************************************************
*
procedure
_3ae00lek3
set path to
"d:\proyecto d & l comercial\formularios"
do formset
proveedor.scx
* *********************************************************
* *
* * _3ae00lek4 on selection bar 9 of popup administra
* *
* * procedure origin:
* *
* * from menu: menuprincipal.mpr, record: 30
* * called by: on selection bar 9 of popup administra
* * prompt: usuarios
* * snippet: 4
* *
* *********************************************************
*
procedure
_3ae00lek4
set path to
"d:\proyecto d & l comercial\formularios"
do formset
control_acceso.scx
* *********************************************************
* *
* * _3ae00lek5 on selection bar 1 of popup productos
* *
* * procedure origin:
* *
* * from menu: menuprincipal.mpr, record: 13
* * called by: on selection bar 1 of popup productos
* * prompt: nuevos
* * snippet: 5
* *
* *********************************************************
*
procedure
_3ae00lek5
set path to
"d:\proyecto d & l comercial\formularios"
do formset
productos.scx
* *********************************************************
* *
* * _3ae00lek6 on selection bar 5 of popup productos
* *
* * procedure origin:
* *
* * from menu: menuprincipal.mpr, record: 19
* * called by: on selection bar 5 of popup productos
* * prompt: inventario
* * snippet: 6
* *
* *********************************************************
*
procedure
_3ae00lek6
set path to
"d:\proyecto d & l comercial\formularios"
do formset
inventario.scx
* *********************************************************
* *
* * _3ae00lek7 on selection bar 1 of popup personal
* *
* * procedure origin:
* *
* * from menu: menuprincipal.mpr, record: 24
* * called by: on selection bar 1 of popup personal
* * prompt: administrativo / servicio
* * snippet: 7
* *
* *********************************************************
*
procedure
_3ae00lek7
set path to
"d:\proyecto d & l comercial\formularios"
do formset
nuevo_empleado.scx
* *********************************************************
* *
* * _3ae00lek8 on selection bar 3 of popup personal
* *
* * procedure origin:
* *
* * from menu: menuprincipal.mpr, record: 27
* * called by: on selection bar 3 of popup personal
* * prompt: ventas
* * snippet: 8
* *
* *********************************************************
*
procedure
_3ae00lek8
set path to
"d:\proyecto d & l comercial\formularios"
do formset
vendedores.scx
* *********************************************************
* *
* * _3ae00lek9 on selection bar 1 of popup facturacio
* *
* * procedure origin:
* *
* * from menu: menuprincipal.mpr, record: 64
* * called by: on selection bar 1 of popup facturacio
* * prompt: crear factura
* * snippet: 9
* *
* *********************************************************
*
procedure
_3ae00lek9
set path to
"d:\proyecto d & l comercial\formularios"
do form
facturar.scx
Bien, ya veo lo que está pasando. Lo que pasa es que cuando generaste tu menú tu proyecto tal vez estaba en una carpeta y después la cambiaste, es por eso que no encuentra los procedimientos del menú y te pide que los ubiques. Mira, esa es la carpeta que tenías cuando lo generaste "proyecto de & l comercial\menus\menuprincipal" y es ahí donde está buscando el archivo ".mpr".
Lo que puedes hacer aquí es generar otra vez el menú pero ya desde la carpeta donde lo vayas a dejar y no moverla porque si no pasaría lo mismo. Esta opción no es muy agradable que digamos pero debe funcionar.
Otra es que, siendo que tus comandos sólo abren un formulario, puedes usar la opción "Command" o "Comando" al diseñar el menú en vez de la de "Procedure" o "Procedimiento" y en la instrucción le pones el comando "DO FORM ...". Si ocupas establecer una ruta para que se busquen los archivos, eso lo puedes hacer antes de mandar llamar el menú.
SET PATH TO "d:\proyecto d & l comercial\formularios"
DO TuMenu. Mpr
Obviamente cuando hagas el cambio al menú, deberás volver a generarlo.
Gracias por este aporte, me gustaría saber donde aprendiste tanto sobre Visual Foxpro porque la ayuda del MSDN es completa pero poco explicativa muchas veces tenemos que deducir el comportamiento de los comandos. Gracias de nuevo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas