対象製品とバージョン:Forguncy 2.1.0.0以降
リストビューを使用した場合、データが存在しない行に罫線を出力することはできません。
回避方法として、リストビューを使用せずに通常のセルにデータを表示する方法があります。
通常のセルに対してテーブルのデータを複数件表示させるには、隠しリストビューを使用する方法とODataを使用する方法の2つが存在します。いずれの方法も配列数式と組み合わせて使用します。
添付のサンプルでは、上記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