動的に作成されたダッシュボードをデータ テーブルのスクリプト パネルに追加するにはどうすればよいですか?こんにちは、みんな、
ユーザーが 1 つ以上のデータ ファイルを選択し、それらのファイルを連結してデータ テーブルにすることができる JSL スクリプトがあります。スクリプトは、データ テーブルのダッシュボードを作成します。
ダッシュボードの JSL を生成するために、まずダッシュボードを手動で作成し ([ファイル] -> [新規] -> [新しいダッシュボード])、ダッシュボード ビルダーで手動で生成したグラフを追加しました。次に、ダッシュボード ビルダーからダッシュボード コードをコピーし (赤い矢印 -> [スクリプトの保存] -> [スクリプト ウィンドウに])、JSL スクリプトの最後に貼り付けました。
これはすべてうまく機能しますが、私の目標は、ダッシュボード ビルダーから赤い矢印 -> [スクリプトの保存] -> [データ テーブルに] を選択してダッシュボードをデータ テーブルに保存するのと同じように、生成されたダッシュボードをデータ テーブルのスクリプト パネルに保存することです。また、ダッシュボードが自動的に表示されないようにしたいです (ユーザーがダッシュボードを表示したいときに、スクリプト パネルでダッシュボードをクリックする必要があります)。
JSL リファレンス PDF とコミュニティのディスカッションを検索してみましたが、必要なものが見つかりませんでした。どなたか正しい方向を示していただけますか? データ テーブルの生成を省略した、サニタイズされたコードが添付されています。
ありがとう!
アンディ
自動化とスクリプトマックOSウィンドウズRe: 動的に作成されたダッシュボードをデータ テーブルのスクリプト パネルに追加するにはどうすればよいですか?私はアプリケーション ビルダーを使用していないので、別の方法でスクリプトを作成します。しかし、 @DonMcCormackに何かアイデアがあるかもしれません。ここに、実行できるアイデアがあるかもしれません。なぜまだアプリケーション ビルダーを使用していないのですか? - (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)
));
Current Data Table()を、ダッシュボードを追加する参照テーブルに変更します。ダッシュボードを実行する前に初期化する必要がある他の変数がある可能性があります。行 17 の変数タイトルと行 24 付近の存在しない BLOB が問題を引き起こしていました (ただし、これを省略することを選択した場合、なぜこれが含まれていなかったのかは理解できます)。
Re: 動的に作成されたダッシュボードをデータ テーブルのスクリプト パネルに追加するにはどうすればよいですか?ありがとう、ドン!これは完璧に動作します(そして、「タイトル」と blob についてはあなたの言う通りです)。
Re: 動的に作成されたダッシュボードをデータ テーブルのスクリプト パネルに追加するにはどうすればよいですか?ドン・マコーマック
こんにちは、ドン。
私は今あなたの解決策を使っています。
しかし、なぜ Eval と 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)));
));