No creo que lo esté definiendo mal, ya que los defino igual en otros programas. El tema está en poner o no opciones en el primer ítem del menú. No obstante te lo pongo.
#include "FiveWin.ch"
#include "menu.ch"
STATIC oBarMain,oMenu
EXTERNAL DBFCDX
//----------------------------------------------------------------------------//
// INICIO DEL PROGRAMA PRINCIPAL
//----------------------------------------------------------------------------//
Function Main()
Local oBmp
Local oIco,aCorH[2]
Local hDlib
Local aoBtn[10] , oBoton
Local oPopMenu[9]
Public oWmain, oFont
Public xArea, cArea := "", cTempArea := "",aDatEmp[0]
SetHandleCount( 120 )
REQUEST HB_LANG_ES // Para establecer español para Mensajes, fechas, etc..
REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")
SET DATE TO ITALIAN
SET DELETE ON
SET CENTURY ON
SET 3DLOOK ON
SET AUTOPEN OFF
SetDialogEsc(.f.)
HB_LangSelect('ES')
HB_SetCodePage("ESMWIN")
hDlib := LoadLibrary("bwcc32.dll")
BWCCRegister( GetResources() )
cTempArea := "C:\TEMPROG"
If !lIsdir(cTempArea)
lMkdir(cTempArea)
EndIf
cTempArea := "C:\TEMPROG\"
DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 0, -11
DEFINE ICON oIco FILENAME ".\BMP\GAETE.ICO"
If File(".\BMP\LOGOEMP.JPG")
oBmp := TImage():Define( , ".\BMP\LOGOEMP.jpg" )
Else
oBmp := TImage():Define( , ".\BMP\LOGOGEN.jpg" )
EndIf
SetBalloon( .T. )
DEFINE WINDOW oWMain MDI FROM 02, 02 TO ( MaxRow() - 2 ), ( MaxCol() - 10 );
TITLE "GESTIÓN DE CÁRNICAS" ;
ICON oIco;
MENU MainMenu()
SET FONT OF oWMain TO oFOnt
SET MESSAGE OF oWMain TO "GESTIÓN DE CÁRNICAS" CENTERED TIME DATE KEYBOARD 2007
oWMain:bPainted := {|hDC| PalBmpDraw( hDC, 0, 0, oBmp:hBitmap,, oWMain:nWidth, oWMain:nHeight,, .T.) }
DEFINE BUTTONBAR oBarMain OF oWMain SIZE 70, 55 2007
MENU oPopMenu[1] POPUP 2007
MENUITEM "Ejercicios" ACTION EscogeArea()
MENUITEM "Empresas" //ACTION Empresas(oBarMain,oMenu)
ENDMENU
DEFINE BUTTON aoBtn[1] OF oBarMain ACTION aoBtn[1]:ShowPopup() ;
RESOURCE "EMPRESAS" PROMPT "EMPRESAS" GROUP ;
MENU oPopMenu[1] TOOLTIP "Area de trabajo"
MENU oPopMenu[2] POPUP 2007
MENUITEM "Clientes" ACTION CLIENTES(oBarMain,oMenu)
MENUITEM "Articulos" ACTION ARTICULOS(oBarMain,oMenu)
MENUITEM "Proveedores" ACTION PROVEEDORES(oBarMain,oMenu)
MENUITEM "Comerciales" ACTION COMERCIALES(oBarMain,oMenu)
MENUITEM "Cobradores" ACTION COBRADORES(oBarMain,oMenu)
MENUITEM "Repartidores" ACTION REPARTIDORES(oBarMain,oMenu)
MENUITEM "Destos. Especiales" ACTION DESCTOESPE(oBarMain,oMenu)
MENUITEM "Tipos de Iva" ACTION TIPOSIVA(oBarMain,oMenu)
MENUITEM "Mensajes Albarán" ACTION MENSAJES(oBarMain,oMenu)
ENDMENU
DEFINE BUTTON aoBtn[2] OF oBarMain ACTION aoBtn[2]:ShowPopup();
RESOURCE "FICHEROS" PROMPT "FICHEROS" GROUP ;
MENU oPopMenu[2] TOOLTIP "Ficheros generales"
MENU oPopMenu[3] POPUP 2007
MENUITEM "Entrada de Albaranes" ACTION ALBARANES(oBarMain,oMenu)
MENUITEM "Modificación de Albaranes" ACTION MODIFIALBAR(oBarMain,oMenu)
MENUITEM "Consulta de Albaranes" ACTION CONSALBA(oBarMain,oMenu)
SEPARATOR
MENUITEM "Repetir Albaranes" ACTION REPITEALB(oBarMain,oMenu )
SEPARATOR
MENUITEM "Listado de Albaranes" ACTION LISTALBAR(oBarMain,oMenu )
ENDMENU
DEFINE BUTTON aoBtn[3] OF oBarMain ACTION aoBtn[3]:ShowPopup() ;
RESOURCE "ALBARANES" PROMPT "ALBARANES" GROUP ;
MENU oPopMenu[3] TOOLTIP "Gestión de albaranes"
MENU oPopMenu[4] POPUP 2007
MENUITEM "Facturas de Albaranes" ACTION FACTURALBAR(oBarMain,oMenu)
MENUITEM "Modificación de Facturas" ACTION MODIFIFACTU(oBarMain,oMenu)
MENUITEM "Consulta de Facturas" ACTION CONSFACTU(oBarMain,oMenu)
SEPARATOR
MENUITEM "Factura Directa" ACTION FACTURAS(oBarMain,oMenu)
SEPARATOR
MENUITEM "Facturar un Albarán" ACTION FACTURAUNALBAR(oBarMain,oMenu)
SEPARATOR
MENUITEM "Repetir Facturas" ACTION REPITEFAC(oBarMain,oMenu )
SEPARATOR
MENUITEM "Listado de Facturas" ACTION LISFACTURAS(oBarMain,oMenu )
ENDMENU
DEFINE BUTTON aoBtn[4] OF oBarMain ACTION aoBtn[4]:ShowPopup();
RESOURCE "FACTURAS" PROMPT "FACTURAS" GROUP ;
MENU oPopMenu[4] TOOLTIP "Gestión de Facturas"
MENU oPopMenu[5] POPUP 2007
MENUITEM "Clientes sin Compras General" ACTION LISINCOMPRA(oBarMain,oMenu)
MENUITEM "Clientes sin Compras por fechas" ACTION SINCOMPRAFECHA(oBarMain,oMenu)
MENUITEM "Clientes sin Compras un día un reparto" ACTION SINCOMPRAUDUR(oBarMain,oMenu)
SEPARATOR
MENUITEM "Consumos de Clientes" ACTION CONSUMOCLIE(oBarMain,oMenu)
MENUITEM "Kilos Mes de Clientes" ACTION HISTOCLIE(oBarMain,oMenu)
SEPARATOR
MENUITEM "Ventas de Artículos y Agentes" ACTION VENTAGEART(oBarMain,oMenu)
MENUITEM "Kilos Mes de Artículos" ACTION HISTOART(oBarMain,oMenu)
SEPARATOR
MENUITEM "Agentes ventas Artículos" ACTION LISTAGEART(oBarMain,oMenu,1)
MENUITEM "Agentes ventas Clientes" ACTION LISTAGECLI(oBarMain,oMenu)
SEPARATOR
MENUITEM "Kilos por Repartos" ACTION LISTAGEART(oBarMain,oMenu,2 )
MENUITEM "Ventas por Grupos Clientes" ACTION LISVENGRUPO(oBarMain,oMenu )
ENDMENU
DEFINE BUTTON aoBtn[5] OF oBarMain ACTION aoBtn[5]:ShowPopup();
RESOURCE "ESTADISTICAS" PROMPT "LISTADOS" GROUP ;
MENU oPopMenu[5] TOOLTIP "Estadisticas de Ventas"
MENU oPopMenu[6] POPUP 2007
MENUITEM "Enlace a Contabilidad" ACTION ENLACONTACOBR(oBarMain,oMenu,1)
SEPARATOR
MENUITEM "Enlace a Cobros" ACTION ENLACONTACOBR(oBarMain,oMenu,2)
ENDMENU
DEFINE BUTTON aoBtn[6] OF oBarMain ACTION aoBtn[6]:ShowPopup();
RESOURCE "ENLACES" PROMPT "ENLACES " GROUP ;
MENU oPopMenu[6] TOOLTIP "Enlaces de Facturas Cobros/Contabilidad"
MENU oPopMenu[7] POPUP 2007
MENUITEM "Listado de Albaranes del Reparto" ACTION LISALBREP(oBarMain,oMenu)
SEPARATOR
MENUITEM "Marcar/Desmarcar Albaranes" ACTION MARCALBARAN(oBarMain,oMenu)
SEPARATOR
MENUITEM "Cobros del Reparto" ACTION COBROSPED(oBarMain,oMenu)
MENUITEM "Listado de Cobros" ACTION LISCOBPED(oBarMain,oMenu)
MENUITEM "Consulta de Cobros" ACTION CONSCOBPED(oBarMain,oMenu)
SEPARATOR
MENUITEM "Caja Repartos" ACTION COBROSREP(oBarMain,oMenu)
MENUITEM "Listado de Caja" ACTION LISTCAJAR(oBarMain,oMenu)
ENDMENU
DEFINE BUTTON aoBtn[7] OF oBarMain ACTION aoBtn[7]:ShowPopup();
RESOURCE "REPARTOS" PROMPT "REPARTO" GROUP ;
MENU oPopMenu[7] TOOLTIP "Gestión del Reparto"
MENU oPopMenu[8] POPUP 2007
MENUITEM "Diario de Facturas" ACTION DIARIOFACTURAS(oBarMain,oMenu )
SEPARATOR
MENUITEM "347 de Ventas" ACTION MODELO347(oBarMain,oMenu)
ENDMENU
DEFINE BUTTON aoBtn[8] OF oBarMain ACTION aoBtn[8]:ShowPopup();
RESOURCE "IVA" PROMPT "I.V.A." GROUP ;
MENU oPopMenu[8] TOOLTIP "UTILES DE IVA"
MENU oPopMenu[9] POPUP 2007
MENUITEM "Generar Indices" ACTION INDICES(oBarMain,oMenu)
SEPARATOR
MENUITEM "Elegir Impresora" ACTION PrinterSetup(oBarMain,oMenu)
SEPARATOR
MENUITEM "Listados de Lotes" ACTION LOTESANIDAD(oBarMain,oMenu)
MENUITEM "Kilos de un Lote" ACTION KILOSLOTES(oBarMain,oMenu)
SEPARATOR
MENUITEM "Borrar Clientes sin Compras" ACTION DELCLIESINCOM(oBarMain,oMenu)
ENDMENU
DEFINE BUTTON aoBtn[9] OF oBarMain ACTION aoBtn[9]:ShowPopup();
RESOURCE "UTILES" PROMPT "UTILES" GROUP ;
MENU oPopMenu[9] TOOLTIP "UTILIDADES"
DEFINE BUTTON aoBtn[10] OF oBarMain ACTION dbCloseAll(), oWMain:End();
RESOURCE "Salir" PROMPT "Salir" GROUP TOOLTIP "Salir de la Aplicacion"
ACTIVATE WINDOW oWMain MAXIMIZED ;
ON INIT EscogeArea() ;
VALID MsgYesNo( "Finalizar sesion?","Elija" )
dbCloseAll()
SET 3DLOOK OFF
RELEASE FONT oFont
RELEASE BITMAP oBmp
RELEASE ICON oIco
FreeLibrary(hDlib)
return( nil )
//----------------------------------------------------------------------------//
function MainMenu()
MENU oMenu 2007
MENUITEM "Ejercicios"
MENU
MENUITEM "Areas de trabajo" ACTION EscogeArea() ;
MESSAGE "Eleccion del Area de trabajo"
MENUITEM "Empresas" ACTION MsgInfo("empresas") ;
MESSAGE "Creación de ejercicios"
ENDMENU
MENUITEM "Ficheros"
MENU
MENUITEM "Clientes" ACTION CLIENTES(oBarMain, oMenu) ;
MESSAGE "Fichas de Clientes"
MENUITEM "Artículos" ACTION ARTICULOS(oBarMain, oMenu) ;
MESSAGE "Fichas de Artículos"
MENUITEM "Proveedores" ACTION PROVEEDORES(oBarMain, oMenu) ;
MESSAGE "Fichas de Proveedores"
MENUITEM "Comerciales" ACTION COMERCIALES(oBarMain, oMenu) ;
MESSAGE "Fichas de Comerciales"
MENUITEM "Cobradores" ACTION COBRADORES(oBarMain, oMenu) ;
MESSAGE "Fichas de Cobradores"
MENUITEM "Repartidores" ACTION REPARTIDORES(oBarMain, oMenu) ;
MESSAGE "Fichas de Repartidores"
MENUITEM "Desctos. Especiales" ACTION DESCTOESPE(oBarMain, oMenu) ;
MESSAGE "Descuentos especiales a Clientes"
MENUITEM "Tipos de Iva" ACTION TIPOSIVA(oBarMain, oMenu) ;
MESSAGE "Fichas de Tipos de IVA"
MENUITEM "Mensajes Albarán" ACTION MENSAJES(oBarMain, oMenu) ;
MESSAGE "Mensajes en Albaranes"
ENDMENU
MENUITEM "Albaranes"
MENU
MENUITEM "Entrada de Albaranes" ACTION ALBARANES(oBarMain,oMenu);
MESSAGE "Hacer albaranes"
MENUITEM "Modificación de Albaranes" ACTION MODIFIALBAR(oBarMain,oMenu);
MESSAGE "Modificar albaranes"
MENUITEM "Consulta de Albaranes" ACTION CONSALBA(oBarMain,oMenu);
MESSAGE "Consultar albaranes"
SEPARATOR
MENUITEM "Repetir Albaranes" ACTION REPITEALB(oBarMain,oMenu );
MESSAGE "Repetir impresión de albaranes"
SEPARATOR
MENUITEM "Listado de Albaranes" ACTION LISTALBAR(oBarMain,oMenu );
MESSAGE "Listados de albaranes"
ENDMENU
MENUITEM "Facturas"
MENU
MENUITEM "Facturas de Albaranes" ACTION FACTURALBAR(oBarMain,oMenu);
MESSAGE "Facturar albaranes"
MENUITEM "Modificación de Facturas" ACTION MODIFIFACTU(oBarMain,oMenu);
MESSAGE "Modificar Facturas"
MENUITEM "Consulta de Facturas" ACTION CONSFACTU(oBarMain,oMenu);
MESSAGE "Consultar Facturas"
SEPARATOR
MENUITEM "Factura Directa" ACTION FACTURAS(oBarMain,oMenu);
MESSAGE "Hacer una Factura"
SEPARATOR
MENUITEM "Facturar un Albarán" ACTION FACTURAUNALBAR(oBarMain,oMenu);
MESSAGE "Facturar un albarán"
SEPARATOR
MENUITEM "Repetir Facturas" ACTION REPITEFAC(oBarMain,oMenu );
MESSAGE "Repetir Facturas"
SEPARATOR
MENUITEM "Listado de Facturas" ACTION LISFACTURAS(oBarMain,oMenu );
MESSAGE "Listados de Facturas"
ENDMENU
MENUITEM "Estadisticas"
MENU
MENUITEM "Clientes sin Compras" ACTION LISINCOMPRA(oBarMain,oMenu);
MESSAGE "Listado de Clientes sin Compras"
MENUITEM "Consumos de Clientes" ACTION CONSUMOCLIE(oBarMain,oMenu);
MESSAGE "Listado de Consumos de Clientes"
MENUITEM "Kilos Mes de Clientes" ACTION HISTOCLIE(oBarMain,oMenu);
MESSAGE "Listado de Kilos de Clientes por mes"
SEPARATOR
MENUITEM "Ventas de Artículos y Agentes" ACTION VENTAGEART(oBarMain,oMenu);
MESSAGE "Listado de Ventas de Artículos y por Agentes"
MENUITEM "Kilos Mes de Artículos" ACTION HISTOART(oBarMain,oMenu);
MESSAGE "Listado de Kilos de Artículos por mes"
SEPARATOR
MENUITEM "Agentes ventas Artículos" ACTION LISTAGEART(oBarMain,oMenu,1);
MESSAGE "Ventas de Artículos por Agentes"
MENUITEM "Agentes ventas Clientes" ACTION LISTAGECLI(oBarMain,oMenu);
MESSAGE "Ventas a Clientes por Agentes"
SEPARATOR
MENUITEM "Kilos por Repartos" ACTION LISTAGEART(oBarMain,oMenu,2 );
MESSAGE "Ventas en Kilos por reparto entre fechas"
MENUITEM "Ventas por Grupos Clientes" ACTION LISVENGRUPO(oBarMain,oMenu );
MESSAGE "Ventas a Grupos de Clientes"
ENDMENU
MENUITEM "Enlaces"
MENU
MENUITEM "Enlace a Contabilidad" ACTION ENLACONTACOBR(oBarMain, oMenu,1) ;
MESSAGE "Enlace de facturas a IVA y Contabilidad"
MENUITEM "Enlace a Cobros" ACTION ENLACONTACOBR(oBarMain, oMenu,2 ) ;
MESSAGE "Enlace de facturas a Cobros"
ENDMENU
MENUITEM "Repartos"
MENU
MENUITEM "Listado de Albaranes del Reparto" ACTION LISALBREP(oBarMain, oMenu ) ;
MESSAGE "Listado de Artículos de un reparto"
SEPARATOR
MENUITEM "Marcar/Desmarcar Albaranes" ACTION MARCALBARAN(oBarMain, oMenu ) ;
MESSAGE "Marca o desmarca albaranes para no facturar"
SEPARATOR
MENUITEM "Cobros del Reparto" ACTION COBROSPED(oBarMain, oMenu ) ;
MESSAGE "Cobros de albaranes de un reparto"
MENUITEM "Listado de Cobros" ACTION LISCOBPED(oBarMain, oMenu ) ;
MESSAGE "Listado de los Cobros de un reparto"
MENUITEM "Caja Repartos" ACTION COBROSREP(oBarMain,oMenu);
MESSAGE "Entrada de Cobros de los repartos"
ENDMENU
MENUITEM "I.V.A."
MENU
MENUITEM "Diario de Facturas" ACTION DIARIOFACTURAS(oBarMain,oMenu );
MESSAGE "Diario de Facturas Emitidas"
SEPARATOR
MENUITEM "347 de Ventas" ACTION MODELO347(oBarMain,oMenu);
MESSAGE "Modelo 347 de ventas"
ENDMENU
MENUITEM "Utiles"
MENU
MENUITEM "Indices" ACTION Indices(oBarMain,oMenu);
MESSAGE "Generacion de Indices"
SEPARATOR
MENUITEM "&Impresora" ACTION PrinterSetUp();
MESSAGE "Configuracion impresora"
SEPARATOR
MENUITEM "&Buscar Lotes" ACTION LOTESANIDAD(oBarMain,oMenu);
MESSAGE "Búsqueda y Listado de Lotes"
SEPARATOR
MENUITEM "Borrar Clientes sin Compras" ACTION DELCLIESINCOM(oBarMain,oMenu);
MESSAGE "Borrar clientes que no han comprado"
SEPARATOR
MENUITEM "&Acerca de..." ACTION MsgAbout("GFACTU 2.0",,,,"(c)Pedro Núñez","LOGO" ) ;
MESSAGE OemToAnsi( "GESTION COMERCIAL" )
ENDMENU
MENUITEM "Terminar" ACTION oWMain:End(),dbCloseAll() ;
MESSAGE OemToAnsi( "Volver a Windows" )
ENDMENU
return( oMenu )
*-------------------------------------------------------------------------------
#pragma BEGINDUMP
#include <hbapi.h>
#include <windows.h>
HB_FUNC( OLEUNINITIALIZE )
{
OleUninitialize();
}
#pragma ENDDUMP
*******************************************************************************
DLL32 FUNCTION BWCCRegister( hInst AS LONG ) AS WORD PASCAL LIB "BWCC32.DLL"