計算式プラグインで行複写出来ないかと相談を受けたので、やってみました。
テーブル行を追加時に、1行前の項目値を複写します。
行複写の操作例
環境
アプリ設定
テーブル内に、文字列、ドロップダウン、チェックボックスと複写制御用の文字列項目を配置します。
フォーム設定
![2020-03-06_21h15_49.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F100572%2F94c598af-7ef1-305f-c536-c3c1ae5752e0.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=15f564458dc9918771786a839c5dfac7)
複写制御用の文字列項目
初期値を"0" にします。計算を最後にするため、テーブルの右端に配置します。
タイプは、文字列・ドロップダウン・ラジオボタンでもOKです。
![2020-03-06_21h27_47.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F100572%2F9f109e1c-cfe0-9bf2-b798-b9bdf7769d98.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=53910ffaabfdab508d013477e0811790)
計算式プラグインの設定
テーブル内の複写対象項目と複写制御用項目に、計算式を設定します。
- 「循環参照を許可」をチェックします。
- 行複写対象の項目は、計算式を設定し「編集」をチェックします。
![2020-03-06_21h20_56.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F100572%2F15cbf28d-f913-d01d-f777-1b725170e409.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=8f56504b85fbb4db028378e62689d473)
文字列項目T1
2行目以降で、複写制御=="0" の場合、1行前の値を設定
それ以外は、自項目を設定
- 文字列項目T1
IF(AND(ROWNO(複写制御)>0,複写制御=="0"),
SUBTABLE(文字列T1,ROWNO(複写制御)-1),文字列T1)
ドロップダウンT1
ドロップダウン・ラジオボタンは、文字列項目と同様です。
- ドロップダウンT1
IF(AND(ROWNO(複写制御)>0,複写制御=="0"),
SUBTABLE(ドロップダウンT1,ROWNO(複写制御)-1),ドロップダウンT1)
チェックボックスT1
複数の値を持つチェックボックスや複数選択項目は、ARRAY関数で設定します。
- チェックボックスT1
IF(AND(ROWNO(複写制御)>0,複写制御=="0"),
SUBTABLE(ARRAY(チェックボックスT1),ROWNO(複写制御)-1),
ARRAY(チェックボックスT1))
複写制御
計算処理済み"1"にします。非表示をチェックします。
- 複写制御
"1"