XBase - MENU TO - DO CASE

 
Vista:

MENU TO - DO CASE

Publicado por Antonio (3 intervenciones) el 23/03/2008 00:53:59
Hola a todos,
Tengo un viejo programa en clipper 5.3 y quiero pasarlo a Alaska Xbase++ (estoy verde como una cebolla).
Mi primer atranque es el siguiente:
Tengo un primer PRG con un menu principal, usando MENU TO y DO CASE llamo a los demás PRG´s mediante DO NOMBREPRG .
Ya he leido que hay que cambiar DO por SET PROCEDURE TO, pero no me funciona, no consigo que me llame a los otros PRG´s.
Alguién me lo podría explicar detalladamente, si es con un ejemplo mejor, de un menú principal que haga una llamada a otros prg´s. Le estaría muy agradecido.

Un saludo.

Antonio
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:MENU TO - DO CASE

Publicado por antonio (37 intervenciones) el 23/03/2008 11:42:40
SET PROCEDURE TO REORGA
SET PROCEDURE TO FACTURAS
SET PROCEDURE TO CLIENTES
SET PROCEDURE TO COPYFACT
SET PROCEDURE TO BORRAFAC
SET PROCEDURE TO CLIENTES
SET PROCEDURE TO NUMEROS
SET PROCEDURE TO FACTURAR
SET PROCEDURE TO FACTURA1
SET PROCEDURE TO LISFACTU
SET PROCEDURE TO LISFAIVA
SET PROCEDURE TO LISTACLI
SET PROCEDURE TO LISFACLI
SET PROCEDURE TO BORRAR
SET PROCEDURE TO SACAIMPR
SET PROCEDURE TO CREAFI
SET PROCEDURE TO DESCOMP
SET PROCEDURE TO LISTARE
SET PROCEDURE TO ANNADIR
SET PROCEDURE TO CREAPDF
#include "Appevent.ch"
#include "Xbp.ch"
**************
PROCEDURE Main
LOCAL nEvent, mp1, mp2, oXbp
SET SCOREBOARD OFF
SET DATE BRITISH
SET CENTURY ON
SET EPOCH TO 2000
SetAppWindow():useShortCuts := .T.
SetColor( "N/W" )
SetCancel( .F. )
CLS
SetMouse(.T.)
do reorga
CLS
SetAppWindow():mouseMode := XBPCRT_MOUSEMODE_PM
CreateMenuSystem( SetAppWindow():menuBar() )
DO WHILE nEvent <> xbeP_Close
CLOSE DATABASES
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
PROCEDURE CreateMenuSystem( oMenubar )
LOCAL oMenu, oSubMenu
********
oMenu := XbpMenu():new( oMenuBar )
oMenu:title := "~Facturas"
oMenu:create()
oMenu:itemSelected := {|nItem| MenuDispatcher( 100+nItem ) }
oMenu:addItem( {"~Facturas" , NIL} )
oMenu:addItem( {"~Copiar Facturas", NIL} )
oMenu:addItem( {"~Borrar Facturas", NIL} )
oMenubar:addItem( {oMenu, NIL} )
********
oMenu := XbpMenu():new( oMenuBar )
oMenu:title := "~Ficheros"
oMenu:create()
oMenu:itemSelected := {|nItem| MenuDispatcher( 200+nItem ) }
oMenu:addItem( {"~Clientes" , NIL} )
oMenu:addItem( {"~N£m Recibos y Facturas", NIL} )
oMenu:addItem( {"~Facturas", NIL} )
oMenu:addItem( {"~Recibos", NIL} )
oMenu:addItem( {"~Fichero Recibido", NIL} )
oMenu:addItem( {"~Fichero de datos", NIL} )
oMenubar:addItem( {oMenu, NIL} )
********
oMenu := XbpMenu():new( oMenuBar )
oMenu:title := "~Listados"
oMenu:create()
oMenu:itemSelected := {|nItem| MenuDispatcher( 300+nItem ) }
oMenu:addItem( {"~Facturar" , NIL} )
oMenu:addItem( {"~Listados Fac/Rec.", NIL} )
oMenu:addItem( {"~Facturaci¢n Por Cliente", NIL} )
oMenu:addItem( {"~Entre fechas por Ivas", NIL} )
oMenu:addItem( {"~Clientes", NIL} )
oMenu:addItem( {"~Lista Facturas/Recibos Recibidos", NIL} )
oMenu:addItem( {"~Crea fichero PDF de una Factura o Recibo", NIL} )
oMenubar:addItem( {oMenu, NIL} )
********
oMenu := XbpMenu():new( oMenuBar )
oMenu:title := "~Utilidades"
oMenu:create()
oMenu:itemSelected := {|nItem| MenuDispatcher( 400+nItem ) }
oMenu:addItem( {"~Reorganizar Ficheros" , NIL} )
oMenu:addItem( {"~Borrar F/R entre Fechas", NIL} )
oMenu:addItem( {"~Crear Fichero a Enviar", NIL} )
oMenu:addItem( {"~Descomprimir Fichero Recibido", NIL} )
oMenu:addItem( {"~A¤adir Fichero Recibido al Historico", NIL} )
oMenubar:addItem( {oMenu, NIL} )
********
oMenu := XbpMenu():new( oMenuBar )
oMenu:title := "~Salir"
oMenu:create()
oMenu:itemSelected := {|nItem| MenuDispatcher( 500+nItem ) }
oMenu:addItem( {"~Salir", NIL} )
oMenubar:addItem( {oMenu, NIL} )
********
RETURN
********
PROCEDURE MenuDispatcher( nSelection )
DO CASE
CASE nSelection == 101
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
do facturas
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 102
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
DO COPYFACT
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 103
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
DO BORRAFAC
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 201
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
DO CLIENTES
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 202
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
DO NUMEROS
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 203
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
USE HISFACTU EXCLUSIV
SET INDEX TO HISFACTU
EDITDB(.T.)
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 204
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
USE HISRECI EXCLUSIV
SET INDEX TO HISRECI
EDITDB(.T.)
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 205
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
USE RECIBIDO EXCLUSIV
SET INDEX TO FAC
EDITDB(.T.)
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 206
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
USE ZONA EXCLUSIV
EDITDB(.T.)
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 301
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
CLEAR
DO FACTURAR
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 302
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
DO LISFACTU
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 303
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
DO LISFACLI
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 304
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
DO LISFAIVA
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 305
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
DO LISTACLI
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 306
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
DO LISTARE
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 307
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
DO CREAPDF
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 401
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
DO REORGA
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 402
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
DO BORRAR
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 403
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
DO CREAFI
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 404
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
DO DESCOMP
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 405
SetMouse(.F.)
SAVE SCREEN TO UNA
SET CURSOR ON
DO ANNADIR
SET CURSOR OFF
CLEAR
RESTORE SCREEN FROM UNA
SetMouse(.T.)
CASE nSelection == 501
CLOSE ALL
QUIT
ENDCASE
RETURN
*******************
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MENU TO - DO CASE

Publicado por Antonio (3 intervenciones) el 23/03/2008 23:50:35
Muchisimas Gracias Antonio(mr), me has aydado a salir del atranque. Te estoy muy agradecido, FUNCIONA. Gracias, Gracias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar