我正在尝试添加两列。
其中两列的名称为 abcd 和 efgh
以下线路工作:
dt_tab << New Column( newcolumn, formula( :name( "abcd" ) + :name( "efgh" ) ) );
但下面的代码引发错误
name1 = "abcd";
name2 ="efgh";
dt_tab << New Column( name1 || "3", formula(:name(name1) + :name(name2)));
为什么第二种方法不起作用?
之所以不起作用,是因为:Name()函数和Formula()元素均未在执行之前不解析该函数的内容。您需要在执行之前创建准确的JSL
name1 = "abcd";
name2 = "efgh";
Eval(
Substitute(
Expr(
dt_tab << New Column( name1 || "3",
formula( Column( __name1__ ) ) + Column( __name2__ )
)
),
Expr( __name1__ ), name1,
Expr( __name2__ ), name2
)
);
我的错误......我把“)”放错了,应该使用 As Column() 函数,而不是 Column() 函数
Names Default To Here( 1 );
dt_tab = New Table( "Example",
Add Rows( 4 ),
New Column( "abcd",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 2, 3, 4] )
),
New Column( "efgh",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [5, 6, 7, 8] )
)
);
name1 = "abcd";
name2 = "efgh";
Eval(
Substitute(
Expr(
dt_tab <<
New Column( name1 || "3",
formula(
As Column( __name1__ )
+As Column( __name2__ )
)
)
),
Expr( __name1__ ), name1,
Expr( __name2__ ), name2
)
);