編集画面ではユーザーが自由に値を入力できますが、表示した時に自動で値を入れたい場合があります。この場合は、「フィールドに値をセットする」を使うと値を入れることができます。
動きとしてはシンプルですが、テーブル内のフィールドに値をセットする場合は少し注意が必要です。
今回は「フィールドの値を編集して値が変わった時」に「他のアクションの実行が完了した時」で値が変わった行だけに値をセットするケースを試します。
今回のカスタマイズで出来ること
テーブル内のフィールド値が変わった時に、その行の別のフィールドに値をセットする(契約開始日付に値が入ると、1年後の前日の日付が契約終了日付に入る)
アプリの準備
サンプルアプリとして以下のフィールドを作成しました。
スケジュール登録
編集画面では次のようになります。
Customineの設定
全体の流れはこのようになります。
テーブルに行番号をセット
値が変更されたテーブル行を特定するために、行番号をセットします。
今回は、「テーブルの列に行番号をセットする」を使って、「追加画面を表示した時」と「テーブルに行を追加した時」に行番号をセットするようにします。こうすると、行番号が抜けることはありません。
契約開始日付を変更時に契約終了日付をセット
契約開始日付が変わったら、「フィールド値をまとめてセットする」で、行番号と契約開始日付をテーブル外にコピーします。これは、「他のアクションの実行が完了した時」で繋いでいくと、変更した行の情報がなくなってしまう事に対応するためです。
特に、行番号だけではなく、その後の処理に必要なフィールド値も一緒にコピーしておくことを忘れないようにしてください。
その後に「日付を計算する」で日付を計算します。今回は、1年契約の最終日を計算します。例えば、契約開始日付が2020年4月1日だと、2021年3月31日になります。
アクション番号7番で計算した日付を、アクション番号8番では基準日として利用するために「= $7」としているところに注目してください。
これは「他のアクションの結果」ボタンでセットするか、または直接入力しても構いません。
余談ですが、これが、1年後(2020年4月1日の場合は2021年4月1日)だと、日付計算のセット先フィールドで契約終了日付を指定できるので、行指定の仕組みは不要です。
今回の内容は、1アクションで計算できない場合のやり方となります。
計算した日付をフィールドにセット
最後に「フィールドに値をセットする」で、計算した日付をフィールドにセットします。
ここの処理がポイントです。
「フィールドの値が特定の値ならば」を使うと、保存した行番号と同じ行だけを処理という指定が可能です。「フィールドに値をセットする」では、一致した行だけに値がセットされます。
まとめ
テーブル指定行の値セットは行番号指定なしでも出来るように「やること」が増えているのですが、「やること」を組み合わせる必要がある場合は対応できません。
その場合は、今回の行指定方式をお使いください。