計算式プラグインを使って、ボタンクリックでテーブル行を追加する例その2(FSET_TADD版)です。
概要
「テーブルセット」ボタンで、テーブル外項目からテーブルに値をセットします。
テーブルが1行で氏名が未設定の場合、1行目に追加。それ以外はテーブル行を追加してセット。
計算式プラグイン設定
OPTION: 非同期計算
// header1:($HEADER1) HEADER
BUTTON("テーブルセット",
LET(
row, ARRAY(DIC(
"氏名T", 氏名,
"ふりがなT", ふりがな,
"役職T", 役職
)),
IF(AND(COUNTROW(テーブル)=1,NOT(氏名T)),
FSET(テーブル,TABLE_DATA(row)),
FSET_TADD(テーブル,row)
)
)
)
// header2:($HEADER2) HEADER
BUTTON("テーブルクリア",
LET(
row, ARRAY(DIC()),
FSET(テーブル,TABLE_DATA(row))
)
)
解説
🔍 全体の動作イメージ
「テーブルセット」ボタンを押すと:
- 氏名・ふりがな・役職 の3つのフィールド値を → テーブル1行分のデータ(Dictionary)として作成
- テーブルの行数が 1行 かつ 氏名T が空 の場合 → FSET でその行を上書き
- それ以外の場合 → FSET_TADD で行を追加
🧩 計算式の分解解説
BUTTON("テーブルセット",
LET(
row, ARRAY(DIC(
"氏名T", 氏名,
"ふりがなT", ふりがな,
"役職T", 役職
)),
IF(AND(COUNTROW(テーブル)=1,NOT(氏名T)),
FSET(テーブル,TABLE_DATA(row)),
FSET_TADD(テーブル,row)
)
)
)
① BUTTON 関数(ヘッダースペースにボタン表示)
BUTTON はヘッダーやスペースにボタンを表示し、クリック時に処理を実行します。
② LET で変数 row を作成
テーブル1行分のデータを DIC(辞書)で作り、ARRAY で配列化します。
③ IF 条件
COUNTROW(テーブル)=1 かつ 氏名T が空 の場合を初期セットと判定。
④ 条件が真:FSET で1行目を書き換え
⑤ 条件が偽:FSET_TADD で行追加
📝 動作まとめ
- テーブルが 1行で氏名T が空 → 上書き
- それ以外 → 行追加
👍 よくある用途
- 入力フォームの内容をそのままテーブルに転記
- 初回は空行に上書き、2回目以降は追加

