두 개의 열을 추가하려고 합니다.
두 열의 이름은 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
)
);
제 오류는... ")"를 잘못 입력했고 Column() 함수가 아닌 As 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
)
);