모든 열 수식 평가 억제아래 스크립트를 사용하여 eval을 억제하거나 테이블의 모든 열 수식에 대해 eval을 허용하려고 했습니다. 어떤 이유로 스크립트를 세 번째 실행할 때 오류(스냅샷 참조)가 계속 발생했지만 특히 버그를 찾을 수 없습니다. 디버깅에 대한 커뮤니티의 도움에 감사드립니다.
names default to here(1);
dt = current data table();
try(formula_suppress = dt:Formula_Suppress,
dt << set table variable("Formula_Suppress",1);
formula_suppress = 1;
);
wait(0.5);
formula_suppress = abs(formula_suppress - 1);
dt << set table variable("Formula_Suppress",formula_suppress);
//show(formula_suppres);
for(i=1,i<=ncol(dt),i++,
as column(dt,i) << suppress eval(formula_suppress)
);
if(formula_suppress == 1,
status = "Suppressed",
status = "Evaluated"
);
NewWindow("Alert",
showToolbars(0),showMenu(0),BorderBox(top(15),bottom(15),left(15),right(15),
VListBox(
TextBox("Formulas in the table are " || char(status),<<SETFONTSTYLE></SETFONTSTYLE>
데이터 테이블스크립팅Re: 모든 열 수식 평가 억제실패의 원인이 된 구문 오류는
formula_suppress = dt:Formula_Suppress,
당신이 기대했던 것을 반환하지 않았습니다.다음은 테이블 변수가 존재하지 않을 때 제대로 반환되는 코드의 재작업입니다.
names default to here(1);
dt = current data table();
if(try(isempty(dt:Formula_Suppress),1) == 1,
dt << set table variable("Formula_Suppress",1);
formula_suppress = 1;
);
wait(0.5);
formula_suppress = abs(formula_suppress - 1);
dt << set table variable("Formula_Suppress",formula_suppress);
//show(formula_suppres);
for(i=1,i<=ncol(dt),i++,
as column(dt,i) << suppress eval(formula_suppress)
);
if(formula_suppress == 1,
status = "Suppressed",
status = "Evaluated"
);
NewWindow("Alert",
showToolbars(0),showMenu(0),BorderBox(top(15),bottom(15),left(15),right(15),
VListBox(
TextBox("Formulas in the table are " || char(status),<<SETFONTSTYLE></SETFONTSTYLE>