第8回 Forguncyで行うデータの登録・読出・更新・削除(CRUD)

Forguncyで行うデータの登録・読出・更新・削除(CRUD)

データ操作を行うアプリケーションにおいて、登録(Create)、読出(Read)、更新(Update)、削除(Delete)の4つの操作、いわゆるCRUD操作の実装は欠かせません。
データを操作するにはSQLを使って命令文を書く必要がありますが、そのSQLを扱うには専門的な知識が必要なため、SQLを理解できる技術者が必要となります。

しかし、ノーコードツールであるForguncyでは、データの新規登録、更新、削除に加えて検索機能の実装までをすべてノーコードで実現することが可能です。
本記事では、社員マスタのメンテナンス機能の作成という場面を想定して、Forguncyを用いてCRUD操作が可能なアプリの作成方法についてご紹介します。

見出しの装飾

ForguncyでCRUD処理をするための準備

解説に入る前に、本記事で想定する社員マスタのメンテナンス機能アプリについてご説明します。アプリは、「社員一覧」、「社員登録」、「社員情報」の3画面で構成されています。社員一覧画面では、社員マスタに登録されている社員の情報を一覧表示します。全項目を表示すると見づらくなってしまうため、一部の項目のみを表示し詳細を見るには社員情報ページに遷移するように設定しています。また、画面上部には所属や名前で表示するデータを絞り込めるように検索機能を実装しています。データの削除を行うのもこの画面で、レコード単位で削除できるよう各行にリンクを設置しています。CRUDでいうと、RとDを担っています。

社員登録画面では、社員マスタに新規にデータを登録します。社員一覧画面とは相互に行き来ができる関係になっています。社員情報画面は一覧画面から遷移してくる画面で、CRUDでいうRとDの機能を持っています。一覧画面で選択したレコードの詳細情報が表示され、右上には編集ボタンが用意されています。この編集ボタンを押すことで各項目が入力操作を受け付けるようになり、更新ボタンを押したタイミングで社員マスタのデータが更新されるような形です。

社員マスタメンテナンスアプリの構成
▲ 社員マスタメンテナンスアプリの構成

ForguncyでデータのCRUD処理を行うには、プロジェクト内にテーブルが存在している必要があります。テーブルについては既に第2回の記事内で解説しておりますので、そちらを参照してください。

Forguncyで扱うことのできるデータベースは大きく分けて内蔵データベースとSQL Serverなどの外部データベースの2種類がありますが、今回は内蔵データベース内に存在するテーブルに対するCRUD操作という前提のもと解説を行います。外部データベース内のテーブルに対してデータ操作を行う場合は、本記事に加えて外部データベースについてご紹介している第7回の記事をご覧ください。

見出しの装飾

データの新規追加を行う

社員登録画面には、自動採番され入力不可であるIDフィールドと、氏名やふりがななどのテキストボックス、所属を選択するコンボボックスなどの入力フィールドが用意されています。通勤手段や年末調整などは該当する項目にチェックを入れてもらい、最後に登録ボタンを押下することで社員マスタテーブルにデータが新規登録されます。

登録処理は、登録ボタンにコマンドをセットして実装します。
コマンドにはあらかじめ様々な動作が用意されています。画面の遷移や出力などの動作もコマンドを使用して、ノーコードで実装することができます。
ForguncyではデータのCRUDのうち、R(読出)以外はこのコマンドから「テーブルデータの更新」を使用します。

「テーブルデータの更新」コマンドでは、まず更新、追加、削除のうちどの処理を行うのかを指定する必要があります。指定した処理の種類に合わせて設定画面のレイアウトが変化するので、対象となるテーブルやどのフィールドにどんな値をセットするのかなどの詳細設定ができるようになります。更新値はデフォルトではセルに連結されているデータを参照しますが、テキストや数値の直接入力やセル番地の指定も有効です。

見出しの装飾

複数のテーブルに対してデータ操作を行うには

上記の例は社員マスタという1つのテーブルに対してのみ追加処理を行っていますが、実際には登録ボタンを押下した際に複数のテーブルに対してデータを追加したいケースもあるのではないでしょうか。

こういった場合は、登録ボタンにセットされているコマンドの処理の数を増やすことで対応が可能です。Forguncyでは、1つのコマンドに対して複数の処理を実装することができます。データ操作を行う「テーブルデータの更新」処理では、1回につき1つのテーブルに対しての操作しか行うことができません。しかし、1つのコマンドに対して「テーブルデータの更新」処理は複数回セットすることができます。つまり、データの登録を行うテーブルの数だけ「テーブルデータの更新」処理を追加すれば、ボタンの押下は一度だけで複数のテーブルにデータ登録を行えます。

実際に1つのコマンドに対して複数テーブルのデータ操作を実装する場合には、トランザクション処理を有効にすることをおすすめします。トランザクションの設定も「テーブルデータの更新」処理内で有効/無効の切り替えができますので、ご活用ください。ただし、トランザクションはサーバーサイドのコマンドのみで使用可能です。

見出しの装飾

データの更新を行う

社員情報の更新は社員情報詳細画面から行います。社員一覧画面から「詳細」のリンクを押下すると選択した社員の詳細画面に遷移し、編集ボタンを押下することで各項目の編集・入力が可能になります。

更新処理の実装も基本は新規追加と変わりません。更新ボタンにコマンドをセットし、そのコマンドに「テーブルデータの更新」処理を追加します。処理の種類では「更新」を選択してください。

コマンド1つに対して複数の処理を実装できることは先述しましたが、同時に実装する処理は同じ種類のものである必要はありません。そのため、更新ボタンのコマンドに対して条件分岐やクエリーなどの処理も併せて実装することが可能です。

有限会社 平組様の事例では、1つのコマンド内でこれらの処理を組み合わせてレコードが既に存在する場合は更新を、存在しない場合はデータの新規追加をするような処理を実現されています。こちらもぜひ参考にしてください。

見出しの装飾

データの削除を行う

レコードの削除もまた「テーブルデータの更新」処理で行うことができます。設定画面から処理の種類で削除を選択した場合、データの追加や更新の時とは画面の構成が変化します。削除処理ではレコード単位でデータの操作を行うため必須の設定項目は対象テーブルと更新対象レコードのみとなります。また、これは追加や更新の場合でも有効なオプションですが、確認ダイアログの表示もこのコマンド設定画面から実装することができます。

上記の「テーブルデータの更新」処理でデータの削除を行う場合、当然ですがデータはテーブルから完全に消えてしまいます。しかし、退職した社員の情報は社員一覧には載せたくないけれどデータベースには残しておきたい、というようなケースも存在するでしょう。

これを解決するにはあらかじめテーブルに状態フラグを用意しておくことが有効です。社員マスタにYes/No型の「退職済」というフィールドを準備しておき、社員一覧画面のリストビューにはクエリーで「退職済フィールドの値が1以外(=退職者でない)」という条件をセットします。そうすると、社員一覧画面には社員マスタに登録されていて、退職者ではない人の情報のみが一覧表示されるようになります。

この状態で、削除ボタンのコマンドには「テーブルデータの更新」処理で退職済フィールドの値に「1(=Yes)」をセットして更新するよう設定をします。こうすることで、削除ボタンを押下した時に実際に行われるのは更新処理でありながら、表示上はデータが削除されたように見せることができます。

見出しの装飾

データ操作前に確認ダイアログを表示する

データの削除の項でも少し触れましたが、データの追加・更新・削除の際には処理を行う前に確認メッセージのダイアログを表示することができます。

データの操作処理の実行前にダイアログを出すことで誤って更新や削除をする危険性が減らせるため、基本的にはこの設定をしておくことを推奨します。

前述の通り、確認ダイアログはコマンドの「テーブルデータの更新」処理から設定できます(設定画面に項目が表示されていない場合、「詳細設定を表示」のリンクを押下してください)。表示するメッセージはデフォルトでセットされていますが、自由に変更することもできます。

見出しの装飾

一覧画面に検索機能を実装

ここまではデータのCRUDのうち、R(読出)以外の内容についてご紹介しました。ForguncyではRの機能をリストビューなどのセル型が担っています。リストビューについての詳細は既に第5回の記事で解説をしておりますのでここでは割愛しますが、リストビューと組み合わせることで一覧画面をより便利にする検索機能をノーコードで実装する方法についてご紹介します。

図は、社員一覧画面です。社員の情報が表示されているリストビューの上部に、事業部名・部名・課名を選択するコンボボックスと名前を入力するテキストボックス、検索処理を実行するためのボタンが設置されています。

検索機能のついた社員一覧画面
▲ 検索機能のついた社員一覧画面

ユーザーはこれらのコンボボックスやテキストボックスに検索条件を指定し、検索ボタンを押下します。すると、リストビューに表示されるデータが指定の条件通りに絞り込まれます。

指定条件に合わせてデータが抽出される
▲ 指定条件に合わせてデータが抽出される

社員一覧画面の検索機能では、事業部名などの所属に関する情報はコンボボックスで実装しています。コンボボックスは組織マスタとデータ連携されており、組織マスタ内に存在する項目のみを表示します。一方で氏名はテキストボックスで実装し、ユーザーが自由に入力できるようにしています。こうすることで、図のように名前に「田」が含まれる人だけを抽出して表示するなど、検索の自由度を高めることが出来ます。もちろん、フルネームで指定を行うことも可能です。

検索ボタンに設定したクエリー処理
▲ 検索ボタンに設定したクエリー処理

検索の処理自体は画面右上の検索ボタンにコマンドを実装しています。コマンドに「クエリー」処理を設定し、対象テーブルでリストビューのデータソースになっているテーブルを、その下の条件欄にはそれぞれのフィールドとコンボボックスやテキストボックスを配置したセルを指定していきます。これだけで、検索機能の実装は完了です。導入事例のページでは、Forguncyを使用した検索機能のあるシステムを構築された例を複数ご紹介していますので、こちらもぜひご覧ください。

見出しの装飾

Forguncyをもっとよく知る

各業種や用途別にForguncyを活用して、成功した事例や使い方をご紹介します。