Page 1 of 1
Rehacer menu en tiempo de ejecucion
Posted: Sun Dec 23, 2018 6:12 pm
by Compuin
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
Re: Rehacer menu en tiempo de ejecucion
Posted: Sun Dec 23, 2018 9:19 pm
by horacio
Quizás con SetMenu una vez que hayas modificado el menú
Saludos
Re: Rehacer menu en tiempo de ejecucion
Posted: Sun Dec 23, 2018 10:08 pm
by Compuin
horacio wrote:Quizás con SetMenu una vez que hayas modificado el menú
Saludos
No funciona. Aca mi menu
MENU01.PRG
Code: Select all
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
Al seleccionar la opcion de Bancos se deberia reemplazar todo el menu por este nuevo menu
MENU02.PRG
Code: Select all
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
Re: Rehacer menu en tiempo de ejecucion
Posted: Sun Dec 23, 2018 11:18 pm
by horacio
Prueba así
Code: Select all
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
Saludos
Re: Rehacer menu en tiempo de ejecucion
Posted: Mon Dec 24, 2018 12:55 am
by Compuin
Horacio,
Esta solucion no funciono

Re: Rehacer menu en tiempo de ejecucion
Posted: Mon Dec 24, 2018 6:44 am
by jnavas
Code: Select all
oWnd :SetMenu( NIL ) // Destruyes el Menu
oWnd :SetMenu( BuildMenu() ) // Rehacer el menú
Re: Rehacer menu en tiempo de ejecucion
Posted: Mon Dec 24, 2018 11:19 am
by horacio
Esto funciona para mi
Code: Select all
#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
Saludos
Re: Rehacer menu en tiempo de ejecucion
Posted: Mon Dec 24, 2018 12:21 pm
by nageswaragunupudi
Code: Select all
..ACTION ( oWnd:SetMenu( oMenu2 ), oWnd:Refresh() )
works.
This sample works for me
Code: Select all
#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
Re: Rehacer menu en tiempo de ejecucion
Posted: Tue Dec 25, 2018 9:27 pm
by cnavarro
Otra posibilidad
Code: Select all
#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
//----------------------------------------------------------------------------//
Re: Rehacer menu en tiempo de ejecucion
Posted: Wed Dec 26, 2018 12:07 am
by Compuin
Muchas gracias a todos por su amable colaboracion
Re: Rehacer menu en tiempo de ejecucion
Posted: Wed Dec 26, 2018 9:36 pm
by joseluisysturiz
Compuin wrote:Muchas gracias a todos por su amable colaboracion
Saludos, estoy en lo mismo que tu al paracer, podrias compartir lo realizado para tomar ideas y si es posible hacer mejoras y compartirlo.? mi correo
joseluisysturiz@yahoo.com, gracias, saludos...

Re: Rehacer menu en tiempo de ejecucion
Posted: Mon Jan 07, 2019 2:49 am
by joseluisysturiz
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...claro, si quieres compartirlo, mi correo es
joseluisysturiz@yaoo.com, gracias, saludos...

Re: Rehacer menu en tiempo de ejecucion
Posted: Mon Jan 07, 2019 12:42 pm
by Compuin
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...
claro, si quieres compartirlo,
mi correo es
joseluisysturiz@yaoo.com, gracias, saludos...

Jose Luis,
No crees que eres un poco grosero en la manera como pides las cosas ?
Saludos