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

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

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

  • 変更可能なリストビューでの更新処理
  • サーバーサイドコマンドを使用した新規登録、更新処理

このページの想定読者

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

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

登録処理

ここまできたら、あとは「登録」ボタンのコマンドでサーバサイドコマンドを呼び出すだけです。

登録ボタンのコマンド設定ウインドを開く。

処理手順は、「サーバサイドコマンドの呼び出し」→処理結果の確認→メッセージ表示

サーバサイドコマンドの前に「進捗インジケーターの表示」、後に「進捗インジケーターの終了」を入れているのは、サーバサイドコマンド実行中であることがアプリ使用者に視覚的に分かるためです。今回の処理は早いので大丈夫ですが、少し処理時間が掛かる(1秒以上)場合は進捗インジケーターの表示はおススメです。
注意点としては、マウスカーソルが砂時計のままになるため、メッセージ表示前には必ず「進捗インジケーターの終了」のコマンドを入れましょう。

「サーバーサイドコマンドの呼び出し」コマンドを選択します。

選択するサーバサイドコマンドは作成した「社員マスタの登録」を選択します。
選択したサーバサイドコマンドのパラメータに合わせて、パラメーターの設定項目が変更されます。

今回は更新リスト(配列)のみです。パラメーター値列の右側の「...」ボタンをクリックします。

対象のリスビューを選択します。今回は「リストビュー1」を選択する。本来は各リストビューも命名規則を作り、それに沿ったリストビュー名を付けたほうがよいかもしれません。
リストビューの項目名とパラメーター名を一緒にしていたため、対象のリストビューの選択だけでパラメータに設定する列名が自動で入力されました。名前を合わせておくことで選択ミスを避けることができます。

今回の配列パラメーターは「変更データのみを送信」にチェックを付けているため、「(変更データのみを送信)」が表示されています。

内容に不備がなければ、OKボタンをクリックします。

戻り値は、格納する変数名を同じにすることで後の処理でも変数選択が行いやすいため、私はこの方法を標準ルールにしています。

サーバーサイドコマンドの処理結果の確認です。リターンコードが「1」の場合は正常終了で、それ以外の場合はエラーと判断します。サーバーサイドコマンド内でエラーが発生した場合には、エラーコードがリターンコードに設定されるようにしているため、リターンコードのみで判断することができます。

「Excelライクなリストビューでの編集②~サーバサイドコマンド設定編~」で作成したサーバーサイドコマンドの正常時のリターンコードが「1」のため、上記の判断基準としています。正常終了の判定は使用するサーバーサイドコマンドのリターンコードの仕様に沿って変更してください。

正常終了の場合は、シンプルに「正常終了しました。」の固定値をメッセージに設定します。

エラーの場合は、「登録処理に失敗しました。」の固定値とサーバサイドコマンドから返されたエラーメッセージを使用します。「数式を使用する」にチェックを入れ、数式で設定します。

エラーの原因も分かるため開発時のエラー原因の確認が大幅に削減されます。ただし、本番時には「登録処理に失敗しました。」だけに戻したほうがよいかもしれません。一方でエラー発生時にエラーメッセージのスクショを送ってもらうことで原因特定が短縮できるため、リターンメッセージを残しておくのも保守面から考えるとメリットがあると思います。

【正常終了の場合】

【エラーの場合】

実際に発行して動作検証してみましょう!

正常ケースとエラーケースの両方が正しく処理されるか確認する必要があります。エラー発生時に想定通りの動きとなることも重要なため、必ずエラー発生時の処理も検証しておきましょう。

今回は意図的に文字数チェックを入れていないため、特定の列でテーブル設定の文字数以上で登録した場合にエラーが発生し、エラーメッセージが表示されることが確認できました。

完成画面の動き

(締め)リストビューでもExcelのような操作ができることを感じてもらえたでしょうか。
この方法をマスターすると、「Excel同様の操作性がいいのよね」と言われても、不安なく「できますよ」って言えるようになります。
続編「Excelライクなリストビューでの編集(ビュー編)」では、リストビューのデータソースがビューの場合での更新処理の作り方について説明させてもらいます。

関連記事

【著者】

Jun

I’m Forguncy lover!

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