全部,
这似乎是相当简单但却极其令人沮丧的任务。 如何替换字符串中的引号。
假设我有以下列(Inv 01、Inv 02 ... 第 26 期)。
因此,我获取了列名称并构建了如下条件:
Stmt = "";
for(i = 1, i <= N Items(InvColNames), i++,
If(i == 1,
Stmt = ":" || InvColNames[i] || " >= 1 &" || ":" || InvColNames[i] || " <= InvLimit" ;
,
Stmt = Stmt || " & " || ":" || InvColNames[i] || ">= 1 &" || ":" || InvColNames[i] || " <= InvLimit" ;
) ;
);
":Inv 01 >= 1 &:Inv 01 <= InvLimit & :Inv 02>= 1 &:Inv 02 <= InvLimit & :Inv 03>= 1 &:Inv 03 <= InvLimit" Stmt = Substitute(Stmt, "\!"", "");
InvStatusExpr = Expr(dt_Inp << New Column("Status_Inv",Numeric,Continuous,Formula(Expr(Stmt))));
Eval(Eval Expr(InvStatusExpr));我希望他们使用我构建的条件作为表达式并定义一个条件。 但问题在于其当前的形式,因为我构建的“Stmt”用双引号括起来,它被作为字符串求值,并且我构建的语句被填充到新列中。
如果有人可以向我展示一种简单的方法来替换字符串中的双引号并使其正常工作,我将不胜感激。

最好的
乌代
Eval( Parse( Eval Insert( 当你真的陷入困境时,它会让你摆脱困境,但应该是最后的手段,因为代码很难调试。
基本上,您是将字符串作为文本插入到所需的 JSL 中,然后评估 JSL。^^ 告诉插入命令在哪里工作。
Eval( Parse( Eval Insert("\[ dt_Inp << New Column("Status_Inv",Numeric,Continuous,Formula(^Stmt^)); ]\" ) ) );这称为动态 JSL,它的功能非常强大。