no consigo que me coja variables "detached locals"

Post Reply
User avatar
PP1963
Posts: 19
Joined: Sat Oct 24, 2009 11:55 am
Location: Murcia - España

no consigo que me coja variables "detached locals"

Post by PP1963 »

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.
User avatar
armando.lagunas
Posts: 340
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile
Contact:

Re: no consigo que me coja variables "detached locals"

Post by armando.lagunas »

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
User avatar
PP1963
Posts: 19
Joined: Sat Oct 24, 2009 11:55 am
Location: Murcia - España

Re: no consigo que me coja variables "detached locals"

Post by PP1963 »

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.
User avatar
mmercado
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Re: no consigo que me coja variables "detached locals"

Post by mmercado »

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
User avatar
PP1963
Posts: 19
Joined: Sat Oct 24, 2009 11:55 am
Location: Murcia - España

Re: no consigo que me coja variables "detached locals"

Post by PP1963 »

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.
User avatar
PP1963
Posts: 19
Joined: Sat Oct 24, 2009 11:55 am
Location: Murcia - España

Re: no consigo que me coja variables "detached locals"

Post by PP1963 »

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

Image
La perseverancia es la virtud de los que llegan a la meta.
User avatar
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

Re: no consigo que me coja variables "detached locals"

Post by Patricio Avalos Aguirre »

Hola

prueba de esta manera

Code: Select all

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: Select all

    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
User avatar
PP1963
Posts: 19
Joined: Sat Oct 24, 2009 11:55 am
Location: Murcia - España

Re: no consigo que me coja variables "detached locals"

Post by PP1963 »

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.
User avatar
César E. Lozada
Posts: 128
Joined: Wed Oct 26, 2005 12:18 pm
Location: Los Teques, Miranda, Venezuela

Re: no consigo que me coja variables "detached locals"

Post by César E. Lozada »

@ (0.5-1.5)+(oCategory2*1.5), 46 BUTTON alltrim(oNomCat) OF oDlg SIZE 80, 20
aTail(oDlg:aControls):bAction:=&("{|| categorias("+Str(oNumeroCt,,,.T.)+") }")
User avatar
PP1963
Posts: 19
Joined: Sat Oct 24, 2009 11:55 am
Location: Murcia - España

Re: no consigo que me coja variables "detached locals"

Post by PP1963 »

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.
User avatar
mmercado
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Re: no consigo que me coja variables "detached locals"

Post by mmercado »

Hola José:

Prueba de la siguiente manera:

Code: Select all

   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
User avatar
PP1963
Posts: 19
Joined: Sat Oct 24, 2009 11:55 am
Location: Murcia - España

Re: no consigo que me coja variables "detached locals"

Post by PP1963 »

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.
Post Reply