Pasa una variable de script a un nuevo scriptHola,
Básicamente, estoy tratando de usar un bucle for para incrustar múltiples scripts en una tabla de datos:
For( SV = 1, SV <= N Items( CL ), SV++,
DT2 << New Script(
Char(SV),
For( x = 7, x <= N Items( ColLst ), x++,
:Column(Char(ColLst[x])) << Hide (1);
);
For( w = 1, w <= N Items( Lst ), w++,
:Column(Char(CL[SV][w])) << Hide (0);
);
);
);El problema es que cuando uno de estos scripts se ejecuta, no sabe qué es SV. Necesito una forma de capturar SV desde el script principal y configurarlo en el Nuevo Script. Por ejemplo, si sustituyo SV por 1, todos los scripts incorporados funcionarán como si SV == 1, por lo que necesito que For Loop "configure" SV en el valor correcto para ese script.
Esperemos que esto tenga algún tipo de sentido.
Re: pasar una variable de secuencia de comandos en una nueva secuencia de comandosPrueba esto:
For( SV = 1, SV <= N Items( CL ), SV++,
Eval(Parse(Eval Insert("DT2 << New Script(
Char(SV),
For( x = 7, x <= N Items( ColLst ), x++,
:Column(Char(ColLst[x])) << Hide (1);
);
For( w = 1, w <= N Items( Lst ), w++,
:Column(Char(CL[^SV^][w])) << Hide (0);
);
);"
)));
);
Re: pasar una variable de secuencia de comandos en una nueva secuencia de comandosLo intenté:
For( SV = 1, SV <= N Items( CL ), SV++,
DT2 << New Script(
Char(SV),
For( x = 6, x <= N Items( ColLst ), x++,
:Column(Char(ColLst[x])) << Hide (1);
);
For( w = 1, w <= N Items(
Eval(
Eval Expr(
Expr(
CL[
Eval(
Eval Expr(
Expr(SV)
)
)
]
)
)
)
), w++,
:Column(
Char(
Eval(
Eval Expr(
CL[
Eval(
Eval Expr(
Expr(SV)
)
)
][w]
)
)
)
) << Hide (0);
);
);
);El error es:
Subscript Range in access or evaluation of 'Subscript' , CL[/*###*/Eval( Eval Expr( Expr( SV ) ) )]
Re: pasar una variable de secuencia de comandos en una nueva secuencia de comandosIntenta usar Eval (Eval Expr (... Expr (SV) ...)) para forzar la pre-evaluación de SV (y CL si es necesario).
Re: Pasar una variable de script a un nuevo scriptEn general, puede usar este método para pasar variables a un script:
Eval (eval expr(
dt << New script (
"name",
Bivariate(
Y(expr(col_var)),
X(expr(col_list_var))
)
)
));