プルダウンボックスのパラメータが空白の場合すべてを選択する

  • 作成者:ayuan0625
  • 編集回数:31次
  • 最終更新:ayuan0625 于 2025-10-31
  • 一.概要

    1.バージョン

    帳票サーババージョン

    機能変動

    11.0

    -

    2.問題概要

    パラメータを使用して帳票のデータクエリを実行する際に、ウィジェットのパラメータ値が空白の場合(ウィジェットにパラメータ値が入力されていない場合)、クエリをクリックしても帳票のデータは表示されません。次の図に示すように:

    图片0.png

    実現したい効果は、ウィジェットのパラメータ値が空白の場合、クエリをクリックすると、帳票内のすべてのデータが表示されることです。つまり、フィルタ条件がない場合、帳票のすべての内容が表示されます。これは、値を選択せずにフィルタリングを行わないことと同じです。

    次の図に示すように:

    图片0.0.png 

    3.実現の考え方

    テンプレート変数とデータセット変数を使用して帳票クエリを実現し、同時にフィルタ条件とデータセットの定義方法を変更することで、パラメータが空白の場合、すべてを選択することを実現します。

    二.例1:テンプレート変数による実現方法

    1.データセットの新規作成

    新しいデータセットds1 を作成し、SELECT * FROM S注文というデータベースのクエリ文を入力し、注文テーブルのすべてのデータをクエリします。次の図に示すように:

    图片1.png 

    2.テンプレート変数の定義

    1)テンプレート変数「荷主地域 」を定義し、その[既定値]を「関西」に設定します。次の図に示すように:

    图片3.png 

    2)変数パネルを編集し、[すべて追加]をクリックし、[プルダウンボックス]の[データ辞書]を注文テーブルのデータ列「荷主地域」に設定します。次の図に示すように:

    图片4.png 

    3.帳票スタイルのデザイン

    以下の表の説明に従い、帳票のスタイルを設定します。次の表に示すように:

    セル

    操作

    A1~I1

    セルにヘッダフィールドを順番に書き込む:注文id、顧客id、注文日、発送日、運輸業者、荷主名、荷主住所、荷主市町村、荷主地域。セルA1からセルI1までを選択し、事前定義スタイル Headを設定する

    A2~I2

    セルにデータセットのデータ列フィールドを順番にドラッグする:注文id、顧客id、注文日、発送日、運輸業者、荷主名、荷主住所、荷主市町村、荷主地域。セルA2からセルI2までを選択し、フォントを[中央揃え]にする。セルC2からセルD2までを選択し、[日付書式]をyyyy-MM-ddに設定する

    A1~I2

    セルA1からセルI2までを選択し、事前定義スタイルの既定のスカイブルーの内枠と外枠をテーブル全体に追加する

    图片5.png

    4.フィルタ条件の設定

    セルA2にデータフィルタ条件を追加します。セルA2をダブルクリックし、ポップアップのデータ列のダイアログで、[フィルタ]を選択し、[一般条件]を追加し、データ列「荷主地域」を、以下の数式と等しくします:if(len($荷主地域)==0,nofilter,$荷主地域)。[追加]をクリックし、[確定]を選択します。つまり、フィルタ条件を追加することにより、パラメータが空白の場合、全選択の効果を達成します。次の図に示すように:

    注意:nofilterはフィルタリングしないことを示し、if(len($荷主地域)==0,nofilter,$荷主地域)はパラメータ「荷主地域」が空白の場合はデータをフィルタリングせず、空白でない場合はパラメータ値でフィルタリングします。

    图片6.png 

    三.例2:データセット変数による実現方法

    1.データセットの新規作成

    データセット変数を定義する際に、パラメータが空白ですべてを選択する効果を得るための条件を設定し、新しいデータセットds1を作成し、次のデータベースのクエリ文を入力します:

    select * from S注文

    where 1=1  

    ${if(len(荷主地域) == 0,"","and 荷主地域 = '" + 荷主地域 + "'")}

    この時、データセット変数は「荷主地域」であり、パラメータの既定値は「関西」に設定します。次の図に示すように:

    数式の文の注釈は次のようになります:

    where 1=1 条件が常にtrueであることを示します。パラメータ条件がない場合、 where の後に有効なものがないとエラーが発生しないようにします。

    len(荷主地域)==0 パラメータ「area」が空白であることを示します。

    "and 荷主地域='"+荷主地域+"'" 中央の「area」はパラメータ値を取得することを示し、「+」は文字列の連結記号です。

    ${if(len(area) == 0,"","and 荷主地域 = '" +荷主地域 + "'")}

    パラメータ「area」が空白の場合、クエリ文はSELECT * FROM S注文に相当します。

    パラメータ「area」が空白でない場合、クエリ文はSELECT * FROM S注文 WHERE 1=1 and 荷主地域='${荷主地域}'に相当します。

    图片7.png 

    2.帳票スタイルのデザイン

    以下の表の説明に従い、帳票のスタイルを設定します。次の表に示すように:

    セル

    操作

    A1~I1

    セルにヘッダフィールドを順番に書き込む:注文id、顧客id、注文日、発送日、運輸業者、荷主名、荷主住所、荷主市町村、荷主地域。セルA1からセルI1までを選択し、事前定義スタイル Headを設定する

    A2~I2

    セルにデータセットのデータ列フィールドを順番にドラッグする:注文id、顧客id、注文日、発送日、運輸業者、荷主名、荷主住所、荷主市町村、荷主地域。セルA2からセルI2までを選択し、フォントを[中央揃え]にする。セルC2からセルD2までを選択し、[日付書式]をyyyy-MM-ddに設定する

    A1~I2

    セルA1からセルI2までを選択し、事前定義スタイルの既定のスカイブルーの内枠と外枠をテーブル全体に追加する

    图片7.png 

    3.パラメータウィジェットの追加

    1)変数パネルを編集し、[すべて追加]をクリックし、プルダウンボックスの[データ辞書]をs注文テーブルのデータ列「荷主地域」に設定します。次の図に示すように:

    图片9.png 

    2)ラベルウィジェットの[表示値]を「荷主地域」に変更します。次の図に示すように:

    图片10.png 

    四.効果プレビュー

    1.PC端末

    帳票を保存し、[改ページプレビュー]をクリックし、効果は以下に示すように:

    [PC端末]プルダウンボックスのパラメータが空白の場合すべてを選択する.gif 

    2.モバイル端末

    APP端末は、HTML5端末と同じ効果を持ちます。次の図に示すように:

    1735529874694481.gif 

    五.注意事項

    問題概要

    上記に従って設定した後、パラメータが空白の場合、クエリをクリックするとすべてのデータが表示されます。プレビュー時にすべてのデータを表示するにはどうすればよいでしょうか?

    ソリューション

    上記の設定が完了した後、[コンポーネント設定]の[クエリをクリックする前に内容を表示しない]のチェックを外すだけです。

    1735529945544197.png 

    六.テンプレートのダウンロード

    1)例1:

    テンプレートをダウンロードするにはこちらをクリックしてください:

    例1:テンプレート変数による実現方法.cpt

    2)例2:

    テンプレートをダウンロードするにはこちらをクリックしてください:

    例2:データセット変数による実現方法.cpt


    Attachment List


    Theme: FineReport パラメータ
    • いいね
    • 良くない
    • 閲覧しただけ