PowerBI開發 第八篇:查詢參數


在PowerBI Desktop中,用戶可以定義一個或多個查詢參數(Query Parameter),參數的功能是為了實現PowerBI的參數化編程,使得Data Source的屬性、替換值和過濾數據行可以參數化。注意:參數不管有多少個可能的值(Available Value),只能有一個當前值,所謂引用參數值,實際上是指引用參數的當前值(Current Value)。參數的當前值,只能在手動修改,不能動態變化。

我的PowerBI開發系列的文章目錄:PowerBI開發

 

一,參數的屬性

在查詢編輯器(Query Editor)中,用戶通過菜單“Manage Parameters”創建和管理參數,

參數有Name屬性、當前值是否必需(Required)、參數值的數據類型(Type)、以及參數的建議值(Suggested Values)、當前值(Current Value)等屬性。

如果勾選Required,那么Current Value必須賦值。參數最重要的屬性是Suggested Values,共有三種類型:

  • Any Value:用於手動枚舉參數的值
  • List of Values:指定一個List查詢,參數的值是List查詢的值
  • Query:參數的建議值是一個Query

用戶可以創建多個參數,並且參數同樣是一個Query,能夠被DAX引用。

 二,創建參數

本文創建Suggested Values為Query類型的參數來演示,首先需要有一個List Query,創建List Query的詳細過程,請參考《PowerBI開發 第三篇:報表設計技巧》。創建ListQuery的步驟是:打開查詢編輯器(Query Editor),選中已經存在的Query的某一列,右擊彈出快捷菜單,點擊“Add as New Query”,這樣創建的Query就是List類型的Query。新建的List Query的Name是選中的字段名,該ListQuery只有一列,初始的列名是List。ListQuery是特殊類型的Query,同樣位於左側的“Queries”列表中,默認是被加載到Data Model中,其屬性“Enable Load”默認是勾選的,ListQuery的圖標不同於常規的查詢,例如,名字為Area的ListQuery的圖標是:

例如,創建ListQuery類型的參數,輸入參數的Name,參數的數據類型,選擇參數的類型(Suggested Values)為Query(即參數類型是ListQuery),選擇參數引用的ListQuery(下圖中參數的值從Area中獲取),勾選必需(Required)屬性表示:用戶必須指定參數的當前值(Current Value),新建的參數如下圖所示:

創建參數之后,在左側的“Queries”列表中出現一個查詢(Query),查詢的Name是參數的Name。參數和常規的查詢一樣,能夠被其他查詢引用,能夠被加載到數據模型(Data Model),也能夠被其他DAX表達式引用。默認情況下,查詢參數是不會被加載到Data Model中,用戶必需手動啟用數據加載選項:選中參數,右擊彈出快捷菜單,點擊“Enable Load”,使PowerBI把參數加載到Data Model中。

例如,創建Text類型的Parameter1,當前值是host1,勾選“Enable Load”,啟用參數的加載屬性:

三,引用參數

參數的值可能有很多,而引用的是參數的當前值(Current Value),用戶可以在查詢編輯器(Query Editor)中手動修改參數的當前值,參數通常用於“Get Data” 和 “Query Editor”,也可用於DAX表達式中。

PowerBI通常把參數用於:

  • 參數化數據源(Data Sources)
  • 替換值(Replace Value)
  • 過濾數據行(Filter Rows)
  • 用於DAX表達式中

1,在創建數據查詢時,引用參數

通過“Get Data”新建SQL Server類型的數據查詢時,可以通過參數設置數據源的Server,Database等屬性,如圖:

如果PowerBI報表中引用多個查詢,而查詢使用的底層數據源是相同的,在這樣的場景下,用戶可以創建參數,參數值是用於連接數據源的連接字符串(Connection String),例如,SQL Server實例,SQL Server Database的名稱等,在新建查詢時,只需要選中參數,便於統一管理數據源的連接字符串等屬性。

2,使用參數替換查詢的值

在查詢編輯器(Query Editor)中,通過“Replace Values”菜單,圖標是:,用戶使用參數,查找已經存在的值,替換為其他參數的值。

3,使用參數過濾查詢的值

在查詢編輯器(Query Editor)中,選中Text類型的Column,點擊向下的三角“”,彈出快捷菜單,選擇“Text Filters”:

彈出“Filter Rows”的窗體,引用參數查詢字段值,並把查找的值替換為其他值,而替換的值也可以通過參數來配置:

4,DAX表達式引用查詢參數

參數和常規的查詢是一樣的,是關系數據(tabular data),能夠用於DAX表達式的表表達式(Table Expression)中。

measure_name = "max parameter="& MAX(Parameter1[Parameter1])

四,編輯查詢參數

在開發PowerBI報表時,參數的值只能手動來設置,不能動態改變。使用參數,可以統一管理連接字符串(Connection String)。當然,用戶可以通過手動變更參數的當前值,然后刷新數據。

用戶可以通過“Edit Queries”來查看和編輯參數的當前值:

 

參考文檔:

Using Parameters in Power BI

Deep Dive into Query Parameters and Power BI Templates

POWER BI DESKTOP QUERY PARAMETERS, PART 1

Power BI Introduction: Working with Parameters in Power BI Desktop — Part 4


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM