在報表中使用參數

 

發行︰ 2017年1月

適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

在使用者執行報表時,向使用者提示一個值或一組值,就可以在報表中使用參數來控制擷取的資料。 資料集查詢只會擷取使用者要求的資料。 您也可以在不會提示使用者輸入,但是可以用於作業 (例如資料篩選和動態鑽研) 的報表中新增隱藏和特殊參數。

注意

從 Microsoft Dynamics 365 傳遞的參數值最大長度為 2,000 個字元。 例如,如果您執行報表並透過 [進階尋找] 使用者介面建立資料篩選,則傳遞至篩選參數的結果篩選運算式不可超過 2,000 個字元。 您可以指定的參數數目沒有上限。 不過,您可能需要限制 URL 行的字串長度和參數數目,以符合特殊瀏覽器的需求。

本主題內容

新增參數

隱藏的參數

新增參數

您可以將參數新增至報表以定義報表的個別參數、透過查詢傳遞資訊,或提供使用者設定的存取權,例如 CRM_CurrencySymbolCRM_CurrencyPositivePattern 參數。

<ReportParameter> (英文) 是報表定義 (RDL) 檔中的一個元素,用來描述報表中的個別參數。<QueryParameter> (英文) 包含隨查詢傳遞至資料來源的個別參數的相關資訊。 下列 XML 程式碼取自 [帳戶摘要] 報表的 RDL 檔,會示範如何使用 ReportParameterQueryParameter 參數。

<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 報表中使用 QueryParameterReportParameter 參數。

<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

分隔時間各元件的字串,例如小時、分和秒

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. 著作權所有,並保留一切權利。 著作權