Q&A

回答の並べ替え:
投稿新規に質問を投稿する

複数シート間でのロールバック、コミットのような処理

バナジウム バナジウム

2024-09-11 11:56

シート1(メイン画面)とシート2(サブ画面)があります。
やりたいこと
①シート1からシート2へ画面を移動
②シート2で編集を行い、シート1へ戻る
 この時点では、シート2の編集内容はデータベースへ保存したくない
 ※もう一度、シート1からシート2に戻った場合は、編集した内容が表示される
③シート1のアクションでシート2の編集内容を保存
 シート1でキャンセルした場合は、②の編集内容は破棄する

現在、登録用のシートを設けて、そこにシート2の情報を逃がして、表示保存を行っています。
良い方法はないでしょうか…

新日本コンピュータマネジメント株式会社 新日本コンピュータマネジメント株式会社 パートナー
こんにちは

もし、仮に一時保存用のテーブルを別途作成し、そこにシート2の編集内容を保存させることが可能であれば、以下の方法が考えられます。

事前準備
 ・シート2の内容を保存するテーブル(以降、subテーブル)を作成
  (このテーブルに編集内容のほかに、作成者の「ユーザID」のカラムを追加で設ける)
処理について
 ①の処理:
  シート2の初期表示でsubテーブルからデータを取得(検索条件にユーザIDを使用)
 ②の処理:
  シート1に戻る際、subテーブルに編集内容とユーザIDを登録または更新
 ③の処理:
  シート1アクションで保存を実行した際、保存ボタン押下時の処理:アクションで「シート【シート2】のアクション【保存(仮)】」を実行する」を設置し、シート2のアクションで以下のフローで処理する
  ・①の処理と同様にsubテーブルからデータを取得
  ・登録用テーブルにシート2の編集内容を保存
  ・subテーブルから編集内容を削除(削除条件にユーザIDを使用)
  シート1でキャンセルをした際は、最後に記載したsubテーブルから編集内容を削除のみ実行させる

以上、よろしくお願いいたします。
メールコンタクトをとる