


Saludos
Moderator: Rathinagiri
Code: Select all
#include <hmg.ch>
FUNCTION MAIN()
DEFINE WINDOW Win_Main ;
AT 0 , 0 ;
WIDTH 1020 HEIGHT 730 ;
TITLE "PRINCIPAL" ;
FONT "Arial" SIZE 9 ;
MAIN
DEFINE MAIN MENU
POPUP "&Menú"
ITEM 'Orden de compra' ACTION Orden()
END POPUP
END MENU
END WINDOW
ACTIVATE WINDOW Win_Main
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC ORDEN()
IF IsWindowDefined(Win_Orden)=.T.
MINIMIZE WINDOW Win_Orden
RESTORE WINDOW Win_Orden
RETURN
ENDIF
PRIVATE OH_MODO := 'Inicial'
IF ! ISDIR('c:\Farmacom\Ordenes')
CreateFolder('c:\Farmacom\Ordenes')
ENDIF
DEFINE WINDOW Win_Orden ;
AT 0 , 0 ;
WIDTH 600 HEIGHT 500 ;
TITLE "ORDEN DE COMPRA" ;
FONT "Arial" SIZE 9 ;
CHILD ;
NOMAXIMIZE ;
ON INIT OrdenIniciar() ;
ON RELEASE OrdenSalir()
DEFINE MAIN MENU
POPUP "&Operaciones"
ITEM 'Crear' ACTION OrdenCrear()
ITEM 'Grabar' ACTION OrdenGrabar()
ITEM 'Abrir' ACTION OrdenAbrir()
SEPARATOR
ITEM 'Ver estado' ACTION OrdenVer()
END POPUP
END MENU
END WINDOW
CENTER WINDOW Win_Orden
ACTIVATE WINDOW Win_Orden
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenIniciar
OH_MODO := 'Nada'
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenSalir
IF OH_MODO = 'Crear'
MsgInfo('OH_MODO = Crear')
ENDIF
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenCrear
OH_MODO := 'Crear'
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenGrabar
OH_MODO := 'Grabar'
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenAbrir
OH_MODO := 'Abrir'
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenVer
MsgInfo( 'Estado : '+OH_MODO )
RETURN
Code: Select all
#include <hmg.ch>
FUNCTION MAIN()
DEFINE WINDOW Win_Main ;
AT 0 , 0 ;
WIDTH 1020 HEIGHT 730 ;
TITLE "PRINCIPAL" ;
FONT "Arial" SIZE 9 ;
MAIN
DEFINE MAIN MENU
POPUP "&Menú"
ITEM 'Orden de compra' ACTION Orden()
ITEM 'Orden Ver' ACTION OrdenVer() // <============================AQUI TE SALTA EL ERRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOOOOOOOOOOOR!
END POPUP
END MENU
END WINDOW
ACTIVATE WINDOW Win_Main
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC ORDEN()
IF IsWindowDefined(Win_Orden)=.T.
MINIMIZE WINDOW Win_Orden
RESTORE WINDOW Win_Orden
RETURN
ENDIF
PRIVATE OH_MODO := 'Inicial'
IF ! ISDIR('c:\Farmacom\Ordenes')
CreateFolder('c:\Farmacom\Ordenes')
ENDIF
DEFINE WINDOW Win_Orden ;
AT 0 , 0 ;
WIDTH 600 HEIGHT 500 ;
TITLE "ORDEN DE COMPRA" ;
FONT "Arial" SIZE 9 ;
CHILD ;
NOMAXIMIZE ;
ON INIT OrdenIniciar() ;
ON RELEASE OrdenSalir()
DEFINE MAIN MENU
POPUP "&Operaciones"
ITEM 'Crear' ACTION OrdenCrear()
ITEM 'Grabar' ACTION OrdenGrabar()
ITEM 'Abrir' ACTION OrdenAbrir()
SEPARATOR
ITEM 'Ver estado' ACTION OrdenVer()
END POPUP
END MENU
END WINDOW
CENTER WINDOW Win_Orden
ACTIVATE WINDOW Win_Orden
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenIniciar
OH_MODO := 'Nada'
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenSalir
IF OH_MODO = 'Crear'
MsgInfo('OH_MODO = Crear')
ENDIF
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenCrear
OH_MODO := 'Crear'
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenGrabar
OH_MODO := 'Grabar'
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenAbrir
OH_MODO := 'Abrir'
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenVer
MsgInfo( 'Estado : '+OH_MODO )
RETURN
Code: Select all
#include <hmg.ch>
FUNCTION MAIN()
PRIVATE OH_MODO := 'Inicial' // <AQUÍ DECLARO LA VARIABLE Y ES VISIBLE EN TODO EL *.PRG
DEFINE WINDOW Win_Main ;
AT 0 , 0 ;
WIDTH 1020 HEIGHT 730 ;
TITLE "PRINCIPAL" ;
FONT "Arial" SIZE 9 ;
MAIN
DEFINE MAIN MENU
POPUP "&Menú"
ITEM 'Orden de compra' ACTION Orden()
ITEM 'Orden Ver' ACTION OrdenVer()
END POPUP
END MENU
END WINDOW
ACTIVATE WINDOW Win_Main
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC ORDEN()
IF IsWindowDefined(Win_Orden)=.T.
MINIMIZE WINDOW Win_Orden
RESTORE WINDOW Win_Orden
RETURN
ENDIF
IF ! ISDIR('c:\Farmacom\Ordenes')
CreateFolder('c:\Farmacom\Ordenes')
ENDIF
DEFINE WINDOW Win_Orden ;
AT 0 , 0 ;
WIDTH 600 HEIGHT 500 ;
TITLE "ORDEN DE COMPRA" ;
FONT "Arial" SIZE 9 ;
CHILD ;
NOMAXIMIZE ;
ON INIT OrdenIniciar() ;
ON RELEASE OrdenSalir()
DEFINE MAIN MENU
POPUP "&Operaciones"
ITEM 'Crear' ACTION OrdenCrear()
ITEM 'Grabar' ACTION OrdenGrabar()
ITEM 'Abrir' ACTION OrdenAbrir()
SEPARATOR
ITEM 'Ver estado' ACTION OrdenVer()
END POPUP
END MENU
END WINDOW
CENTER WINDOW Win_Orden
ACTIVATE WINDOW Win_Orden
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenIniciar
OH_MODO := 'Nada'
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenSalir
IF OH_MODO = 'Crear'
MsgInfo('OH_MODO = Crear')
ENDIF
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenCrear
OH_MODO := 'Crear'
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenGrabar
OH_MODO := 'Grabar'
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenAbrir
OH_MODO := 'Abrir'
RETURN
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
PROC OrdenVer
MsgInfo( 'Estado : '+OH_MODO )
RETURN
No es Variables publicas, sino lo correcto es "Variables Privadas".Javier Tovar wrote:El ERROR te va a ocurrir cuando tu declares variables publicas en un nivel inferior de donde las quieres llamar. tu codigo es igual que el tuyo solo que llamo a la función "OrdenVer()" desde "Win_Main". Espero que te haya quedado claro.