使用报表中的参数
发布日期: 2017年1月
适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online
您可以在报表中使用参数来控制检索的数据,方法是当用户运行报表时,提示用户输入某个值或一系列值。 数据集查询只会检索由用户请求的数据。 您也可以在报表中添加隐藏参数和特殊参数,这些参数不会提示用户输入,但是可以用于某些操作,例如筛选数据或动态钻取。
备注
从 Microsoft Dynamics 365 传入的参数值的最大长度为 2,000 个字符。 例如,如果您运行某个报表,并且通过“高级查找”用户界面创建数据筛选器,则生成的筛选器表达式会传递到筛选参数,且表达式不能超过 2,000 个字符。 您可以指定的最大参数数量没有限制。 但是,您可能必须限制 URL 行的字符串长度和参数数量满足特定浏览器的要求。
本主题内容
添加参数
隐藏参数
添加参数
您可以通过将参数添加至报表来定义报表的个别参数、通过查询传递信息,或提供对用户设置的访问权限,例如 CRM_CurrencySymbol 和 CRM_CurrencyPositivePattern 参数。
<ReportParameter> 是一个在报表定义语言 (RDL) 文件中的元素,用于描述报表中的个别参数。<QueryParameter> 包含有关个别参数的信息,该参数作为查询的一部分传递到数据源。 以下 XML 代码摘自“客户摘要”报表的 RDL 文件,演示了如何使用 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>
隐藏参数
Microsoft Visual Studio 中的报表设计器已内置对隐藏参数的支持。 此外,您可以通过在 Microsoft Dynamics 365 报表中向参数名称添加 CRM_ prefix 来隐藏参数。 默认情况下,如果报表是通过 Microsoft Dynamics 365 发布,则带有 CRM_ prefix 的参数会被隐藏。 运行报表时,不会提示您输入隐藏参数的参数值。
特殊参数
下表显示您可以在报表中使用的特殊隐藏参数。
参数 |
说明 |
---|---|
CRM_FilterText |
包含报表用户在运行报表时在报表查看器中以交互方式创建的筛选文本的值。 该参数位于报表页眉中的筛选器摘要文本框内。 初始值设置为默认筛选器。 |
CRM_URL |
设置为 Microsoft Dynamics 365 Web 应用程序的 URL。 对 Microsoft Dynamics 365 进行钻取时使用此参数。 |
CRM_FilteredEntity |
用于在查询表达式中启用数据预筛选(通过“高级查找”)。 |
必须首先在报表中创建所有参数,然后才能引用它们。 当您运行报表时,这些特殊参数的值由 Microsoft Dynamics 365 填入。
其他格式参数
下表包含您可以在报表中使用的其他参数。 其中一些是提供对用户编号设置信息的访问的参数。 您可以使用这些值来设置数值的格式并显示数值。 这些参数类似于 NumberFormatInfo 类中指定的值。 在自定义报表中使用这些参数可根据用户设置来设置数据格式。
参数 |
说明 |
---|---|
CRM_FullName |
用户的全名,正代表该用户运行报表。 |
CRM_UserTimeZone |
用户所在时区的名称,例如,太平洋标准时间。 |
CRM_UILanguageId |
用户的当前区域设置 (LCID)。 |
CRM_YearStartWeekCode |
Microsoft Dynamics 365 中使用的一年的第一周。 |
CRM_WeekStartDayCode |
Dynamics 365 中使用的一周的第一天。 |
CRM_FiscalCalendarStart |
Dynamics 365 中使用的会计年度的开始日期。 |
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_DateSeperator |
分隔日期组成部分(如年、月和日)的字符串。 |
CRM_TimeSeperator |
分隔时间组成部分(如小时、分钟和秒)的字符串。 |
CRM_AMDesignator |
属于上午(Ante Meridiem,AM)的小时的指示符。 |
CRM_PMDesignator |
属于下午(Post Meridiem,PM)的小时的指示符。 |
CRM_ShortDatePattern |
与“d”格式模式关联的短日期值的格式模式。 |
CRM_LongDatePattern |
与“D”格式模式关联的长日期值的格式模式。 |
CRM_ShortTimePattern |
与“t”格式模式关联的短时间值的格式模式。 |
CRM_MonthDayPattern |
与“m”和“M”格式模式关联的月和日值的格式模式。 |
另请参阅
使用 Dynamics 365 报告和分析
使用基于 SQL 的报表(仅 Dynamics 365 本地)
发布报表
© 2017 Microsoft。 保留所有权利。 版权