一.概要
1.バージョン
帳票サーババージョン | 機能変動 |
11.0 | - |
2.期待される効果
帳票のデータ列が多いものの、データ量がそれほど多くない場合、動的グループ化を使用することで、異なる次元のデータを柔軟に表示できます。下記の図の通り、異なるパラメータ値を選択すると、対応する次元のグループ化データが表示されます。

3.実現の考え方
データセットのパラメータ設定において、パラメータが空の場合はすべてを選択する使い方を参考にし、if 文を使用して動的列を実現します。
二.操作手順
1.データ準備
新しい一般帳票を作成し、データセット ds1 を新規作成します。変数ウィジェットがチェックボックスであるため、データセット内の変数設定には in 文を使用する必要があります。以下の図のように:

SQL文は:
SELECT 地域 ${if(len(販売員)=0,"",",販売員")} ${if(len(商品タイプ)=0,"",",商品タイプ")} ${if(len(商品)=0,"",",商品")} ,sum(販売量) as 販売量合計
FROM 販売量
where 1=1
${if(len(販売員)==0,"","and 販売員 in ('" +販売員+ "')")}
${if(len(商品タイプ)==0,"","and 商品タイプ in ('" +商品タイプ+ "')")}
${if(len(商品)==0,"","and 商品 in ('" +商品+ "')")}
group by 地域
${if(len(販売員)=0,"",",販売員")}
${if(len(商品タイプ)=0,"",",商品タイプ")}
${if(len(商品)=0,"",",商品")}
2.テーブル設計
以下の図のようにテーブルを設計し、フィールドを対応するセルにドラッグします。
注意1:販売員、商品タイプ、商品の3列が動的グループ列として設定されているため、パラメータが空の場合、これら3つのフィールドは表示されません。そのため、販売員、商品タイプ、商品の3つのパラメータには、初期値を設定する必要があります(後で初期値を削除可能です)

3.パラメータウィジェットを追加
パラメータパネルに編集を行います。右側のコンポーネント設定の上部にある[すべて追加]をクリックして、パラメータウィジェットを生成します。それぞれセールス販売員、商品タイプ、商品のパラメータボックスをクリックし、[プルダウンチェックボックス]を選択します。以下の図のように:

4.パラメータボックスの選択肢データセットを追加
注意2:パラメータ間に連動が設定されているため、データセットクエリの SQL文 に対応するパラメータのフィルタ条件を追加する必要があります。
4.1.販売員のオプション
データセット「販売員」を新規作成します。SQL文は:SELECT distinct 販売員 FROM 販売量。販売員は最初のパラメータであり、任意選択が可能なため、連動フィルタは不要です(ここで使用される distinct キーワードは重複を排除するためのものです)。以下の図のように:

4.2.商品タイプのオプション
データセット「商品タイプ」を新規作成します。SQL文は:SELECT distinct 商品タイプ FROM 販売量 where 1=1 ${if(len(販売員)==0,"","and 販売員 in ('" +販売員+ "')")}。商品タイプは異なる販売員に応じて表示される商品タイプが異なるため、フィルタパラメータ「販売員」を設定する必要があります(ここでdistinctキーワードは重複を排除するためのものです)。以下の図のように:
4.3 商品のオプション
データセット「商品」を新規作成します。SQL文は:SELECT distinct 商品 FROM 販売量 where 1=1 ${if(len(販売員)=0,"","and 販売員 in ('"+販売員+"')")} ${if(len(商品タイプ)=0,"","and 商品タイプ in ('"+商品タイプ+"')")}商品は販売員および商品タイプに応じて表示される商品が異なるため、フィルタパラメータ「販売員」と「商品タイプ」を設定する必要があります(ここでdistinctキーワードは重複を排除するためのものです)。以下の図のように:

5.パラメータウィジェットのデータ辞書を設定
プルダウンチェックボックス「販売員」、「商品タイプ」、「商品」を選択し、[データ辞書]を[データクエリ]に設定します。それぞれに対応するデータセット(「販売員」、「商品タイプ」、「商品」)を選択し、[戻り値タイプ]を[文字列]に設定します。区切り文字を「,」(シングルクォート内でカンマを設定)に設定します。区切り文字の設定は、選択された複数のパラメータ値を区切るためです。例えば、販売員で「鈴木」と「田中」を選択した場合、返却値は「鈴木','田中」となります。
注意3:販売員、商品タイプのウィジェット名は、データセット「商品タイプ」、「商品」内のパラメータ名と一致している必要があります。そうでないと連動できません。
注意4:区切り文字は英語状態の半角で入力する必要があります。

6.条件属性の設定
セル B2、C2、D2 に条件属性を追加します:[列幅]を「0」に設定し、[数式条件]を「len($$$)=0」とします。以下の図のように:

7.効果プレビュー
7.1PC端末
帳票を保存し、[改ページプレビュー] をクリックすると、効果は下の図のように:

7.2モバイル端末
App と HTML5 端末での結果は同じです。以下の図のように: