FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour no consigo que me coja variables "detached locals"
Posts: 22
Joined: Sat Oct 24, 2009 11:55 AM
no consigo que me coja variables "detached locals"
Posted: Fri Nov 06, 2009 06:37 PM

Buenas otra vez.

No consigo que coja las variables detached locals. Este es el codigo, y siempre coge el valor de la ultima variable oCategory1 pulsando cualquiera de los botones generaldos. Lo que quiero es que cuando pulse el boton, se ejecute la funcion categorias(x), donde x es la variable que en teoria debe haber cogido como detached locals.

Gracias por todo.

  use category
  oCategory1=reccount()
  oCategory3=oCategory1-12
  oCategory4=oCategory3-12

     for oCategory2 = 1 to oCategory1

        go oCategory2
        oNomCat=category->categoria
        oNumeroCt=category->numero

         bAction := genblock(oNumeroCt)

       if oCategory2 <= 12
           @ (0.5-1.5)+(oCategory2*1.5),       46 BUTTON alltrim(oNomCat) OF oDlg SIZE 80, 20 ACTION eval(bAction)
        elseif oCategory2 > 12 .and. oCategory2 <= 24
           @ (0.5-1.5)+((oCategory2-12)*1.5),  61 BUTTON alltrim(oNomCat) OF oDlg SIZE 80, 20 ACTION eval(bAction)
        elseif oCategory2 > 24
           @ (0.5-1.5)+((oCategory2-24)*1.5),  76 BUTTON alltrim(oNomCat) OF oDlg SIZE 80, 20 ACTION eval(bAction)
        endif

     next

  close category

ACTIVATE DIALOG oDlg CENTERED

return nil

=================================================================
function GenBlock( oNumeroCt )

return { || categorias(oNumeroCt) }

La perseverancia es la virtud de los que llegan a la meta.
Posts: 346
Joined: Mon Oct 05, 2009 03:35 PM
Re: no consigo que me coja variables "detached locals"
Posted: Sat Nov 07, 2009 03:33 AM

hola:

quiero ayudarte, pero no logro entender bien tu código, por favor si puedes colocar alguna imagen para saber que es lo que observa un usuario?.

saludos desde Chile

SkyPe: armando.lagunas@hotmail.com

Mail: armando.lagunas@gmail.com
Posts: 22
Joined: Sat Oct 24, 2009 11:55 AM
Re: no consigo que me coja variables "detached locals"
Posted: Sat Nov 07, 2009 05:36 AM

Lo que hace es generar una serie de botones desde x=1 hasta x veces. Lo que quiero es que cada boton coja la variable x de la forma categorias(x). En todos los botones coje la ultima variable de x . No se si con esto tienes bastante.

No se como insertar imagenes en este post.

Gracias de antemano

Jose Garcia.

La perseverancia es la virtud de los que llegan a la meta.
Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM
Re: no consigo que me coja variables "detached locals"
Posted: Sat Nov 07, 2009 08:31 AM
Hola José:
PP1963 wrote: if oCategory2 <= 12
@ (0.5-1.5)+(oCategory2*1.5), 46 BUTTON alltrim(oNomCat) OF oDlg SIZE 80, 20 ACTION eval(bAction)
elseif oCategory2 > 12 .and. oCategory2 <= 24
@ (0.5-1.5)+((oCategory2-12)*1.5), 61 BUTTON alltrim(oNomCat) OF oDlg SIZE 80, 20 ACTION eval(bAction)
elseif oCategory2 > 24
@ (0.5-1.5)+((oCategory2-24)*1.5), 76 BUTTON alltrim(oNomCat) OF oDlg SIZE 80, 20 ACTION eval(bAction)
endif

Prueba quitando "eval(bAction)" y deja solo "bAction"

Un abrazo.
manuelmercado at prodigy dot net dot mx
Posts: 22
Joined: Sat Oct 24, 2009 11:55 AM
Re: no consigo que me coja variables &quot;detached locals&quot;
Posted: Sat Nov 07, 2009 08:42 AM

Gracias Manuel. Ya lo he probado y al pulsar los botones no hace nada, no ejecuta la funcion categorias() con la variable bloqueada

Ya no se que probar. :cry:

La perseverancia es la virtud de los que llegan a la meta.
Posts: 22
Joined: Sat Oct 24, 2009 11:55 AM
Re: no consigo que me coja variables &quot;detached locals&quot;
Posted: Sat Nov 07, 2009 08:54 AM
Así es como quedan los botones, cuando pulso sobre uno para que ejecuta la funcion categorias(oNumeroCt), no hace nada al quitar Eval(bAction), cuando esta eval(bAction) coge siempre la ultima variable que es 30

La perseverancia es la virtud de los que llegan a la meta.
Posts: 1074
Joined: Fri Oct 07, 2005 01:56 PM
Re: no consigo que me coja variables &quot;detached locals&quot;
Posted: Sat Nov 07, 2009 01:31 PM
Hola

prueba de esta manera

Code (fw): Select all Collapse
use category
oCategory1=reccount()
oCategory3=oCategory1-12
oCategory4=oCategory3-12

for oCategory2 = 1 to oCategory1

    go oCategory2
    oNomCat=category->categoria
    oNumeroCt=category->numero

    bAction := genblock(oNumeroCt)

    if oCategory2 <= 12
        @ (0.5-1.5)+(oCategory2*1.5), 46 BUTTON alltrim(oNomCat) OF oDlg SIZE 80, 20 ACTION eval(&(bAction))
    elseif oCategory2 > 12 .and. oCategory2 <= 24
        @ (0.5-1.5)+((oCategory2-12)*1.5), 61 BUTTON alltrim(oNomCat) OF oDlg SIZE 80, 20 ACTION eval(&(bAction))
    elseif oCategory2 > 24
        @ (0.5-1.5)+((oCategory2-24)*1.5), 76 BUTTON alltrim(oNomCat) OF oDlg SIZE 80, 20 ACTION eval(&(bAction))
    endif
next

close category

ACTIVATE DIALOG oDlg CENTERED


return

//=================================================================
function GenBlock( oNumeroCt )

return( "{ || categorias(oNumeroCt) }" )
//=================================================================



mira esto es parecido lo que haces a lo mejor te puede servir

Code (fw): Select all Collapse
    do case

        case cMSg = "CLIENTES"
            nPosMenu := 1
            aMsg := { { "&Proveedores"  , .f., "{ || Proveedores() }", "" } }

        case cMSg = "FACTURAS"
            nPosMenu := 2
            aMsg := { ;
                         { "Facturas según Guías &Despacho",.f., "{ || FactSegunGuias() }"             , "" },;
                         { "&Ingresar OC"                  , .f.,"{ || OrdenCompra(chr(73)) }"             , "" },;
                         { "&Ingresar COT."                       , .f.,"{ || Cotizaciones(chr(73))}"             , "" } }

        case cMSg = "ESTADISTICAS"
            nPosMenu := 6
            aMsg := { ;
                         { "&Margen por Depto"  ,       .f., "{ || Estadisti2( .t. ) }", "BTN_BARRA" }}

        case cMSg = "LIBROVTA"
            nPosMenu := 5
            aMsg :=     {{ "Libro &Compra"                      ,       .f., "{ || LibroCompra()    }"     , "BOOKCLOSE"      },;
                         { "Libro &Venta"                       ,       .f., "{ || LibroVenta()    }"     , "BOOKOPEN"       },;
                         { "Ventas por V&endedor"           ,       .f., "{ || VentasVendedor()}"     , "BTN_VTAVENDEDOR"},;
                         { "Ventas por &Departamento"       ,       .f., "{ || VentaDepto()    }"     , ""               },;
                         { "&Margen de venta por depto."   ,        .f., "{ || VentasMargen()   }"     , "BTN_MARGENVTA"  },;
                         { "&Orden de Compras"                  ,       .f., "{ || RepOCompraDepto()}"   , ""                },;
                         { "&Cotizaciones"                      ,       .f., "{ || RepCotizaciones()}"   , ""                }}

        otherwise
            return( .f. )

    endcase

    MENU oPopup POPUP
        for i := 1 to len( aMsg )
            MakeMenu( aMsg, i )
        next i
    ENDMENU

    if cMsg = "SERV.TECNICO" .and. x:ClassName() == "TTOOLBAR"
        ACTIVATE POPUP oPopup AT aRect[02], aRect[01] OF _oWnd
    endif

return( oPopup )
//-----------------------------------------------------------------------------------------------------------
static function MakeMenu( aMsg, n )
    if empty( aMsg[n] )
        SEPARATOR
    else
        MENUITEM aMsg[n,1] ACTION Eval(&(aMsg[n,3])) WHEN aMsg[n,2] RESOURCE aMsg[n,4]
     endif
return( NIL )
//-----------------------------------------------------------------------------------------------------------
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
Posts: 22
Joined: Sat Oct 24, 2009 11:55 AM
Re: no consigo que me coja variables &quot;detached locals&quot;
Posted: Sat Nov 07, 2009 03:01 PM

No funciona, me dice "Error description: Error BASE/1003 Variable does not exist: ONUMEROCT". No coge la variable oNumeroCt

Alguna idea más por ahí.

Muchas gracias a todos. :cry:

La perseverancia es la virtud de los que llegan a la meta.
Posts: 128
Joined: Wed Oct 26, 2005 12:18 PM
Re: no consigo que me coja variables &quot;detached locals&quot;
Posted: Sat Nov 07, 2009 03:03 PM

@ (0.5-1.5)+(oCategory2*1.5), 46 BUTTON alltrim(oNomCat) OF oDlg SIZE 80, 20
aTail(oDlg:aControls):bAction:=&("{|| categorias("+Str(oNumeroCt,,,.T.)+") }")

Posts: 22
Joined: Sat Oct 24, 2009 11:55 AM
Re: no consigo que me coja variables &quot;detached locals&quot;
Posted: Sat Nov 07, 2009 05:07 PM

Gracias Cesar.

Me da el siguiente error al compilar: Error E0030 Syntax error: "parse error at '@'"

La perseverancia es la virtud de los que llegan a la meta.
Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM
Re: no consigo que me coja variables &quot;detached locals&quot;
Posted: Sat Nov 07, 2009 05:32 PM
Hola José:

Prueba de la siguiente manera:
Code (fw): Select all Collapse
   if oCategory2 <= 12
   @ (0.5-1.5)+(oCategory2*1.5), 46 BUTTON alltrim(oNomCat) OF oDlg SIZE 80, 20
   elseif oCategory2 > 12 .and. oCategory2 <= 24
   @ (0.5-1.5)+((oCategory2-12)*1.5), 61 BUTTON alltrim(oNomCat) OF oDlg SIZE 80, 20
   elseif oCategory2 > 24
   @ (0.5-1.5)+((oCategory2-24)*1.5), 76 BUTTON alltrim(oNomCat) OF oDlg SIZE 80, 20
   endif
   
   GenBlock( ATail( oDlg:aControls ), oNumeroCt )
   next

*=================================================================
function GenBlock( oBtn, oNumeroCt )

   oBtn:bAction := {||Categorias( oNumeroCt ) }

return Nil
*=================================================================


Un abrazo.
manuelmercado at prodigy dot net dot mx
Posts: 22
Joined: Sat Oct 24, 2009 11:55 AM
Re: no consigo que me coja variables &quot;detached locals&quot;
Posted: Sat Nov 07, 2009 05:46 PM

Muchisimas gracias D. Manuel funciona a la perfeccion.

Siempre un amigo a tu disposición

Jose Garcia :D :D :D :D :D :D :D :D

La perseverancia es la virtud de los que llegan a la meta.

Continue the discussion