Saludos
Como puedo rehacer un menu que llame a otro para que lo reemplace en tiempo de ejecucion ? Por ejemplo, llamar desde una opcion del menu los reportes de almacen y los reemplace en una opcion reportes ya existente ?
Gracias de antemano
oWnd : SetMenu( MiMenu() )
horacio wrote:Quizás con SetMenu una vez que hayas modificado el menú
- Code: Select all Expand view
oWnd : SetMenu( MiMenu() )
Saludos
function BuildMenu()
local oMenu, oMain
MENU oMenu
MENUITEM oMain PROMPT "Inicio "
MENUITEM oMain PROMPT "Tablas "
MENU
MENUITEM "Bancos " ACTION BuildMnuBanco()
MENUITEM "Almacen " ACTION BuildMnuInventario()
ENDMENU
MENUITEM oMain PROMPT "Reportes de Inventario "
MENU
MENUITEM "Reporte Inventario "
MENUITEM "Reporte Almacen "
ENDMENU
ENDMENU
return oMenu
function BuildMnuBanco()
local oMenu, oMain
MENU oMenu
MENUITEM oMain PROMPT "Inicio "
MENUITEM oMain PROMPT "Tablas "
MENU
MENUITEM "Bancos " ACTION BuildMnuBanco()
MENUITEM "Almacen " ACTION BuildMnuInventario()
ENDMENU
MENUITEM oMain PROMPT "Reportes de Bancos "
MENU
MENUITEM "Reporte Bancos "
MENUITEM "Reporte Cajas "
ENDMENU
ENDMENU
return oMenu
Function BuildMenu()
Local oMenu
Local oMain := Array( 7, 0 )
MENU oMenu
MenuItem oMain[ 1 ] Prompt "Inicio "
MenuItem oMain[ 2 ] Prompt "Tablas "
MENU
MenuItem oMain[ 3 ] Prompt "Bancos" Action BuildMnuBanco( oMain )
MenuItem oMain[ 4 ] Prompt "Almacen" Action BuildMnuInventario( oMain )
EndMenu
MenuItem oMain[ 5 ] Prompt "Reportes de Inventario "
MENU
MenuItem oMain[ 6 ] Prompt "Reporte Inventario "
MenuItem oMain[ 7 ] Prompt "Reporte Almacen "
EndMenu
EndMenu
Return oMenu
//----------------------------------------------------------------------------//
Function BuildMnuBanco( oMain )
oMain[ 5 ] : SetText( "Reportes de Bancos" )
oMain[ 6 ] : SetText( "Reporte Bancos" )
oMain[ 7 ] : SetText( "Reporte Cajas" )
oMain[ 6 ] : bAction := { || ReporteBancos() }
oMain[ 7 ] : bAction := { || ReporteCajas() }
Return 0
//----------------------------------------------------------------------------//
Function BuildMnuInventario( oMain )
oMain[ 5 ] : SetText( "Reportes de Inventario" )
oMain[ 6 ] : SetText( "Reporte Inventario" )
oMain[ 7 ] : SetText( "Reporte Almacen" )
oMain[ 6 ] : bAction := { || ReporteInventario() }
oMain[ 7 ] : bAction := { || ReporteAlmacen() }
Return 0
oWnd :SetMenu( NIL ) // Destruyes el Menu
oWnd :SetMenu( BuildMenu() ) // Rehacer el menú
#include "fivewin.ch"
Static oWnd
//----------------------------------------------------------------------------//
Function Main()
Define Window oWnd Menu BuildMenu()
Activate Window oWnd Maximized
Return 0
//----------------------------------------------------------------------------//
Function BuildMenu()
Local oMenu
Local oMain := Array( 7, 0 )
MENU oMenu
MenuItem oMain[ 1 ] Prompt "Inicio "
MenuItem oMain[ 2 ] Prompt "Tablas "
MENU
MenuItem oMain[ 3 ] Prompt "Bancos" Action BuildMnuBanco( oMain )
MenuItem oMain[ 4 ] Prompt "Almacen" Action BuildMnuInventario( oMain )
EndMenu
MenuItem oMain[ 5 ] Prompt "Reportes de Inventario "
MENU
MenuItem oMain[ 6 ] Prompt "Reporte Inventario "
MenuItem oMain[ 7 ] Prompt "Reporte Almacen "
EndMenu
EndMenu
Return oMenu
//----------------------------------------------------------------------------//
Function BuildMnuBanco( oMain )
oMain[ 5 ] : SetText( "Reportes de Bancos" )
oMain[ 6 ] : SetText( "Reporte Bancos" )
oMain[ 7 ] : SetText( "Reporte Cajas" )
Return 0
//----------------------------------------------------------------------------//
Function BuildMnuInventario( oMain )
oMain[ 5 ] : SetText( "Reportes de Inventario" )
oMain[ 6 ] : SetText( "Reporte Inventario" )
oMain[ 7 ] : SetText( "Reporte Almacen" )
Return 0
..ACTION ( oWnd:SetMenu( oMenu2 ), oWnd:Refresh() )
#include "fivewin.ch"
function Main()
local oWnd, oMenu1, oMenu2
MENU oMenu1
MENUITEM "One"
MENUITEM "SetMenu-2" ACTION ( oWnd:SetMenu( oMenu2 ), oWnd:Refresh() )
ENDMENU
MENU oMenu2
MENUITEM "Two"
MENUITEM "SetMenu-1" ACTION ( oWnd:SetMenu( oMenu1 ), oWnd:Refresh() )
ENDMENU
DEFINE WINDOW oWnd MENU oMenu1
ACTIVATE WINDOW ownd CENTERED
return nil
#include "Fivewin.ch"
Static oWnd
Function Main()
DEFINE WINDOW oWnd TITLE "Change Menu " + FWVERSION MENU BuildMenu()
ACTIVATE WINDOW oWnd MAXIMIZED
Return nil
//----------------------------------------------------------------------------//
Function BuildMenu( n )
local oMenu
DEFAULT n := 1
MENU oMenu
MENUITEM "Inicio"
MENU
MENUITEM "Salir" ACTION oWnd:End()
ENDMENU
MENUITEM "Tablas"
MENU
MENUITEM "Bancos " ACTION ChangeMenu( 2 )
MENUITEM "Almacen" ACTION ChangeMenu( 1 )
ENDMENU
Do Case
Case n = 1
MENUITEM "Reportes de Inventario"
MENU
MENUITEM "Reporte Inventario"
MENUITEM "Reporte Almacen"
ENDMENU
Case n = 2
MENUITEM "Reportes de Bancos"
MENU
MENUITEM "Reporte Bancos"
MENUITEM "Reporte Cajas"
ENDMENU
EndCase
ENDMENU
Return oMenu
//----------------------------------------------------------------------------//
Function ChangeMenu( n )
oWnd:SetMenu( BuildMenu( n ) )
Return nil
//----------------------------------------------------------------------------//
Compuin wrote:Muchas gracias a todos por su amable colaboracion
Compuin wrote:Muchas gracias a todos por su amable colaboracion
joseluisysturiz wrote:Compuin wrote:Muchas gracias a todos por su amable colaboracion
Saludos, no se si no has leido el mensaje, a ver si podrias compartir lo que hicistes o has hecho ya que ando en algo parecido pero con MYSQL...mi correo es joseluisysturiz@yaoo.com, gracias, saludos...claro, si quieres compartirlo,
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: groiss and 109 guests