テーブルの内容は一覧画面でも確認できるのですが、レコード毎に開閉して表示するような仕組みなので視認性はちょっと落ちます。
そこで、テーブルの値を文字列複数行にコピーして、さらには一覧では「一覧画面の複数行文字列を折り返し表示にする」で改行表示に切り替える事で視認性を上げるようなカスタマイズを作成してみます。
今回のカスタマイズで出来ること
レコード保存した時に、テーブルの内容をテーブル外の文字列複数行に保存します
一覧画面では文字列複数行を改行表示して内容が全て見えるようにします
アプリの準備
サンプルアプリとして以下のフィールドを作成しました。
フィールド名 | フィールドコード | フィールドタイプ、他 |
結合内容 | 結合内容 | 文字列複数行 |
テーブル | ||
日付 | 日付 | 日付 |
メモ | メモ | 文字列複数行 |
結合用文字 | 結合用文字 | 文字列複数行 |
編集画面では次のようになります。
一覧画面では、結合内容と比較用にテーブルも追加しておきましょう。
Customineの設定
全体の流れはこのようになります。
レコードを保存する直前に表示する値をセット
「文字列(複数行)フィールドに値をセットする」の場合はテーブル内のフィールドを指定すると全てのテーブル行を行単位で結合します。
「追加の条件」で「フィールド値が特定の値ならば」を指定していると条件にあった行だけ処理しますので、結合パターンが違う場合にも対応可能です。
その後、「テーブル行をレコードとして取得する」でテーブルをレコードにします。
最後に「フィールドに値をセットする」でフィールドに値をセットするのですが、この時に textjoin関数を利用します。
= textjoin("\n", "YES", $5.結合用文字 )
この式の意味としては、
・テーブル内の結合用文字というフィールドを
・空行も込みで
・改行で結合する
という内容になります。
これにより、「テーブル中のフィールド値を区切り文字で結合する」では指定出来ない文字列複数行の結合が可能です。
一覧画面で表示時に折り返して表示する
「一覧画面を表示した時」で「一覧画面の複数行文字列を折り返し表示にする」を設定すると一覧画面で折り返し表示が可能です。
実際の表示はこのようになります。テーブルを開いていますので、テーブルの内容と結合内容が一致していることが分かると思います。
まとめ
一覧画面でのテーブル表示は便利な面もありますが、視認性という点については少々劣るので、今回のTIPSを参考にして下さい。