Rehacer menu en tiempo de ejecucion
Rehacer menu en tiempo de ejecucion
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
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
Quizás con SetMenu una vez que hayas modificado el menú
Saludos
Code: Select all
oWnd : SetMenu( MiMenu() )
Re: Rehacer menu en tiempo de ejecucion
No funciona. Aca mi menuhoracio wrote:Quizás con SetMenu una vez que hayas modificado el menú
SaludosCode: Select all
oWnd : SetMenu( MiMenu() )
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
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
Prueba así
Saludos
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
Re: Rehacer menu en tiempo de ejecucion
Horacio,
Esta solucion no funciono
Esta solucion no funciono

Re: Rehacer menu en tiempo de ejecucion
Code: Select all
oWnd :SetMenu( NIL ) // Destruyes el Menu
oWnd :SetMenu( BuildMenu() ) // Rehacer el menú
Re: Rehacer menu en tiempo de ejecucion
Esto funciona para mi
Saludos
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
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: Rehacer menu en tiempo de ejecucion
Code: Select all
..ACTION ( oWnd:SetMenu( oMenu2 ), oWnd:Refresh() )
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
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: Rehacer menu en tiempo de ejecucion
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
//----------------------------------------------------------------------------//
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: Rehacer menu en tiempo de ejecucion
Muchas gracias a todos por su amable colaboracion
- joseluisysturiz
- Posts: 2024
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Re: Rehacer menu en tiempo de ejecucion
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...Compuin wrote:Muchas gracias a todos por su amable colaboracion

Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
- joseluisysturiz
- Posts: 2024
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Re: Rehacer menu en tiempo de ejecucion
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...Compuin wrote:Muchas gracias a todos por su amable colaboracion

Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
Re: Rehacer menu en tiempo de ejecucion
Jose Luis,joseluisysturiz wrote: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...Compuin wrote:Muchas gracias a todos por su amable colaboracionmi correo es joseluisysturiz@yaoo.com, gracias, saludos...claro, si quieres compartirlo,
No crees que eres un poco grosero en la manera como pides las cosas ?
Saludos