0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

rex0220 計算式プラグイン ボタンクリックでテーブル行追加・更新

Last updated at Posted at 2025-06-29

計算式プラグインのボタンクリックでテーブル行追加・更新を行ってみます。

概要

「テーブル行追加」ボタンクリックで、テーブル行を追加・更新します。
テーブルに日付が無かった場合は、テーブル行を追加し、日付順に並べます。
テーブルに日付があった場合は、該当テーブル行の項目を更新します。

「テーブルクリア」ボタンクリックで、テーブルをクリアします。

「日付」を変更すると、テーブル行に該当日付があれば、該当行の項目値を取得します。

2025-06-29_14h10_17.png

操作例

2025-06-29_15h08_37.gif

アプリフォーム設定

スペース項目に2個配置して、要素IDを設定します。
日付選択時にテーブル行の項目値を取得するしくみのため、「計算制御用」を配置します。

2025-06-29_15h02_25.png

計算式プラグイン設定

「循環参照を許可」, 「非同期計算」をチェックします。

2025-06-29_14h22_54.png

OPTION: 循環参照を許可, 非同期計算

// sp1:(sp1) SPACER
BUTTON(
  BOPT("TITLE","テーブル行セット"),
  IF(日付,
    LET(
      rno, FIRSTIF(日付T==日付,ROWNO(テーブル)),
      IF(rno === "",
        LET(
          row, JSON_S(ARRAY(DIC(
            "日付T",DATE_FORMAT(日付),
            "科目T",科目,
            "文字列1T",文字列1,
            "数値1T",数値1
          ))),
          FSET_TADD(テーブル, row)
        ),
        ARRAY(
          FSET(科目T, 科目, rno),
          FSET(文字列1T, 文字列1, rno),
          FSET(数値1T, 数値1, rno)
        )
      )
    )
  )
)

// sp2:(sp2) SPACER
BUTTON(
  BOPT("TITLE","テーブルクリア"),
  LET(
      clearTable, TABLE_DATA(ARRAY()),
      FSET(テーブル, clearTable)
   )
)

// テーブル SUBTABLE (editable)
TABLE_SORT(テーブル,
  TPFILTER(日付T),
  TPSORT(日付T)
)

// 計算制御用 SINGLE_LINE_TEXT (hide)
IF(AND(EV_INFO("fcode")="日付",日付),
  LET(
    rno, FIRSTIF(日付T==日付,ROWNO(テーブル)),
    dumy, IF(rno !== "", ARRAY(
      FSET(科目,SUBTABLE(科目T,rno)),
      FSET(文字列1,SUBTABLE(文字列1T,rno)),
      FSET(数値1,SUBTABLE(数値1T,rno))
    )),
    ""
  )
)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?