1.概要
Unifinityでは、アプリ画面に入力した情報をデータベースに保存したり、データベースから情報を取得してアプリに表示させることができます。データベースを使うと、データの蓄積や検索を容易に行うことができます。
この記事では、「データフォーム連携」、「データベースロジック」および「SQLロジック」の3つの方法で、データベースにデーターを登録する方法を解説します。 それぞれの方法の簡単な特徴は次の通りです。
データフォーム連携 |
フォーム(画面)をテーブルを連携させることで、コントロールと テーブルを強固に連動させることができます。フォーム上のコント ロールに入力した内容をリアルタイムで自動的にテーブルに格納 する必要があるときなどに便利です。 |
---|---|
データベースロジック |
「登録」などのボタン操作をトリガーにしてテーブルの上書きをし ます。データベースの読み書きを減らすことができるほか、エラー 入力の検出など細かな設定も可能になります。 |
SQLロジック |
SQL文を使ってデータベースにアクセスすることができます。 SQL文に馴染みのある方におすすめです。 |
解説で使用しているサンプルプロジェクトを以下よりダウンロードすることができます。ぜひご活用ください。
2.動作イメージ
3.実装方法
画面とテーブルを作成したうえで、各アクセス方法を実現するためのパラメーター設定またはロジック作成を行っていきます。データーベースアクセスの具体的な実装方法について知りたい方は、3-3からご覧ください。
3-1.画面を作成する
トップ画面を含む5つの画面を順に作成していきます。
3-1-1.トップ画面
画面設計機能から新規にフォームを作成し、ボタンやラベルのコントロール、テーブルの内容を表示するための表コントロールを以下の要領で配置します。
①表
②ラベル
③ボタン
次に、各ボタンに画面遷移先の設定を行います。トップ画面のボタンコントロールを選択したうえで、「オブジェクト」>「動作設定」から「遷移先」を選択し、遷移先とする画面を設定します。
3-1-2.データフォーム連携画面の作成
以下の要領で新規に画面を作成し、その中にボタンや、テキストのコントロールを配置します。
①ボタン
②テキスト
「戻る」ボタンに画面遷移先の設定を行います。ボタンコントロールを選択したうえで、「オブジェクト」>「動作設定」から「遷移先」を選択し、遷移先の画面を設定します。
3-1-3.データベースロジック画面の作成
以下の要領で新規に画面を作成し、その中にボタンや、テキストのコントロールを配置します。
①ボタン
②テキスト
3-1-2および3-1-3を参考にボタンに遷移先を設定します。
3-1-4.SQLロジック画面の作成
以下の要領で新規に画面を作成し、その中にボタンや、テキストのコントロールを配置します。
①ボタン
②テキスト
3-1-2および3-1-3を参考にボタンに遷移先を設定します。
3-2.データベースを設定する
3-2-1.テーブルを作成する
DB設計機能からテーブルの新規作成および設定を行います。
新規にテーブルを生成したうえで、ユーザーID、ユーザー名、入社日の入力内容を保存できるように、それぞれ以下の要領で項目を設定します。
3-2-2.テーブルの内容をアプリで表示する
テーブルの内容をアプリで表示するためにはいくつかの方法がありますが、ここではデータフォームを利用します。
3-1-1で作成したトップ画面を選択したうえで、プロパティーエリアの「データ」を選択し「テーブル名」に3-2-1で作成したテーブルを指定します。
次に、トップ画面内に配置した表と、ラベルコントロールにも、データフォームの設定をします。
まず、表コントロールを選択したうえで、「データ」>「内容」から「フォーム」を選択します。「表示行数」に任意の数値を指定したうえで、「列ヘッダー」と「行選択」にチェックを入れてください。
「表示項目」を選択すると、「表示項目の設定」ダイアログが表示されます。ダイアログ内の空いているマスをダブルクリックすると表示項目の設定ができますので、以下の要領で表示項目を設定したら、「OK」をクリックしてください。
3-2-3.トップ画面で選択された行の情報を他の画面と共有する
トップ画面の表コントロール上で選択された行にかかわる情報を他の入力画面と共有することで、入力画面を開いたときにトップ画面で選択されていた行のデータをセットし、テーブルのデータを編集することができます。
まずは、トップ画面の表から選択した行の「user_id」を保存するためのグローバル変数を設定します。
グローバル変数は、TOPメニューの「プロパティ」>「グローバル変数」から「変数名」を設定して登録します。ここでは変数名を「select_user_id」とします。
次に、トップ画面のラベルコントロールにデータフォームの設定をします。
ラベルコントロールを選択したうえで、「データ」>「内容」から「フォーム」を選択し、「フィールド名」として、該当する項目名を指定します。
最後に、グローバル変数を設定するロジックを作成し、トップ画面の表コントロールに登録します。
グローバル変数を設定するロジックは以下の通りです。
#1で、上記でデータフォームの設定をしたラベルの内容を取得し、#2で取得した値をグローバル変数の値として設定しています。
作成したロジックを以下の要領でトップ画面の表コントロールに設定します。表が選択されると上記ロジックが実行され、選択行の情報がグローバル変数に自動的に登録されます。
3-3.データフォーム連携を活用する
データフォーム連携の機能を使って、入力画面からデータの登録や編集ができるようにします。
3-3-1.データの登録
3-1-2で作成したデータフォーム連携画面を選択し、データフォームの設定を行います。
まず、画面を選択した状態でプロパティーエリアの「データ」を選択し、「テーブル名」に3-2で作成したテーブルを指定します。これによりデータフォームが有効となります。
次に、各コントロールにデータフォームの設定をします。
各コントロールを選択したうえで、「データ」>「内容」から「フォーム」を選択し、「フィールド名」として、該当する項目名を指定していきます。
3-3-2.データの取得と編集
データフォーム画面を開いた際に、トップ画面で選択されていた行のデータを取得し、入力欄に表示させるようにします。データフォーム連携画面のオープン時処理に、データセットを生成し読み込みを行うロジックを登録することで実装します。
データセットは、コントロールとテーブルの間で、一時的にデータを格納する役割を担う内部テーブルです。詳しくは、「データセットについて」を参照ください。
まずは、ロジックを作成しましょう。ロジックは以下となります。
#1で3-2-3で設定したグローバル変数を取得し、#2で取得したグローバル変数の値と等しい「ユーザーID」を抽出します。#3はロジックから生成したデータセットをコントロールに反映するロジックです。「コントロール/更新」ロジックでは反映されないので注意してください。
#2および#3のパラメーター設定は以下の通りです。
以上でデータフォーム連携の設定は完了です。
メニューアイコンの「実行」ボタンからアプリを実行して、データフォーム連携画面からデータを登録したり、登録したデータをトップ画面で選択し、編集したりしてみましょう。
データフォーム連携画面で入力したテストデータがトップ画面に戻っても確認できれば成功です。トップ画面でデータを選択した状態でデータフォーム連携画面に進むことで、選択肢たデータを編集することもできます。
3-4.データベースロジックを活用する
データフォーム連携をしなくても、データベースロジックを活用することで同様にデータを登録したり、編集したりする画面を作成することができます。
3-4-1.データの取得
画面を開いた際に、トップ画面で選択されていた行のデータを取得し、入力欄に表示させるようにします。データベースロジック連携画面のオープン時処理に、データベースからデータを取得し各コントロールにセットするロジックを登録することで実装します。
作成するロジックは以下の通りです。サンプルプロジェクトに登録されています。
#1で 上記3-2-3で設定したグローバル変数を取得します。#2から#7は、データベースから取得したグローバル変数の値と「ユーザーID」が等しい行を選択し、「ユーザーID」、「ユーザー名」および「入社日」をそれぞれ取得したうえで、各コントロールにセットするロジックです。#2のパラメーター設定は以下の通りです。
3-4-2.データの更新
データベースロジック画面で入力したテキストの内容を、データベースに上書きするロジックを作成し、データベースロジック画面の登録ボタンにロジックを登録します。
まずはロジックを作成します。サンプルプロジェクトのロジックは以下のとおりです。
#1から#3のロジックで各テキストボックスから内容を取得し、#4で取得したユーザーIDと等しい「ユーザーID」のデータを上書きします。#4のロジックで設定しているパラメーターは以下の通りです。
データベースロジック画面の「登録」ボタンの「実行処理」に、いま作成したロジックを設定します。
以上でデータベースロジックの設定は完了です。
メニューアイコンの「実行」ボタンからアプリを実行し、正しく設定されているか試してみましょう。
データフォーム連携によって入力したテストデータを選択した状態でデータベースロジック画面に進み、表示されたテストデータのユーザー名または入社日を変更し、「登録」ボタンを押します。トップ画面に戻るので、テストデータの値が変更されているか確認しましょう。
3-5.SQLロジックを活用する
データベースロジック以外にもSQL文を使ってロジックを記述することができます。
3-5-1.データの取得
SQLのSELECT文で、データベースからデータを取得し、SQL画面にセットするロジックを作成し、SQL画面のオープン時処理にロジックを登録します。
SQLのSELECT文で、データベースからデータを取得し、SQL画面にセットするロジックは以下となります。
#1で3-2-3で設定したグローバル変数を取得します。#2は、SQLのSELECT文を使って、取得したグローバル変数の値と同じ「ユーザーID」を検索し、同じ行のデータを取得するロジックです。#3以降で、#2で取得した行から「ユーザーID」、「ユーザー名」および「入社日」をそれぞれ取得し、各コントロールに配置します。
SQL実行ロジックのパラーメーターおよびSQL文は以下の通りです。SQLの文中で "?" を記入した箇所にパラメーターが代入されます。
#3のユーザーID取得のロジックは以下の通りです。結果を踏まえてのデータから「user_id」がキーとなっているデータを取得します。
3-5-2.データの更新
SQLロジック画面のテキストの内容を、SQLのUPDATE文でデータベースに更新するロジックを作成し、SQL画面の登録ボタンに登録します。
ロジックの内容は以下のとおりです。サンプルプロジェクトに同様のロジックが「SQLを実行」として登録されていますので併せてご参照ください。
#1から#3で各コントロールから値を取得します。#4は、SQLのUPDATE文で、データベースから取得した値と同じ「ユーザーID」の行を選択して更新するロジックです。
#4SQL実行ロジックのパラメーター設定およびSQL文は次の通りです。パラメーターを複数設定した場合は、パラメーターを設定した順番通りに、SQL文の "?" に順番に代入されます。
SQLロジック画面の「登録」ボタンにいま作成したロジックを登録します。
以上でSQLロジックの設定は完了です。
メニューアイコンの「実行」ボタンからアプリを実行し、正しく設定されているか試してみましょう。
データフォーム連携によって入力したテストデータを選択した状態でSQLロジック画面に進み、表示されたテストデータのユーザー名または入社日を変更し、「登録」ボタンを押します。トップ画面に戻るので、テストデータの値が変更されているか確認しましょう。
4.関連ドキュメント
コントロールリファレンス
ロジックリファレンス