2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

プリザンターでプロセス機能とスクリプトを駆使して、独自の削除機能を実現する

Last updated at Posted at 2023-05-01

はじめに

前回の記事の続きになります。今回は編集画面で削除ボタンがクリックされたらそのレコードを確認画面を表示させずに削除するという処理を実装していきます。処理自体は単純です。また、今回この処理を実現しようと思った理由は前回の記事同様に毎回確認ダイアログが表示されるのがいやだからです。

プロセス機能

標準の削除ボタンを削除

今回はレコードを削除するボタンを追加するわけですが、標準の削除ボタンがあると任意で追加した削除ボタンと見分けがつかなくなります。そのため、下記

サーバスクリプト

// 新規作成・編集画面のとき
if (context.Action === 'edit') {
    elements.DisplayType('DeleteCommand', 3);  // 削除
    elements.DisplayType('OpenCopyDialogCommand', 3);  // コピー
    elements.DisplayType('EditOutgoingMail', 3);  // メール
}

任意の削除ボタンを追加

まずは、プロセスの機能を使って、削除ボタンを追加しようと思います。標準の削除ボタンでは、確認ダイアログが表示されてしまいますので、プロセス機能を使って削除ボタンを追加します。ちなみに、このプロセス機能を使えば任意の処理を行うためのボタンを追加することができるため便利です。プロセスタブの新規作成から表示名を削除にし、OnClick欄に\$p.ex.<任意のメソッド名>();を入力します。そのあとに「\$p.execProcess($(this));」を入れると更新処理が走ります。今回は削除なので入力しません。
image.png
そのうえで下記のソースコードをクライアントスクリプトに入力します。

クライアントスクリプト

$p.ex.execDeleteRecord = function () {
    try {
        // レコードの削除処理
        $p.apiDelete({
            // 自身のレコードIDを指定
            id: $p.id(),
            done: function (data) {
                // レコードが削除されてしまうとエラーが起きるため、一覧画面に遷移させる
                window.location.href = '<該当レコードの一覧画面>'
            }
        });
    } catch (ex) {
        console.log(ex.stack)
    }
}
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?