2023/09/13

リスト値とビュー

今回は、リスト値のフィールドをビューに表示する方法をまとめます。

まず、次のような簡略化した交通費精算をイメージしたフォームを準備しました。交通機関と金額が対となったリスト値の項目です。

このフォームを使用して、サンプルデータをいくつか用意し、ビューを作成します。


リスト値の列

最初は単純に、次のようなビューを作成します。リスト値を改行で羅列、対になる項目を隣接させて表示し、内容を整然と表示します。

まず、列のプロパティで『複数値の分離記号』を”改行”に設定します。この設定を対となるリスト値の項目(交通機関と金額)に設定します。

続いてビューのプロパティで行の高さを最大の 9 に設定し、『行の高さを内容に合わせる』にチェックを入れます。この設定で、リスト値が2つの場合は2行、1つの場合は1行と都合よく高さを調整してくれます。


リスト値のカテゴリ

続いて、リスト値をカテゴリ項目として利用した場合の動作です。

交通機関を一列目に移動し、列のプロパティで『カテゴリ別』を選択します。すると、自動的に『複数値を別のエントリで表示』がチェックされます。

ノーツで表示すると次のようになります。交通機関ごとにカテゴライズされました。

ただ、これだと金額がリストとして複数行表示されたままで、その交通機関でいくらだったのか不明です。これを改善するには、金額の列でも『複数値を別のエントリで表示』をチェックします。

この設定で、カテゴリの交通機関の金額が表示されるようになります。


ソート時の注意

実際のアプリケーションでは、上記のようなビューで、カテゴリ内の明細行をソートさせたい場合があると思います。このような場合、少し癖がありますので、ご注意ください。

まず、明細行のソートする場合、ソートする列は『複数値を別のエントリで表示』する列より左にある必要があります。上記例でいうと、件名ではソートできますが、合計金額ではソートできません。

また、『複数値を別のエントリで表示』を選択した列では、ソートできません。上記事例で、金額列にソートをセットすると次の通り、正しく表示されません。2件のリスト値の文書が4行表示されています。これは、対になるはずの交通機関と金額のすべての組み合わせが出力されているのではないかと想定します。

このように少し癖がある動作になりますので、開発の際には、十分確認ください。テストデータが少なすぎても、多すぎても気が付かないのでご注意ください。

0 件のコメント:

コメントを投稿