데이터 테이블의 스크립트 패널에 동적으로 생성된 대시보드를 추가하는 방법은 무엇입니까?안녕하세요 여러분,
사용자가 하나 이상의 데이터 파일을 선택한 다음 이러한 파일을 데이터 테이블에 함께 연결할 수 있는 JSL 스크립트가 있습니다. 그런 다음 스크립트는 데이터 테이블에 대한 대시보드를 생성합니다.
대시보드용 JSL을 생성하기 위해 먼저 대시보드를 수동으로 생성하고(파일 -> 새로 만들기 -> 새 대시보드) Dashboard Builder에서 수동으로 생성된 그래프를 대시보드에 추가했습니다. 그런 다음 Dashboard Builder(빨간색 화살표 -> 스크립트 저장 -> 스크립트 창에)에서 대시보드 코드를 복사하여 JSL 스크립트 끝에 붙여넣었습니다.
모두 훌륭하게 작동합니다. 그러나 제 목표는 Dashboard Builder에서 빨간색 화살표 -> 스크립트 저장 -> 데이터 테이블로를 선택하여 대시보드를 저장하는 것과 같은 방식으로 생성된 대시보드를 데이터 테이블의 스크립트 패널에 저장하는 것입니다. 데이터 테이블에. 또한 대시보드가 자동으로 표시되지 않도록 하고 싶습니다. 사용자는 대시보드를 보고 싶을 때 스크립트 패널에서 대시보드를 클릭해야 합니다.
JSL 참조 PDF와 커뮤니티 토론을 검색해 보았지만 필요한 것을 찾지 못했습니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까? 데이터 테이블 생성을 생략하고 정리된 코드를 첨부합니다.
감사해요!
앤디
자동화 및 스크립팅맥 OS윈도우Re: 동적으로 생성된 대시보드를 데이터 테이블의 스크립트 패널에 추가하는 방법은 무엇입니까?저는 애플리케이션 빌더를 사용하지 않으며 다른 방식으로 스크립트를 작성합니다. 하지만 @DonMcCormack 에게 아이디어가 있을까요? 여기에는 여러분이 할 수 있는 몇 가지 아이디어가 있을 수 있습니다 . 왜 아직 App Builder를 사용하지 않습니까? - (2023-US-30MP-1401) (동일 주제 Scripters Club 2024: 세션 1 - 애플리케이션 빌더 )
Re: 동적으로 생성된 대시보드를 데이터 테이블의 스크립트 패널에 추가하는 방법은 무엇입니까?다음과 같이 시도해 볼 수 있습니다.
dashboardExpr = Expr(
/* Code for JMP App goes here */
);
Eval(Substitute(
Expr(Current Data Table() << New Script("Dashboard",dbExpr)),
Expr(dbExpr),Name Expr(dashboardExpr)
));
현재 데이터 테이블()을 대시보드를 추가할 참조 테이블로 변경합니다. 대시보드가 실행되기 전에 초기화해야 하는 다른 변수가 있을 수 있습니다. 17행의 변수 제목은 24행 주변의 존재하지 않는 얼룩과 마찬가지로 문제를 일으켰습니다(비록 생략하기로 선택한 경우 제목이 포함되지 않은 이유를 이해할 수는 있지만).
Re: 동적으로 생성된 대시보드를 데이터 테이블의 스크립트 패널에 추가하는 방법은 무엇입니까?고마워요! 이것은 완벽하게 작동합니다. 그리고 '제목'과 얼룩에 대해서는 당신이 옳습니다.
Re: 데이터 테이블의 스크립트 패널에 동적으로 생성된 대시보드를 추가하는 방법?@돈맥코맥
안녕 돈,
저는 지금 귀하의 솔루션을 사용하고 있습니다.
하지만 왜 Eval und Expr로 풀 수 없는지 아십니까?
나는 방금 Eval과 Eval Expr을 이해하기 시작했다고 믿었지만 "새 스크립트"에서는 작동하지 않았습니다.
Re: 데이터 테이블의 스크립트 패널에 동적으로 생성된 대시보드를 추가하는 방법?어떻게 사용하셨나요?
편집하다:
이것이 몇 가지 아이디어를 제공하기를 바랍니다. (대시보드 표현식과 유사한 방식으로 작동할 것이라고 가정합니다.)
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
dt << Delete Scripts(dt << Get Table Script Names);
gb_expr = Expr(Graph Builder(
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11)))
));
Eval(Substitute(
Expr(dt << New Script("GB1", myexpr)),
Expr(myexpr), Name Expr(gb_expr)
));
Eval(EvalExpr(
dt << New Script("GB2", Expr(Name Expr(gb_expr)));
));