編集画面ではユーザーが自由に値を入力できますが、表示した時に自動で値を入れたい場合があります。この場合は、「フィールドに値をセットする」を使うと値を入れることができます。


動きとしてはシンプルですが、テーブル内のフィールドに値をセットする場合は少し注意が必要です。

今回は「フィールドの値を編集して値が変わった時」に「他のアクションの実行が完了した時」で値が変わった行だけに値をセットするケースを試します。


今回のカスタマイズで出来ること

  • テーブル内のフィールド値が変わった時に、その行の別のフィールドに値をセットする(契約開始日付に値が入ると、1年後の前日の日付が契約終了日付に入る)


アプリの準備

サンプルアプリとして以下のフィールドを作成しました。


スケジュール登録

フィールド名

フィールドコード

フィールドタイプ、他

行番号保存

行番号保存

数値

契約開始日付保存

契約開始日付保存

日付

テーブル

行番号

行番号

数値

契約開始日付

契約開始日付

日付

契約終了日付

契約終了日付

日付


編集画面では次のようになります。


Customineの設定

全体の流れはこのようになります。


テーブルに行番号をセット

値が変更されたテーブル行を特定するために、行番号をセットします。

今回は、「テーブルの列に行番号をセットする」を使って、「追加画面を表示した時」と「テーブルに行を追加した時」に行番号をセットするようにします。こうすると、行番号が抜けることはありません。


契約開始日付を変更時に契約終了日付をセット

契約開始日付が変わったら、「フィールド値をまとめてセットする」で、行番号と契約開始日付をテーブル外にコピーします。これは、「他のアクションの実行が完了した時」で繋いでいくと、変更した行の情報がなくなってしまう事に対応するためです。

特に、行番号だけではなく、その後の処理に必要なフィールド値も一緒にコピーしておくことを忘れないようにしてください。


その後に「日付を計算する」で日付を計算します。今回は、1年契約の最終日を計算します。例えば、契約開始日付が2020年4月1日だと、2021年3月31日になります。


アクション番号7番で計算した日付を、アクション番号8番では基準日として利用するために「= $7」としているところに注目してください。
これは「他のアクションの結果」ボタンでセットするか、または直接入力しても構いません。


余談ですが、これが、1年後(2020年4月1日の場合は2021年4月1日)だと、日付計算のセット先フィールドで契約終了日付を指定できるので、行指定の仕組みは不要です。

今回の内容は、1アクションで計算できない場合のやり方となります。


計算した日付をフィールドにセット

最後に「フィールドに値をセットする」で、計算した日付をフィールドにセットします。

ここの処理がポイントです。

フィールドの値が特定の値ならば」を使うと、保存した行番号と同じ行だけを処理という指定が可能です。「フィールドに値をセットする」では、一致した行だけに値がセットされます。


まとめ

テーブル指定行の値セットは行番号指定なしでも出来るように「やること」が増えているのですが、「やること」を組み合わせる必要がある場合は対応できません。

その場合は、今回の行指定方式をお使いください。