指定日付範囲の日別にレコードを作成したり、何かの条件に合うデータだけを連続で処理したいケースは色々とあると思います。

Customineではループ処理は無いのですが、「フィールドの値を編集して値が変わった時」を利用すると擬似的にループ処理を作成することができます。


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

  • 開始日付から終了日付までの日別で、別アプリにレコードを追加します



アプリの準備

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


スケジュール登録

フィールド名

フィールドコード

フィールドタイプ、他

スケジュール名

スケジュール名

文字列

開始日付

開始日付

日付

終了日付

終了日付

日付

ループ判定

ループ判定

文字列


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




スケジュール日別

フィールド名

フィールドコード

フィールドタイプ、他

スケジュール名

スケジュール名

文字列

日付

日付

日付

報告内容

報告内容

文字列



詳細画面での表示は次のようになります。




Customineの設定

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



追加画面・編集画面を表示した時の処理

メニュー位置にボタンを追加します。



ボタンを押した時の処理

ループを始めるために、ループ判定のフィールドに値をセットします。今回は日付を順に増やす必要があるので、ループ用に流用します。

値をセットした後は「読み込み中画面を表示する」で処理中であることがわかるようにします。



ループ終了時の処理

ループ判定が 空欄 なら終了ということにして、終了時には情報ダイアログを出すようにします。



ループ終了判定の処理

ループ判定には処理中の最大日付が入っているので、終了日付よりも大きい場合は処理終了にします。今回の終了判定には「フィールド値をクリアする」でループ判定を空欄にしています。




レコード追加処理

ここが、処理のメインです。

ループ判定に入っている日付が終了日付以下の場合にレコードを追加します。なお、空欄は終了時の値なので空欄では無いことも条件に追加します。


レコード追加後は日付を加算して、ループ判定にセットします。これにより次のループが開始されます。



まとめ

「取得したレコードを元にループ処理で特定条件に合うものだけ何かの処理をする」みたいなものも作成可能です。

「フィールドの値を編集して値が変わった時」は色々な判定に使えますが、1フィールド1用途にしないと誤動作の元になりますのでご注意ください。