bugfix> date > 投稿

現在、開始日と終了日を選択できるレポートがあります。プリセットとカスタム選択のオプションの両方を作成できるかどうか興味がありました

選択:

現在の週、または 前週、または カスタム日付範囲。

おかげで、

回答 1 件
  • カスケードパラメーターを見てください。

    上記のリンクは、クエリからカスケードパラメーター値を取得することに焦点を当てているようですが、おそらく日付にはそれを望まないでしょう-私が知っている限り、日付パラメーターの利用可能な値を設定すると、ドロップダウンリストに制限されます一般的に使いやすいカレンダーではなく、日付。ただし、カスケードパラメータがどのように機能するかについての良い背景です。

    デフォルトの開始/終了日の式を使用してこれを行うには、基本的に最初のパラメーターを「現在の週」、「前の週」、「カスタムの日付範囲」から選択します。これらのラベルをユーザーに表示しますが、値は何でも構いません-私のテストでは、1、2、3を使用しました。

    次に、開始日用と終了日用の2つのパラメーターをさらに設定します。データ型が日付であることを確認してください。最初のパラメータの値に基づいて、これらのデフォルト値を設定する必要があります。これは、開始日の以下の式などの式で行います。また、週の定義方法によっては、これを少し変更する必要があります。直前の7日間の「現在の週」、または最新の月曜日から今日、または他の何かなどです。

    =Switch(
        Parameters!FirstParam.Value = 1, DateAdd("d", -7, Today()),
        Parameters!FirstParam.Value = 2, DateAdd("d", -14, Today())
    )
    
    

    この場合、ユーザーがカスタムの日付範囲を希望する場合、開始日と終了日がデフォルト値で埋められないようにするため、3番目のオプションを考慮する必要さえありません。デフォルトの終了日にも同様の式が必要です。

    ユーザーが3番目のオプションを選択した場合にもユーザーがカスタム範囲を入力できるようにするため、ユーザーが開始できないため、開始日/終了日のパラメーターに使用可能な値を入力しないでください。任意の日付を選択する(少なくとも私が知っている限り-それに対する回避策があれば、それを見てみたい、それは私が自分で使いたいものだから)。

    このアプローチのマイナス面として考えられるのは、ユーザーが現在の週を選択して始めてから前の週に変更した場合、開始日/終了日が前の週に変更されないことです。ここでこれが発生する理由について詳しく読むことができますが、本質的には、現在の週を選択した後にすでに入力されている値はまだ有効であるためです(日付は、使用可能な値が設定されていないため、これらのパラメーターの唯一の基準です)選択を変更した後は更新されません。これに対する修正は、使用可能な値を定義することですが、前述のように、これによりユーザーはカスタムの日付範囲を入力できなくなります。

あなたの答え