Page 1 of 1
no consigo que me coja variables "detached locals"
Posted: Fri Nov 06, 2009 6:37 pm
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) }
=================================================================
Re: no consigo que me coja variables "detached locals"
Posted: Sat Nov 07, 2009 3:33 am
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
Re: no consigo que me coja variables "detached locals"
Posted: Sat Nov 07, 2009 5:36 am
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.
Re: no consigo que me coja variables "detached locals"
Posted: Sat Nov 07, 2009 8:31 am
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.
Re: no consigo que me coja variables "detached locals"
Posted: Sat Nov 07, 2009 8:42 am
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.
Re: no consigo que me coja variables "detached locals"
Posted: Sat Nov 07, 2009 8:54 am
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
Re: no consigo que me coja variables "detached locals"
Posted: Sat Nov 07, 2009 1:31 pm
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 )
//-----------------------------------------------------------------------------------------------------------
Re: no consigo que me coja variables "detached locals"
Posted: Sat Nov 07, 2009 3:01 pm
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.
Re: no consigo que me coja variables "detached locals"
Posted: Sat Nov 07, 2009 3:03 pm
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.)+") }")
Re: no consigo que me coja variables "detached locals"
Posted: Sat Nov 07, 2009 5:07 pm
by PP1963
Gracias Cesar.
Me da el siguiente error al compilar: Error E0030 Syntax error: "parse error at '@'"
Re: no consigo que me coja variables "detached locals"
Posted: Sat Nov 07, 2009 5:32 pm
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.
Re: no consigo que me coja variables "detached locals"
Posted: Sat Nov 07, 2009 5:46 pm
by PP1963