MenuItem

HMG en Español

Moderator: Rathinagiri

Post Reply
abinfra
Posts: 68
Joined: Sat Jan 25, 2014 7:25 am
DBs Used: DBF

MenuItem

Post by abinfra »

Buenos días.

Estoy adaptando un programa que tenía hecho en Clipper 5.3 utilizando HMG. Básicamente estoy creando el menú.

En el código que tenía con Clipper para crear el menú, si al ejecutar una función desde varios submenús, utilizaba una variable con un valor distinto para saber desde donde estaba ejecutando la función, por ejemplo para llamar a la función DiarVent(), antes de llamar a la función declaraba la variable, por ejemplo cTipFra:='F' y llamaba a la función DiarVent(cTipFra). En otro menú declaraba cTipFra:='R' y llamaba a la función DiarVent(cTipFra).

Pero ahora con el código:
//Agrega el elemento FACTURACIÓN DIRECTA al menú DIARIOS --> VENTAS --> FACTURAS --> EDICIÓN FACTURAS NORMALES
cTipFra:='F'
oItem :=MenuItem( "Facturación &Directa" ,{|| DiarVent(cTipFra) }, K_CTRL_D,"Edición y registro de facturas directas")
oMenuEdFraNor:AddItem( oItem)

//Agrega el elemento EDICIÓN FACTURAS RECTIFICATIVAS al menú DIARIOS --> VENTAS --> FACTURAS
cTipFra:='R'
oItem :=MenuItem( "Edición Facturas &Rectificativas" ,{|| DiarVent(cTipFra) }, K_CTRL_R,"Edición de Facturas Rectificativas")
oMenuFac:AddItem( oItem)

El problema es que el valor que va a tomar la variable cTipFra, va a ser siempre la 'R' que es la última declarada.
Ya sé que me podéis decir que no ponga la variable y que ponga DiarVent('F') o DiarVent('R'), pero deseo saber si puede haber solución a la declaración de una misma variable con distintos valores, ya que este no es el único caso. No se si me he explicado bien.

Espero vuestra ayuda.
User avatar
pctoledo
Posts: 123
Joined: Wed Aug 25, 2010 10:45 am
Location: Araçatuba - SP - Brazil
Contact:

Re: MenuItem

Post by pctoledo »

oItem :=MenuItem( "Facturación &Directa" ,{|| cTipFra:='F', DiarVent(cTipFra) }, K_CTRL_D,"Edición y registro de facturas directas")

or

oItem :=MenuItem( "Facturación &Directa" ,{|| DiarVent('F') }, K_CTRL_D,"Edición y registro de facturas directas")
Regards/Saludos,

Toledo

Clipper On Line
abinfra
Posts: 68
Joined: Sat Jan 25, 2014 7:25 am
DBs Used: DBF

Re: MenuItem

Post by abinfra »

Gracias pctoledo, no sabía de la posibilidad de poder declarar la variable dentro de MenuItem.

Me podría informar de algún enlace donde pueda ver y estudiar todas las opciones de la función MenuItem, a ser posible en español?

Saludos cordiales.
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

Re: MenuItem

Post by andyglezl »

Hola

Estas creando el menu en tiempo de ejecución ?
De lo contrario puedes probar esto:


DEFINE MAIN MENU [ OF <ParentWindowName> ]
DEFINE POPUP <cPopupCaption> [ NAME <PopupName> ]
MENUITEM <cItemCaption>
ACTION <ActionProvedureName> | <bBlock> // {|| cTipFra:='F', DiarVent(cTipFra) }
[ NAME <MenuItemName>]
[ IMAGE <cImageName> ]
[ CHECKED ]
[ NOTRANSPARENT ]
[ TOOLTIP <cToolTipText> ]
...
[ SEPARATOR ]
...
END POPUP
...
END MENU


HMG\3.4\SAMPLES\Controls\Menu\MENU
Andrés González López
Desde Guadalajara, Jalisco. México.
abinfra
Posts: 68
Joined: Sat Jan 25, 2014 7:25 am
DBs Used: DBF

Re: MenuItem

Post by abinfra »

Gracias andyglezl por responder.

La información que busco, a ser posible en español, es de la función MenuItem que utilizo por ejemplo en el siguiente código de ejemplo, a fin de estudiarla para ver todas las posibilidades de dicha función:

function MENU_Create()
local oTopBar, oPopUp, oItem

// Topbar() crea el menu en la parte superior de la pantalla
oTopBar := TopBar( 0, 0, 78)
oTopBar:ColorSpec :="b/w,gr+/rb,r/w,g/rb,n+/w,w+/b"

// Crear un nuevo popup menú llamado ALMACÉN y lo agrega al objeto Topbar
oPopUp := PopUp()
oPopUp :ColorSpec:= "b/w,gr+/rb,r/w,g/rb,n+/w,w+/b"
oTopBar:AddItem( MenuItem ( "&INFORMES",oPopUp) )

// Agregar nuevos elementos de menú para el menú emergente ALMACÉN recien creado y sus mensajes al pie
oItem :=MenuItem( "&Prueba" ,{|| PruebaImp() }, K_CTRL_S,"Prueba impresión con Vouch32X", 101)
oPopUp:AddItem( oItem)

//Crear el séptimo PopUpMenu denominado TERMINAR y añadir a oTopBar.
oPopUp := PopUp()
oPopUp :ColorSpec:= "b/w,gr+/rb,r/w,g/rb,n+/w,w+/b"
oTopBar:AddItem( MenuItem ( "&TERMINAR",oPopUp) )

oItem :=MenuItem( "&Salir" ,{|| .t. }, K_CTRL_S,"Fin de la aplicacion", 999)
oPopUp:AddItem( oItem)

// Volver nuestro objeto Topbar a MENU_Test()
RETURN( oTopBar)
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

Re: MenuItem

Post by andyglezl »

Hola

1.- Normalmente la ayuda que hay, esta en ingles.

2.- De la forma que quieres hacerlo, yo no lo he utilizado (con HMG), por eso te sugerí el DEFINE MAIN MENU... que para mi es mas sencillo.

3.- Si lo que deseas, es seguir el mismo estilo de progamacion de Clipper, tendrías que profundizar más en los archivos de ayuda.

4.- Todo lo que deseas hacer, lo puedes hacer con el DEFINE MAIN MENU desde el inicio de tu programa

// Topbar() crea el menu en la parte superior de la pantalla
// Crear un nuevo popup menú llamado ALMACÉN y lo agrega al objeto Topbar
// Agregar nuevos elementos de menú para el menú emergente ALMACÉN recien creado y sus mensajes al pie
( Para los mensajes al pie, tendrías que utilizar el control DEFINE STATUSBAR )
//Crear el séptimo PopUpMenu denominado TERMINAR y añadir a oTopBar.
// Volver nuestro objeto Topbar a MENU_Test()

5.- En \HMG\3.4\SAMPLES\Controls\Menu\MENU_2 viene un ejempo que puedes compilar y probar.
( ademas de una gran cantida de otros ejemplos )
Andrés González López
Desde Guadalajara, Jalisco. México.
abinfra
Posts: 68
Joined: Sat Jan 25, 2014 7:25 am
DBs Used: DBF

Re: MenuItem

Post by abinfra »

Gracias nuevamente andyglezl.
Saludos cordiales.
User avatar
ndarz
Posts: 56
Joined: Thu Apr 23, 2015 12:29 pm
Location: Argentina

Re: MenuItem

Post by ndarz »

Seguramente ya habras solucionado tu problema, mi simple consejo es que dejes de lado toda la parte de clipper referente a menus, read, get, y todo lo que tiene que ver con el control del programa bajo D.O.S y comiences a hacerlo con una interfaz gui, es solo acostumbrarse, y termina siendo mas simple y mejor de controlar.
User avatar
mustafa
Posts: 1172
Joined: Fri Mar 20, 2009 11:38 am
DBs Used: DBF
Location: Alicante - Spain
Contact:

Re: MenuItem

Post by mustafa »

Hola abinfra
Algún compañero de HMG puso este sample que simula un menú tipo Clipper
haber si te puede servir.
saludos
Mustafa
Attachments
Menu_Barras.zip
(1019.89 KiB) Downloaded 293 times
Post Reply