FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Menu desde una matriz
Posts: 72
Joined: Tue Oct 02, 2012 04:36 PM
Menu desde una matriz
Posted: Mon Jan 20, 2014 09:49 PM
Hola Amigos....

Tengo armado en MENU desde una tabla de esta forma....

Code (fw): Select all Collapse
local MAEREPLV
local xEMPRESA
*----------------------------------------------------------

xEMPRESA:= EMPRESA

MAEREPLV:=CDX_Abrir('MAEREPLV',0,1,'MAEREPLV')
(MAEREPLV)->(ORDSETFOCUS( 2 ))
(MAEREPLV)->(dbgotop())


While !(MAEREPLV)->(Eof())

  aadd( mReportesItems , alltrim((MAEREPLV)->DETALLE) )
  aadd( mReportesFunci , '{||RepMaesDocu(xEMPRESA,'+str((MAEREPLV)->CODIINT,10)+',NOMBREU,mCodiUSUA)}' )

  (MAEREPLV)->(DbSkip())

EndDo
ER_4(MAEREPLV)



Code (fw): Select all Collapse
        For Xmenu = 1 to len(mReportesItems)
        
          MENUITEM mReportesItems[Xmenu] ;
                     MESSAGE mReportesItems[Xmenu] ;
                     BLOCK &(mReportesFunci[Xmenu]) 
        
        Next Xmenu


pero cuando lo ejecuto no me reconoce las VARIABLES....

cual puede ser el error ??

muchas gracias

David
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Menu desde una matriz
Posted: Tue Jan 21, 2014 03:07 PM
Hola David.
El siguiente es un codigo que hice en el 2005, y aun hoy, compilado en W7 con Fw 2.4 y Blinker 6, funciona. Al parecer es identico al tuyo. No lo he construido con xharbour ni Fw1204, que son los que uso actualmente.

Code (fw): Select all Collapse
function BuildMenu()
local oMenu, oItem1,oItem2,oItem3,oItem4
local n:=0, aImprEval:={},cAccion, aConfiPsp:={}, aMsg:={}

dbUseArea(.t.,,"Seccion","Seccion",.t.)
Seccion->(dbGotop())
While Seccion->(!eof())
  aadd(aImprEval,alltrim(Seccion->AccMenImpr))
  aadd(aConfiPsp,alltrim(Seccion->AccMenConf))
  aadd(aMsg,"Hola "+Str(Seccion->(Recno()) ))
  Seccion->(dbSkip())
Enddo
Seccion->(dbCloseArea())

  MENU oMenu
      MENUITEM "&Fichero"
      MENU
         MENUITEM oItem1 PROMPT "&Configurar Presupuesto" MESSAGE "Configurar el Presupuesto"
         MENU
           For n:= 1 to len(aConfiPsp)
              //MENUITEM aNombAreas[n]  BLOCK ( cAccion:=aConfiPsp[n] , &(cAccion) ) ;   //funciona de las dos maneras (esta es la original)
              MENUITEM aNombAreas[n]  BLOCK &(aConfiPsp[n]) ;
              MESSAGE  aMsg[n]
           Next
...
...

Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 72
Joined: Tue Oct 02, 2012 04:36 PM
Re: Menu desde una matriz
Posted: Wed Jan 22, 2014 12:01 AM

LO TENGO ARMADO ASI.....

EL TEMA QUE EN LA FUNCION HAY VARIABLES Y CUENTA EJECUTO LAS MISMA "NO ME LAS RECONOCE" :(

EL PROGRAMA SE VA POR ERROR Y ME DICE QUE EXISTE DICHA VARIABLE

GRACIAS

DAVID

Posts: 72
Joined: Tue Oct 02, 2012 04:36 PM
Re: Menu desde una matriz
Posted: Thu Jan 23, 2014 08:25 PM

Hola...

Alguna sugerencia ?

gracias

David

Posts: 118
Joined: Fri Dec 20, 2013 10:39 AM
Re: Menu desde una matriz
Posted: Thu Jan 23, 2014 09:52 PM

Hola. ¿Qué tienes dentro de la base de datos? ¿Puedes poner un ejemplo del contenido de los campos?

Windows 10 + FWH 20.08 + BCC 7.4 + Harbour 3.2.0 + PSPad 5.0.3
Posts: 72
Joined: Tue Oct 02, 2012 04:36 PM
Re: Menu desde una matriz
Posted: Fri Jan 24, 2014 04:59 PM
Code (fw): Select all Collapse
local MAEREPLV
local xEMPRESA
*----------------------------------------------------------

xEMPRESA:= EMPRESA

MAEREPLV:=CDX_Abrir('MAEREPLV',0,1,'MAEREPLV')
(MAEREPLV)->(ORDSETFOCUS( 2 ))
(MAEREPLV)->(dbgotop())


While !(MAEREPLV)->(Eof())

  aadd( mReportesItems , alltrim((MAEREPLV)->DETALLE) )
  aadd( mReportesFunci , '{||RepMaesDocu(xEMPRESA,'+str((MAEREPLV)->CODIINT,10)+',NOMBREU,mCodiUSUA)}' )   // ACA DETERMINO LA FUNCION A EJECUTAR

  (MAEREPLV)->(DbSkip())

EndDo
ER_4(MAEREPLV)



Code (fw): Select all Collapse
        For Xmenu = 1 to len(mReportesItems)
        
          MENUITEM mReportesItems[Xmenu] ;
                     MESSAGE mReportesItems[Xmenu] ;
                     BLOCK &(mReportesFunci[Xmenu])     // ACA EJECUTO LA FUNCION
        
        Next Xmenu

Continue the discussion