計算式プラグインで、テーブル行の自動追加・更新を行ってみます。
※参考 rex0220 一括更新プラグインと計算式プラグインの連携 テーブル行の自動追加・更新
概要
日付項目の変更時に、テーブル行の追加・更新を行います。
テーブルに該当日付が無い場合は、行追加。ある場合は更新します。
テーブルは、日付順にソートします。
- 編集画面
- 一覧画面
一覧画面でレコード編集する場合、日付の変更でテーブル行の追加・更新が行われますが、テーブル表示にはレコード保存後に反映されます。
操作例
アプリ設定
テーブルの追加更新の制御用に「計算処理用」文字列項目を追加します。
計算式プラグイン設定
「循環参照を許可」をチェック
- 出欠一覧テーブル
- TABLE_SORTで、日付順に
- 日付未設定の行は、削除
- 計算処理用
- テーブル行追加・更新の計算を行います。
.js
OPTION: 循環参照を許可
// 出欠一覧 SUBTABLE (editable)
TABLE_SORT(出欠一覧,
TPFILTER(日付_一覧),
TPSORT(日付_一覧)
)
// 計算処理用 SINGLE_LINE_TEXT (hide)
IF(日付,
LET(
rno, FIRSTIF(日付_一覧==日付,ROWNO(出欠一覧)),
IF(rno === "",
LET(
row, JSON_S(ARRAY(DIC(
"日付_一覧",DATE_FORMAT(日付),
"出欠_一覧",出欠
))),
FSET_TADD(出欠一覧, row)
),
FSET(出欠_一覧, 出欠, rno)
)
)
)