Forguncy サポート

リストビューでデータが存在しない行に罫線を出力することはできますか?

フォローする

対象製品とバージョン:Forguncy 2.1.0.0以降

 

リストビューを使用した場合、データが存在しない行に罫線を出力することはできません。

回避方法として、リストビューを使用せずに通常のセルにデータを表示する方法があります。

通常のセルに対してテーブルのデータを複数件表示させるには、隠しリストビューを使用する方法とODataを使用する方法の2つが存在します。いずれの方法も配列数式と組み合わせて使用します。

配列数式を使用する

OData

添付のサンプルでは、上記2つ方法を使用して通常のセルにデータを表示しています。

 

配列数式とODATA関数を組み合わせた場合の注意点

配列数式とODATA関数を組み合わせて使用した場合、ODATA関数が返す結果が1レコードのみの場合とそうでない場合では表示が異なります。レコードが1件の場合、その1件のデータが配列数式を設定したすべてのセルに表示されます。これはExcelの配列数式でも同様となっており、その仕様に基づくものです。

そのため、サンプルでは以下のような数式を使用して回避しています。

IDを表示する列の配列数式

=IFERROR(IF($E$18=1,IF(ROW(B19:B27)>19,"",ODATA("テーブル1?$select=ID")),ODATA("テーブル1?$select=ID")),"")

商品を表示する列の配列数式

=IFERROR(IF($E$18=1,IF(ROW(C19:C27)>19,"",ODATA("テーブル1?$select=Product")),ODATA("テーブル1?$select=Product")),"")

$E$18セルに設定されている数式

=ODATA("テーブル1/$count")

$E$18セルに設定されている数式は、テーブル1にレコードが何件あるかを取得するためのものです。配列数式内で直接この数式を実行してしまうとエラーとなってしまうため、サンプルでは隠し列に設定しています。
テーブルのレコード数が1だった場合には、1行目のデータのみを表示するようにするために、配列数式の現在行をROW関数を使って確認し、それが19よりも大きい場合にはリストの2行目以降に対して配列数式を実行していると判断し、空白文字を出力するようにしています。

 

 検索キーワード: fgchowto fgcdevelopment

他にご質問がございましたら、リクエストを送信してください

コメント