レポートでのパラメーターの使用
レポートでパラメーターを使用して、ユーザーがレポートを実行するときに 1 つまたは一連の値の入力を求めることにより、取得するデータを制御します。 このデータセット クエリでは、ユーザーが要求するデータのみ取得します。 また、ユーザーに入力を求めず、データのフィルター処理や動的なドリルスルーなどの操作に使用可能な非表示のパラメーターおよび特殊なパラメーターをレポートに追加することもできます。
Note
Microsoft Dynamics 365 Customer Engagement (on-premises) から渡されるパラメーター値の長さの上限は 2,000 文字です。 たとえば、あるレポートを実行し、高度な検索ユーザー インターフェイスを使用してデータ フィルターを作成する場合、フィルター パラメーターに渡されるフィルター式は 2,000 文字を超えてはなりません。 指定できるパラメーター数については、最大数の制限はありません。 ただし、特定のブラウザーの要件に合わせて URL 行の文字列の長さとパラメーターの数を制限する必要がある場合があります。
パラメーターの追加
レポートの個々のパラメーターの定義、クエリを使用した情報の引き渡し、またはユーザー設定へのアクセス権の付与のためのパラメーター (CRM_CurrencySymbol
パラメーターや CRM_CurrencyPositivePattern
パラメーターなど) をレポートに追加できます。
<ReportParameter> は、レポートでの個々のパラメーターの記述に使用する、レポート定義 (RDL) ファイルの要素です。 <QueryParameter> には、クエリの一部としてデータ ソースに渡す個々のパラメーターに関する情報が含まれています。 取引先企業の説明レポートの RDL ファイルから抜粋した次の XML コードは、ReportParameter
パラメーターと QueryParameter
パラメーターの使用方法を示しています。
<ReportParameter Name="CRM_FilteredAccount">
<DataType>String</DataType>
<Nullable>true</Nullable>
<DefaultValue>
<Values>
<Value>select * from FilteredAccount</Value>
</Values>
</DefaultValue>
<AllowBlank>true</AllowBlank>
<Prompt>CRM_FilteredAccount</Prompt>
</ReportParameter>
<Query>
<rd:UseGenericDesigner>true</rd:UseGenericDesigner>
<CommandText>declare @sql as nVarchar(max)
set @sql = '
SELECT top 10 CAST(accountid as nvarchar(100)) as AccountID,
name, '''' as None
FROM (' + @FilteredAccount + ') as fa'
exec(@sql)
</CommandText>
<QueryParameters>
<QueryParameter Name="@FilteredAccount">
<Value>=Parameters!FilteredAccount.Value</Value>
</QueryParameter>
</QueryParameters>
<DataSourceName>CRM</DataSourceName>
</Query>
次の例は、Fetch
ベースのレポートで QueryParameter
および ReportParameter
パラメーターを使用する方法を示しています。
<ReportParameter Name="FilteredAccount">
<DataType>String</DataType>
<Prompt>Filtered Account</Prompt>
<DefaultValue>
<Values>
<Value>
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
<entity name="account">
<all-attributes/>
</entity>
</fetch>
</Value>
</Values>
</DefaultValue>
</ReportParameter>
<Query>
<DataSourceName>DataSource1</DataSourceName>
<CommandText>
<fetch>
<entity name="account" enableprefiltering="true" prefilterparametername="FilteredAccount">
<attribute name="accountid" />
<attribute name="name" />
</entity>
</fetch>
</CommandText>
<QueryParameters>
<QueryParameter Name="FilteredAccount">
<Value>=Parameters!FilteredAccount.Value</Value>
</QueryParameter>
</QueryParameters>
<rd:UseGenericDesigner>true</rd:UseGenericDesigner>
</Query>
非表示のパラメーター
Visual Studio のレポート デザイナーには、非表示のパラメーターのサポートが組み込まれています。 また、レポートでパラメーター名に CRM_ という接頭辞を追加することによって、パラメーターを非表示にすることもできます。 既定では、レポートを公開すると、CRM_ 接頭辞が含まれているパラメーターは非表示になります。 レポートの実行時に、非表示のパラメーターのパラメーター値を入力するよう求められることはありません。
特殊なパラメーター
次の表は、レポートで使用できる特殊な非表示のパラメーターを示しています。
パラメーター | 内容 |
---|---|
CRM_FilterText |
レポート ユーザーがレポートを実行するときに Report Viewer で対話的に作成するフィルター テキストの値が含まれます。 このパラメーターは、レポート ヘッダーにあるフィルターの概要テキスト ボックスに表示されます。 初期値は既定のフィルターに設定されます。 |
CRM_URL |
アプリの URL に設定します。 このパラメーターは、ドリルスルーするときに使用します。 |
CRM_FilteredEntity |
クエリ式の中で、データの事前フィルター処理 (高度な検索を使用) を有効にするために使用します。 |
パラメーターを参照するには、レポートですべてのパラメーターを作成する必要があります。 これらの特殊なパラメーターの値は、レポートの実行時に Customer Engagement (on-premises) によって入力されます。
追加のフォーマット パラメーター
次の表は、レポートで使用できる追加のパラメーターを示したものです。 これらの中には、ユーザーの数値設定情報へのアクセスを提供するパラメーターが含まれます。 これらの値を使用して、数値をフォーマットおよび表示できます。 これらのパラメーターは、NumberFormatInfo クラスで指定されている値と同様です。 これらのパラメーターをカスタム レポート内で使用することで、データをユーザー設定に従ってフォーマットできます。
パラメーター | 内容 |
---|---|
CRM_FullName |
レポートを誰の代理で実行しているのかを示す、フル ユーザー名。 |
CRM_UserTimeZone |
ユーザーのタイムゾーン名 (例: Pacific Standard Time)。 |
CRM_UILanguageId |
ユーザーの現在のロケール (LCID)。 |
CRM_YearStartWeekCode |
Dynamics 365 for Customer Engagement アプリで使用される年の最初の週。 |
CRM_WeekStartDayCode |
Customer Engagement で使用される、最初の曜日。 |
CRM_FiscalCalendarStart |
Customer Engagement で使用される、会計年度の開始日。 |
CRM_FiscalPeriodType |
会計年度の分割方法 (四半期、月、年など) を指定します。 |
CRM_FiscalYearDisplayCode |
会計年度名を会計年度の開始時と終了時のどちらに基づいて表示するかを指定します。 |
CRM_FiscalYearPeriodConnect |
会計年度と会計期間を同時に表示する場合の、両者の接続方法を指定します。 |
CRM_FiscalYearFormat |
会計年度名の表示方法を指定します。 |
CRM_FiscalPeriodFormat |
会計期間の表示方法を指定します。 |
CRM_FiscalYearPrefixFormat |
会計年度を表示する場合に、接頭辞を付けるかどうかを指定します。 |
CRM_FiscalYearSuffixFormat |
会計年度を表示する場合に、接尾辞を付けるかどうかを指定します。 |
CRM_CurrencyDecimalPrecision |
通貨の小数点以下の精度。 |
CRM_CurrencySymbol |
組織の通貨記号。 |
CRM_CurrencyPositivePattern |
正の通貨値に適用するフォーマット パターン。 |
CRM_CurrencyNegativePattern |
負の通貨値に適用するフォーマット パターン。 |
CRM_NumberDecimalDigits |
数値に使用する、小数点以下の桁数。 |
CRM_NumberDecimalSeperator |
数値の小数点として使用される文字列。 |
CRM_NumberNegativePattern |
負の数値に適用するフォーマット パターン。 |
CRM_NumberGroupSizes |
数値の小数点の左側で、何桁ごとに桁区切りを行うかを示す数。 |
CRM_NumberGroupSeperator |
数値の小数点の左側で、桁区切りとして表示する文字列。 |
CRM_DateSeparator |
日付のコンポーネント (年、月、日など) を区切る文字列。 |
CRM_TimeSeparator |
時刻のコンポーネント (時、分、秒など) を区切る文字列。 |
CRM_AMDesignator |
午前 (AM) の時刻の指定子。 |
CRM_PMDesignator |
午後 (PM) の時刻の指定子。 |
CRM_ShortDatePattern |
フォーマット パターン "d" に関連付けられる、短い日付値のフォーマット パターン。 |
CRM_LongDatePattern |
フォーマット パターン "D" に関連付けられる、長い日付値のフォーマット パターン。 |
CRM_ShortTimePattern |
フォーマット パターン "t" に関連付けられる、短い時刻値のフォーマット パターン。 |
CRM_MonthDayPattern |
フォーマット パターン "m" および "M" に関連付けられる、月と日の値のフォーマット パターン。 |