FUNCTION MenuPrincipal(oWnd)
LOCAL cPatTem := "C:\TEMP\"
LOCAL cNombas := 'Menu'+ALLTRIM(STR(hb_random(10000000),8,0))+M->cCiaAct+cNroUsr
LOCAL cFilTem := cNombas+'.TMD'
LOCAL cFilTeI := cNombas+'.CDX'
LOCAL oGif
LOCAL nUsuSis := VAL(cNroUsr)
LOCAL cAliAct := ALIAS()
LOCAL cNomba1 := 'SEGURIDAD'+ALLTRIM(STR(hb_random(10000000),8,0))+M->cCiaAct+cNroUsr
LOCAL cFilTe1 := cNomba1+'.TMD'
LOCAL cFilTe2 := cNomba1+'.CDX'
LOCAL cPatLoc := "C:\TEMP\"
LOCAL cNroOpc := ""
IF !lUsaTab(M->cPatSis+"\","OPCIONES.DAT","OPC",{"OPCIONES.CDX"},.T.)
IF !EMPTY(cAliAct)
SELECT &cAliAct
ENDIF
RETURN
ENDIF
SELECT OPC
DBSETORDER(1)
filtrarScope("OPC",1,STR(VAL(M->cNroUsr),2,0),STR(VAL(M->cNroUsr),2,0))
FERASE("C:\TEMP\"+cFilTeI)
COPY_FILE_DBF_DBF( "MENU.DAT", "C:\TEMP\"+cFilTem )
IF !FILE("C:\TEMP\"+cFilTem)
MYMEN("Error. No existe archivo de configuraci¢n de menus")
RETURN
ENDIF
IF SELECT("MEN") <> 0
CLOSE MEN
ENDIF
IF !lUsaTab(cPatTem, cFilTem,"MEN",{},.F.,NIL,"DBFCDX")
RETURN
ENDIF
SELECT MEN
INDEX ON CCODIGOMEN TAG ORDER1 TO &("C:\TEMP\"+cFilTeI)
DBSETORDER(1)
GO TOP
MENU oMenu 2007
DO WHILE MEN->( !EOF() )
cNroOpc := ALLTRIM(MEN->cNroOpcSeg)
IF XXVALOPUSR(cNroOpc)
MENUITEM HB_OEMTOANSI( ALLTRIM(MEN->cNombreMen) )
ELSE
MENUITEM HB_OEMTOANSI( ALLTRIM(MEN->cNombreMen) ) DISABLED
ENDIF
MENU
MENUX(1)
ENDMENU
ENDDO
ENDMENU
// CLOSE MEN
// CLOSE OPC
RETURN
//**************
FUNCTION MENUX( nNroNiv )
LOCAL bBloEje, nNivAct
LOCAL cNroOpc := ""
nNivAct := SUBS( MEN->cCodigoMen, 1, nNroNiv * 2 )
DO WHILE MEN->( !EOF() ) .AND. SUBS( MEN->cCodigoMen,1,nNroNiv * 2 ) == nNivAct
IF LEN(ALLTRIM(MEN->cCodigoMen)) > nNroNiv * 2
cFunEje := MEN->cFunEjeMen
cNomOpc := MEN->cNombreMen
cRegAct := ALLTRIM(MEN->cCodigoMen)
cNroOpc := ALLTRIM(MEN->cNroOpcSeg)
MEN->( DBSKIP() )
cRegSig := SUBS( MEN->cCodigoMen,1,( nNroNiv + 1 ) * 2 )
IF cRegAct == cRegSig
IF XXVALOPUSR(cNroOpc) // cRegAct
MENUITEM HB_OEMTOANSI( ALLTRIM(cNomOpc) )
ELSE
MENUITEM HB_OEMTOANSI( ALLTRIM(cNomOpc) ) DISABLED
ENDIF
SELECT MEN
SKIP -1
MENU
MenuX( nNroNiv + 1 )
ENDMENU
ELSE
bBloEje := &( "{||" + IF( EMPTY( cFunEje ), ".T.", ALLTRIM( cFunEje ) ) + "}" )
IF XXVALOPUSR(cNroOpc)
MENUITEM HB_OEMTOANSI( ALLTRIM(cNomOpc) ) ACTION ( bBloEje ) BLOCK bBloEje // FILENAME getImage( BITMAP )
ELSE
MENUITEM HB_OEMTOANSI( ALLTRIM(cNomOpc) ) DISABLED ACTION ( bBloEje ) BLOCK bBloEje // FILENAME getImage( BITMAP )
ENDIF
ENDIF
ELSE
MEN->( DBSKIP() )
ENDIF
ENDDO
RETURN NIL
//**********