【コマンド】変数の設定-Forguncy(フォーガンシー)
Forguncyでは、固定値や数式、データベースの値を変数として設定することが可能です。
設定した変数は、後続のコマンドで使用することができます。
※ただし、変数名はセル名とは別の名前を設定してください。
■コマンドの設定

①変数名:後続のコマンドで使用する際の変数名を設定します。
②変数値:「値、または数式」または「データベースのテーブルを参照」どちらかを選択します。
・値、または数式・・・固定値または数式を使用することができます。
・データベースのテーブルを参照・・・データベースから取得したデータを使用することができます。
③「値、または数式」を選択した場合、固定値や数式を設定します。
■値、または数式
以下の生徒テーブルに、生徒情報を登録します。

生年月日を、中学1~3年生の年齢相当のみ登録できるようにします。
※参考※
中学1~3年生の生年月日:本年度より15年前の4/2~本年度より12年前の4/1
(本記事では、本年度=2024年度になるため、2009/4/2~2012/4/1生まれが対象年齢になります)

対象の生年月日を設定します。
・変数名:”生年月日_From"、数式「=DATE(YEAR(EOMONTH(TODAY(),-3))-15,4,2)」
・変数名:”生年月日_to"、数式「=DATE(YEAR(EOMONTH(TODAY(),-3))-12,4,1)」


対象の生年月日以外を入力した場合、エラーを表示させるコマンドを入れて、アプリケーションを実行します。


■データベースの値を参照

上述のように、変数名を設定します。
①対象テーブル・・・取得元のテーブル名を選択します。
②「選択」タブ・・・単一フィールド、単一レコード、複数レコード、レコード数のいずれかを選択します。
③「クエリー」「先頭レコード」「並べ替え」タブ・・・「選択」タブで選択したフィールド、レコード(数)を取得するための条件を設定します。
1、単一フィールド、単一レコード
「クエリー」「先頭レコード」タブから、1レコードのみ取得できる条件を設定します。
単一フィールドの場合は、1フィールド、単一レコードの場合は、複数フィールド(全フィールドも可)を選択します。
①変数名、対象テーブル、取得したいフィールドを選択します。
※今回は、生徒テーブルから生徒番号の最大値を取得します。
②右ペイン「ページロード時のコマンド」から、
単一フィールド[生徒番号]を選択し、「取得する先頭レコードの数」:1、「並べ替え」:[生徒番号]の降順を設定します。

③生徒番号セル(L8セル)に、①で取得した生徒番号の最大値(max_生徒番号)に1を足した生徒番号をセットします。

アプリケーションを実行します。
生徒番号の最大値(00007)に1を足した"00008"がセットされています。


2、複数レコード
「クエリー」「先頭レコード」タブから、複数レコード取得できる条件を設定します。
設定した変数は、後続のコマンドで配列型の変数として使用します。
※今回は、本年度(2024年度)、クラステーブルの[学年]フィールド="3"の生徒で生徒テーブルの[在籍状況]が"在学中"の生徒の[在籍状況]を、"在学中"から"卒業"に更新します。
![[在籍状況]を在学中から卒業に更新する設定画面](https://forguncy.zait.jp/wp-content/uploads/command-variable-setting13.png)
①1と同様に、変数名、対象テーブル、取得したいフィールドを選択します。
②クラステーブルから複数レコード[生徒番号]を選択し、「クエリー」タブから[学年]フィールドが"3"、
[年度]フィールドが本年度("=YEAR(EOMONTH(TODAY(),-3))")を設定します。
![[在籍状況]を在学中から卒業に更新する設定画面②](https://forguncy.zait.jp/wp-content/uploads/command-variable-setting14.png)
③繰り返しコマンドの「指定した回数分だけ繰り返し処理を行う」を選択し、②で設定した配列型変数”卒業"を選択します。
「繰り返し配列オブジェクト名」は"Item"(規定値)なので、後続のサブコマンドでは"Item.生徒番号"という名前で[生徒番号]の値を取得することができます。
![[在籍状況]を在学中から卒業に更新する設定画面③](https://forguncy.zait.jp/wp-content/uploads/command-variable-setting15.png)
④繰り返しコマンド内で、テーブルデータの更新を選択します。
生徒テーブルの[在籍状況]フィールド:卒業、
更新対象レコード:特定レコード([生徒番号]="Item.生徒番号"、[在籍状況]="在学中")を設定します。
![[在籍状況]を在学中から卒業に更新する設定画面④](https://forguncy.zait.jp/wp-content/uploads/command-variable-setting16.png)
アプリケーションを実行します。

3、レコード数
対象テーブルのレコード数を取得します。(「クエリー」タブから条件を設定し、レコードを絞り込むこともできます)
※今回は、本年度(2024年度)、クラステーブルの[学年]フィールド="3"以外の生徒数をカウントし、1件以上あった場合、次年度(2025年度)、[学年]="2"または"3"のレコードとして追加します。(クラス、出席番号はそのままとします)

①変数名、対象テーブルを設定し、「選択」タブから「レコード数」を選択し、
「クエリー」タブから[年度]フィールドが本年度、[学年]フィールドが"3"以外、[在籍状況]=”在学中”のレコードを設定します。

②①で設定した変数"在校生_生徒数"が1件以上あった場合、
[年度]フィールド=本年度、[学年]フィールド="3"以外、[在籍状況]=”在学中”の年度、学年、クラス、出席番号、生徒番号を取得します。

③繰り返しコマンドで、②で設定した配列型変数"生徒情報"を設定します。
サブコマンド内で、クラステーブルに[年度]=次年度、[学年]=現在の学年+1のデータを追加します。

アプリケーションを実行します。
