Passa una variabile di script in un nuovo scriptCIAO,
Fondamentalmente sto cercando di utilizzare un ciclo for per incorporare più script in una tabella di dati:
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);
);
);
);Il problema è che quando uno di questi script viene eseguito non sa cosa sia SV. Ho bisogno di un modo per catturare SV dallo script principale e impostarlo nel New Script. Ad esempio, se sostituisco SV con 1, tutti gli script incorporati funzioneranno come se SV == 1, quindi ho bisogno del For Loop per "impostare" SV sul valore corretto per quello script.
Spero che questo abbia un qualche senso.
Ri: passare una variabile di script in un nuovo scriptIn generale puoi usare questo metodo per passare la variabile in uno script:
Eval (eval expr(
dt << New script (
"name",
Bivariate(
Y(expr(col_var)),
X(expr(col_list_var))
)
)
));
Ri: passare una variabile di script in un nuovo scriptProva questo:
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);
);
);"
)));
);
Ri: passare una variabile di script in un nuovo scriptHo provato:
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);
);
);
);L'errore è:
Subscript Range in access or evaluation of 'Subscript' , CL[/*###*/Eval( Eval Expr( Expr( SV ) ) )]
Ri: passare una variabile di script in un nuovo scriptProva a usare Eval( Eval Expr(...Expr(SV)...)) per forzare la pre-valutazione di SV (e CL se necessario).