將腳本變量傳遞到新腳本中你好,
基本上我正在嘗試使用 for 循環將多個腳本嵌入到數據表中:
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);
);
);
);問題是當這些腳本之一運行時,它不知道 SV 是什麼。 我需要一種從主腳本捕獲 SV 並將其設置到新腳本中的方法。 例如,如果我將 SV 替換為 1,則所有嵌入的腳本都將像 SV == 1 一樣工作,因此我需要 For 循環將 SV“設置”為該腳本的正確值。
希望這是有道理的。
回复:將腳本變量傳遞到新腳本中通常,您可以使用此方法將變量傳遞到腳本中:
Eval (eval expr(
dt << New script (
"name",
Bivariate(
Y(expr(col_var)),
X(expr(col_list_var))
)
)
));
回复:將腳本變量傳遞到新腳本中嘗試這個:
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);
);
);"
)));
);
回复:將腳本變量傳遞到新腳本中我試過:
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);
);
);
);錯誤是:
Subscript Range in access or evaluation of 'Subscript' , CL[/*###*/Eval( Eval Expr( Expr( SV ) ) )]
回复:將腳本變量傳遞到新腳本中嘗試使用Eval( Eval Expr(...Expr(SV)...))強制對 SV 進行預評估(如有必要,還包括 CL)。