リストビューでExcelのように編集がしたいと言われることはありませんか?

直接編集がしたい、コピー&ペーストがしたい、これを解決する方法を紹介します。

※「リストビューの更新設定」もありますが、今回の事例では使えないため、サーバーサイドコマンドを使った方法で説明させてもらいます。使えない理由については別の投稿で説明させてもらいます。

このページでは以下のことがわかります!

  • 下記のためのサーバーサイドコマンドの設定方法
    • 更新したリストビューのデータのみの更新
    • 新規追加行のデータのみの登録
    • 複数行の更新・新規追加行の一括での更新・登録

このページの想定読者

  • Excel大好きなユーザの業務をForguncyでWebアプリに置き換えたい人
  • Excelの調査票をWebアプリに変えたい人

このページの情報はV8以降で動作確認済みです。

サーバサイドコマンドの設定

新規登録・更新兼用のサーバサイドコマンドの作成

【全般タグ】
 名前、説明を入力する。説明については、「テンプレート付き」コメントを書く時のコツを参考にしてください。(ここでは省略)


【パラメータ】タグ
パラメータの名前に「更新データ」と入力する。今回のパラメータはリストビューデータのため、パラメータの種類は「配列型」を選択してください。
編集列の鉛筆マークをクリックして、パラメータの詳細を設定します。

リストビューの更新データ(新規追加行、更新があった行)のみを新規登録、更新したいので、左上の「変更データのみを送信」にチェックを入れ、主キーフィールドにリストビューに設定しているテーブルまたはビューの主キーを入力します。複合キーの場合は、「,(カンマ)」区切りで入力します。

配列項目は新規登録および更新に必要な項目のみを設定します。説明列の「説明項目を追加...」をクリックすることで各項目の説明も追加することができますので、可能な限り設定しましょう。(ここでは省略)

すべて設定出来れば、「OK」ボタンをクリックしましょう。

今回は、処理結果をリターンコード、リターンメッセージで確認するため、【戻り値】タブの設定は省略させてもらいます。


【コマンド】タグ
 ここのコマンドでは、新規追加された行は「テーブルデータの更新(追加)」でレコード追加、更新された行は「テーブルデータの更新(更新)」でレコードを更新します。

詳細なコマンドの説明

例外処理:エラーが発生した場合に、エラーコードとエラーメッセージを設定する必要があるため、「例外処理」コマンドを選択します。
Try~Catchの間でエラーが発生した場合には、エラー発生箇所の次のコマンドがCatch内のコマンドとなるため、そこでリターンコード、リターンメッセージを設定します。
 リターンコード:=ExceptionCode
 リターンメッセージ:=ExceptionMessage

今回は複数レコードを繰り返しの中で新規登録、更新を行っていくため、エラーが発生した場合には新規登録・更新の取り消しが必要になります。そのため、トランザクションコマンドも使用しています。

繰り返しコマンドで、「繰り返し回数、または繰り返し配列」で「=更新リスト.AddRows」を選択します。「更新リスト」には、更新・新規登録のデータが 含まれています。「AddRows」は新規登録行のことを指します。繰り返し配列オブジェクト名(繰り返しの中で各行のデータが格納される先)は今回はItem(任意でも問題なし)を設定します。

新規登録行データ(更新データ.AddRows)の繰り返し内で、「テーブルデータの更新(追加)」コマンドを設定します。値は、フィールド毎に、Item.xxxxxxx、数式、固定値を設定します。更新者の設定方法は複数あるのですが、更新日は現在日時(=now())、更新者は固定値を今回は設定しています。

繰り返しコマンドで、「繰り返し回数、または繰り返し配列」で「=更新リスト.EditRows」を選択します。「EditRows」は更新行のことを指します。繰り返し配列オブジェクト名(繰り返しの中で各行のデータが格納される先)は今回はItem(任意でも問題なし)を設定します。

更新行データ(更新データ.EditRows)の繰り返し内で、「テーブルデータの更新(更新)」コマンドを設定します。値は、フィールド毎に、Item.xxxxxxx、数式、固定値を設定します。

リターンコード、リターンメッセージに下記を設定します。
 リターンコード:=ExceptionCode
 リターンメッセージ:=ExceptionMessage

Catchに入った場合は、ここでコマンドを終了します。
※Finallyにコマンドを追加した場合には、Finally内のコマンド実行後に終了します。

正常に終了した場合のリターンコードのみを設定します。ここでは、「1」を設定します。

(締め)続編「Excelライクなリストビューでの編集③」では、登録ボタンのコマンドでサーバーサイドコマンドを呼び出すときの設定方法について説明させてもらいます。

関連記事

【著者】

Jun

I’m Forguncy lover!

2019年にForguncyに出会い、今では、(自称)日本一のForguncyファンです。アップデート毎に増える機能にいつもワクワクしています。もっと、開発者にForguncyの魅力を知ってもらい、使いこなし、私たちと同じようワクワクする体験をして欲しいと思い、有志とともに2025年6月30日にForguncy Users Communityを立ち上げさせてもらいました。当サイトにアクセスした開発者がワクワクする情報を発信していきたいと思います。