スクリプト・サーバスクリプトの説明
今回サンプルとして、何でもよいので記録テーブルを作成し、そこにスクリプトでボタンを設置、サーバスクリプトでそのボタンクリック後の処理をさせます。
サンプルのためサーバスクリプトではログ出力のみ行います。
まずは、以下のスクリプトを追加します。
出力先は、「一覧」のみを選択してください。
<スクリプト>
$p.events.on_grid_load = function () {
$("#MainCommands").append(
$('<button id="button-exe" class="button button-icon button-positive ui-button ui-corner-all ui-widget applied" data-action="GridRows" data-method="post" onclick="$p.send($(this));">')
.html('<span class="ui-icon ui-icon-play"></span>実行')
);
};
上記は、一覧画面を表示したときに実行される「$p.events.on_grid_load」を使って、MainCommands領域にボタンを追加しています。
「onclick="$p.send($(this))」とすることで、ポストバックさせています。
「.html('<span class="ui-icon ui-icon-play"></span>実行'」では、UIアイコンを追加しています。
次に、上記のボタンをクリックしたときのサーバスクリプトを作成します。
条件は、「画面表示の前」としてください。
<サーバスクリプト>
try {
// 実行ボタンが押された時の処理
if (context.ControlId === 'button-exe') {
context.Log ('ボタンが押されました。')
}else{
// アラート出力
context.Error ('エラー')
}
} catch (ex) {
context.Log(ex.stack);
}
一覧画面を表示すると、一覧画面の下に「実行」ボタンが表示されます。
「実行」ボタンをクリックすると、コンソールに「ボタンが押されました。」と表示されます。
※コンソールは、F12キーを押下するなどして表示させてください。
まとめ
いかがでしたか?
スクリプトで処理をさせると、画面リフレッシュによりスクリプトが中断されてしまったり、処理が遅かったりする場合がありますが、サーバスクリプトで処理することでそのような心配がなくなります。ただしサーバ側で処理されるためサーバに負荷がかかりますし、エラー時にサーバ全体に影響も出ることもあるため、慎重に使用してください。
弊社ではプリザンターをご使用中、または、これからご使用になられる方向けに、運用ノウハウ集、プリザンター逆引き辞典、スタイル・スクリプトサンプル集の販売を行っております。
また、 プリザンターからのExcel帳票出力・PDF帳票出力の支援パック販売 も行っております。
プリザンター導入の支援や、スクリプト開発などの支援も行っておりますので、まずは気軽にご相談ください。
※ご相談の内容によっては有料となる場合がございます。予めご了承ください。
☆☆☆
ブログ内容への質問や追加説明をご希望の方は【 問い合わせフォーム 】からお気軽にお問い合わせください
☆☆☆
サーバスクリプトの一覧画面での発火
こんにちは、CCS田中です。
以前の投稿「第255回)ボタンでサーバスクリプトを発火させる」で、ボタンを設置してサーバスクリプトを実行する方法を紹介しました。
ただ、この方法ですとプロセス機能を使用しているため、新規作成画面か編集画面でしかボタンを設置できず、一覧画面からサーバスクリプトが発火できません。単に一覧画面にボタンを設置することはできますし、そのボタンのIDを拾うことは可能ですが、ちょっと工夫が必要なため備忘録を兼ねて紹介します。
実は、私がこの件で私が悩んでいたところ、プリザンターのインテグレートパートナーのみが出席できる勉強会が月1度あり、そこでインプリムの内田さんから直接教えていただきました。
(インプリム内田社長、ありがとうございました)
詳細は以下で説明します。