Rehacer menu en tiempo de ejecucion

Rehacer menu en tiempo de ejecucion

Postby Compuin » Sun Dec 23, 2018 6:12 pm

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
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Rehacer menu en tiempo de ejecucion

Postby horacio » Sun Dec 23, 2018 9:19 pm

Quizás con SetMenu una vez que hayas modificado el menú

Code: Select all  Expand view

oWnd : SetMenu( MiMenu() )
 


Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Rehacer menu en tiempo de ejecucion

Postby Compuin » Sun Dec 23, 2018 10:08 pm

horacio wrote:Quizás con SetMenu una vez que hayas modificado el menú

Code: Select all  Expand view

oWnd : SetMenu( MiMenu() )
 


Saludos


No funciona. Aca mi menu

MENU01.PRG


Code: Select all  Expand view
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  Expand view
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
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Rehacer menu en tiempo de ejecucion

Postby horacio » Sun Dec 23, 2018 11:18 pm

Prueba así

Code: Select all  Expand view

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
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Rehacer menu en tiempo de ejecucion

Postby Compuin » Mon Dec 24, 2018 12:55 am

Horacio,

Esta solucion no funciono :cry:
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Rehacer menu en tiempo de ejecucion

Postby jnavas » Mon Dec 24, 2018 6:44 am

Code: Select all  Expand view


oWnd :SetMenu( NIL ) // Destruyes el Menu

oWnd :SetMenu( BuildMenu() ) // Rehacer el menú


 
User avatar
jnavas
 
Posts: 473
Joined: Wed Nov 16, 2005 12:03 pm
Location: Caracas - Venezuela

Re: Rehacer menu en tiempo de ejecucion

Postby horacio » Mon Dec 24, 2018 11:19 am

Esto funciona para mi

Code: Select all  Expand view

#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
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Rehacer menu en tiempo de ejecucion

Postby nageswaragunupudi » Mon Dec 24, 2018 12:21 pm

Code: Select all  Expand view
..ACTION ( oWnd:SetMenu( oMenu2 ), oWnd:Refresh() )

works.

This sample works for me
Code: Select all  Expand view
#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
User avatar
nageswaragunupudi
 
Posts: 10317
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Rehacer menu en tiempo de ejecucion

Postby cnavarro » Tue Dec 25, 2018 9:27 pm

Otra posibilidad

Code: Select all  Expand view


#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

//----------------------------------------------------------------------------//

 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6504
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Rehacer menu en tiempo de ejecucion

Postby Compuin » Wed Dec 26, 2018 12:07 am

Muchas gracias a todos por su amable colaboracion
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Rehacer menu en tiempo de ejecucion

Postby joseluisysturiz » Wed Dec 26, 2018 9:36 pm

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... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Rehacer menu en tiempo de ejecucion

Postby joseluisysturiz » Mon Jan 07, 2019 2:49 am

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... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Rehacer menu en tiempo de ejecucion

Postby Compuin » Mon Jan 07, 2019 12:42 pm

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... :shock:


Jose Luis,

No crees que eres un poco grosero en la manera como pides las cosas ?

Saludos
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 121 guests