JSL:ユーザー入力用のプラットフォームダイアログを起動し、レポートを変更します壁に頭をぶつけて、これを行う簡単な方法がなければならないが、私は途方に暮れている。
これが私の望ましいシナリオです:
1)スクリプトを実行すると、「配布」プラットフォーム起動ダイアログが表示され、ユーザーが選択できるようになります。
2)[OK]をクリックして、結果のレポートにハンドルを返して、アドレス指定および変更できるようにします。
カスタムモーダルダイアログを作成し、結果を解析して、Distributionプラットフォームに渡すことにより、同じ結果を苦労して達成できます。しかし、私が欲しいのは、ユーザーが通常のDistribution起動ダイアログを実行できるようにすることです。
何か案は?
日時:JSL:ユーザー入力用のプラットフォームダイアログを起動し、レポートを変更ヨルダン、
これはスクリプトの例 action()を使用したガイド。
またはこれはあなたがやりたいことをする ?
スタン
日時:JSL:ユーザー入力用のプラットフォームダイアログを起動し、レポートを変更こんにちはヨルダン、
これを実行し、レポートの一番下までスクロールして、これが目的どおりかどうかを確認します。
Names Default To Here(1);
dt = astable(J(20,1,Random Uniform()));
grabHandle = expr(
distHandle = current report();
doTheRest
);
dt << distribution(action(grabHandle));
doTheRest = expr(
for(i=1, i<=3, i++, distHandle[outlinebox(1)] << append(textbox("Yay!")))
);
"doTheRest"はgrabHandleによって呼び出される式であるため、ユーザーが[OK]ボタンを押すまで実行されないことに注意してください。それ以外の場合、3つのアペンドはすぐに実行しようとします。分布レポートはまだ作成されていないため、distHandleが未定義になるため、これはエラーになります。そのため、Action()関数の引数である式の内部で呼び出される式でラップされた分布レポートの下流に依存するものが必要になります。
ありがとうしょーた 、Action()関数に言及するため... 私はその存在を知りませんでした。
乾杯、
ブレイディ
日時:JSL:ユーザー入力用のプラットフォームダイアログを起動し、レポートを変更ありがとうしゅうこれはまさに私が必要としたものです。Action()を適切に実行することができませんでした。ネストされた式がトリックを行います。甘い!
このスレッドを読んでいる開発者は、これが少し簡単ではないでしょうか?これをコード化するよりクリーンな方法があるといいでしょう。
ヨルダン
日時:JSL:ユーザー入力用のプラットフォームダイアログを起動し、レポートを変更これをもう少し試してみると、ネストされた式は不要です。これも機能します:
Names Default To Here( 1 );
dt = As Table( J( 20, 1, Random Uniform() ) );
dt << distribution(
action(
distHandle = Current Report();
For( i = 1, i <= 3, i++,
distHandle[Outline Box( 1 )] << append( Text Box( "Yay!" ) )
);
)
);
これをコーディングするより良い方法を求める以前のコメントを撤回します!
私がつまずいたのは、Action()がモーダルダイアログのようなものではなく、スクリプトの実行を停止しないことです。ユーザーが「OK」をクリックする前でも、Distribution呼び出しに続くコードはすぐに実行されます。ユーザー入力後に発生する必要があるすべてのものは、Action()引数内にラップする必要があります。
再度、感謝しますしゅうそしてしょーた道を示すために。