rex0220 計算式プラグイン テーブル初期設定

計算式プラグインで、テーブルを初期設定できるようになりました。
新規レコード追加時に固定データを用意するなどの用途に利用できます。
※計算式プラグイン Ver.48以降でサポート

※参考 [rex0220 計算式プラグイン テーブル初期設定(DIC関数版)](https://qiita.com/rex0220/items/2eff0c046852c25327a4)

# 概要

テーブルの計算式に、テーブル文字列データを指定することで、レコード追加時のテーブル設定が出来ます。

- JSON 文字列：　レコード追加時のテーブルの初期値を設定　
    - 引用符は、計算式プラグインの都合上、「"」の代わりに「'」を使用
    - 例："[{'日付':'2022-01-19','ドロップダウン':'sample2','数値':'393'},<br>
    {'日付':'2022-01-03','ドロップダウン':'sample1','数値':'77900'}]"
    - **ここで指定するJSON文字列は、OTVAL 関数で作成可能。**

- 編集：　チェックが無しで、テーブル行の追加・削除ボタンを非表示
- 非表示：　チェックすると、テーブル全体を非表示

![2022-01-04_23h06_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/1f8bf541-95ae-4c2f-3c1b-ab52f66a6107.png)


# テーブル文字列データのつくり方

既存のレコードから計算式ツールで、OTVAL 関数を実行するのが簡単です。

- 初期データ用のレコード作成
- 計算式プラグイン設定
- 計算式ツールで、OTVAL 関数をくみたてて実行
- 実行結果の文字列をテーブルの計算式に設定

# 初期データ用のレコード作成

既存レコードでもいいですし、一時的にアプリを複製してレコードを作成してもOKです。

![2022-01-05_00h07_52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/d4c8e8bd-3d56-818c-d1cc-07378138aa8e.png)

# 計算式プラグイン設定

計算式プラグイン設定で、「ツール」をチェックして、「保存」します。
![2022-01-05_00h05_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/306cbefb-f83b-36e6-5d1e-1315733e74d9.png)

# 計算式ツールで、OTVAL 関数をくみたてて実行

それでは、計算式ツールを使ってみましょう。

## テーブル全データの処理

計算式を入力して、「計算」ボタンクリックで実行すると、計算結果が結果欄に表示されます。

- 計算式：OTVAL(テーブル,TPOPT("QMARKS","'"))
    - 「テーブル」は、フィールドコードを指定
    - TPOPT("QMARKS","'")　は、引用符を「'」にする指定


- 計算結果：「exec:」の次の文字列が計算結果です。
[{'番号':'1','区分':'A','数値':''},{'番号':'2','区分':'B','数値':''},{'番号':'3','区分':'C','数値':''},{'番号':'4','区分':'D','数値':''},{'番号':'5','区分':'E','数値':''}]

![2022-01-05_00h32_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/0606afe0-10ff-eb43-9c0e-9b51f7aacc24.png)


## テーブルの一部項目のみを指定

テーブルの全項目だと、通常の初期値でよい項目も含まれて、データ量が多く扱いにくいので、必要な項目のみに絞り込みます。

- 計算式：　OTVAL(テーブル,TPOPT("QMARKS","'"),TPOUT(番号,区分))
    - TPOUT(番号,区分) は、出力項目の指定

- 計算結果：
[{'番号':'1','区分':'A'},{'番号':'2','区分':'B'},{'番号':'3','区分':'C'},{'番号':'4','区分':'D'},{'番号':'5','区分':'E'}]

![2022-01-05_00h42_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/60720a34-8dad-489c-e131-0bb87cc4c624.png)

- テーブル項目の確認方法<br>
計算式ツールの左上に、項目一覧が表示されます。

![2022-01-05_00h47_24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/133c513f-ca34-57af-c13b-3bccb5412930.png)

- フィールドコードの入力１<br>
項目欄をダブルクリックすると、計算式欄にフィールドコードが入力されます。

![2022-01-05_00h49_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/5a6a198e-f08e-1a09-18c9-879a324ce108.png)

- フィールドコードの入力２<br>
: コロンを入力すると、項目一覧を表示<br>
クリックすると、フィールドコードが入力されます。

![2022-01-05_00h55_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/b6aa74af-7fd9-7909-48df-76d8e08e817a.png)


- フィールドコードの入力３<br>
OTCSV 関数を実行して、ヘッダー部の項目名をコピペ<br>
OTCSV ：　テーブルをCSV文字列に変換する関数
- 計算式：OTCSV(テーブル,TPOPT("QMARKS","")) 
    - TPOPT("QMARKS","")　で、引用符「""」なしを指定
- 計算結果：番号,区分,数値

![2022-01-05_01h34_52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/ea02324d-1af7-2d91-e4a0-959664d8722b.png)


# 実行結果の文字列をテーブルの計算式に設定

計算式に"" ダブルクォーテーションを入力して、テーブル初期データ用文字列をコピペします。
プラグイン設定を「保存」して、本番環境に反映させます。

- テーブルの計算式：
"[{'番号':'1','区分':'A'},{'番号':'2','区分':'B'},{'番号':'3','区分':'C'},{'番号':'4','区分':'D'},{'番号':'5','区分':'E'}]"
- 番号、区分の計算式
    - 計算式を指定せず、チェックのみ行うと、入力不可になります。

![2022-01-05_01h03_36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/3ee2a1b0-7a24-f589-3ccc-ea67e81772d4.png)

# レコード追加画面

初期データが表示され、番号と区分が入力不可になります。

![2022-01-05_01h06_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/1129d165-d6d2-72fb-32ad-592f31a2e6a6.png)