使用參數建立動態報表

已完成

動態 報表是開發人員可根據使用者規格變更數據的報表。 因為一份報表就可以用於多種用途,所以動態報表極具價值。 若使用動態報表,則會較少建立個別報表,這將會節省組織的時間與資源。

您可透過判斷想要在報表中查看資料的值來使用參數,而報表會透過篩選資料來隨之更新。

建立動態報表可讓您賦予使用者更多能力來掌控報表中所顯示的資料;他們可自行變更資料來源及篩選資料。

在下列範例中,您已為 Tailwind Traders 的銷售小組建立報表,以顯示 SQL Server 資料庫中的銷售資料。 此報表將授與銷售小組執行方式的整體檢視。 雖然報表相當實用,但銷售小組成員希望能夠篩選報表,以便可以只檢視自己的資料,並針對其銷售目標追蹤績效。

建立個別值的動態報表

若要建立動態報表,您必須先撰寫 SQL 查詢。 然後使用 Power BI Desktop 中的數據功能連線到資料庫。

在此範例中,您可以遵循下列步驟,連線到 SQL Server 上的資料庫:

  1. 在輸入伺服器詳細資料後,請在 [SQL Server 資料庫] 視窗內,選取 [進階選項]。

  2. 在 [SQL 陳述式] 方塊中貼上 SQL 查詢,然後選取 [確定]。

    建立連線時,數據會顯示在預覽視窗中。

  3. 選取 [編輯],在 Power Query 編輯器中開啟資料。

接下來,您可以遵循下列步驟來建立 參數:

  1. 在 [ 首頁] 索引標籤上,選取 [管理參數 > ][新增參數]。

  2. 在 [參數] 視窗中,將預設參數名稱變更為更具描述性的名稱,讓用途更加清晰。 在此情況下,您可將名稱變更為 SalesPerson

  3. 類型清單中選取 [文字],然後在建議值清單中選取 [任意值]。

  4. 選取 [確定]。

    您建立的參數會顯示新的查詢。

現在,您需要調整 SQL 查詢中的程式碼,以評估您的新參數:

  1. 以滑鼠右鍵按一下 [Query1],然後選取 [進階編輯器]。

  2. 將 execute 語句中的現有值取代為 ampersand (&) ,後面接著您的參數名稱 (SalesPerson) ,如下圖所示。

  3. 請確定視窗底部沒有顯示任何錯誤,然後選取 [完成]。

雖然您在畫面上看不到差異,但 Power BI 執行了查詢。

  1. 若要確認查詢是否已執行,您可以透過選取參數查詢,並在 [目前的值] 方塊中輸入新的值,以執行測試。

  2. 查詢旁邊可能會顯示警告圖示。 若發生此情況,請選取該查詢以檢視警告訊息,該訊息說明必須有權限才可執行此原生資料庫查詢。 選取 [編輯權限],然後選取 [執行]。

    當查詢成功執行時,參數會顯示新的值。

  3. 選取 [關閉及套用] 以返回報表編輯器。

現在您可將參數套用至報表:

  1. 選取 [編輯查詢 > ] [編輯參數]。

  2. 在 [編輯參數] 視窗中輸入新的值,然後選取 [確定]。

  3. 選取 [套用變更],並再次執行原生查詢。

    現在,當您檢視數據時,您會看到透過 參數傳遞之新值的數據。

您現在可建立報表,以便一次顯示一個特定值的資料。 需要更多步驟,才能同時顯示多個值的數據。

建立多個值的動態報表

若要一次容納多個值,您必須先建立一個 Microsoft Excel 工作表,其中資料表內含一個包含值清單的資料行。

接下來,請使用 Power BI Desktop 中的 [取得資料] 功能,連線到該 Excel 工作表中的資料,然後遵循以下步驟:

  1. 在 [導覽器] 視窗中,選取 [編輯] 以在 Power Query 編輯器 中開啟數據,您可以在其中看到數據表的新查詢。

  2. 將資料表中的資料行重新命名成更具描述性的名稱。

  3. 將資料行資料類型變更為 [文字],使其符合參數類型,以免發生資料轉換問題。

  4. 在查詢 [屬性] 區段,將資料來源名稱變更為更具描述性的名稱。 針對此範例,請輸入 SalesPersonID

接下來,您必須建立函式,將新的 SalesPersonID 查詢傳遞至 Query1

  1. 以滑鼠右鍵按一下 [Query1],然後選取 [建立函式]。

  2. 輸入函式的名稱,然後選取 [確定]。

    您的新函式會出現在 [查詢 ] 窗格中。

  3. 若要確保 Query1 不會顯示在報表的欄位清單中導致使用者混淆,您可以透過以滑鼠右鍵再次按一下 [Query1],然後選取 [啟用載入] (預設會選取) 來停用功能,藉此在報表中停用載入。

  4. 選取從 Excel 工作表載入的 SalesPersonID 查詢,然後在 [新增資料行] 索引標籤上,選取 [叫用自訂函式] 來執行剛才建立的自訂函式。

  5. 在 [叫用自訂函式] 視窗中,從函式查詢清單中選取函式。

[新增數據行名稱] 會自動更新,而且預設會選取包含您要傳遞參數值的數據表。

  1. 選取 [確定],且如有必要,請執行原生查詢。

    GetSalesFromSalesPerson 函式的新數據行會出現在 SalesPersonID 數據行旁邊。

  2. 選取新資料行標頭中的兩個箭頭圖示,然後選取想要載入的資料行核取方塊。 本節是您決定報表中每個值可用詳細數據的位置, (銷售人員標識符) 。

  3. 因為您不必在報表中看到具有資料行名稱的前置詞,所以請清除畫面底部的 [使用原始資料行名稱作為前置詞] 核取方塊。

  4. 選取 [確定]。

    您現在應該可以針對每個值 (銷售人員識別碼) 檢視您所選取資料行的資料。

    若有必要,您可以將更多值 (銷售人員識別碼) 新增至 Excel 工作表中的 SalesPersonID 資料行,或者變更現有的值。

  5. 儲存變更,然後返回 Power Query 編輯器。

  6. 在 [首頁] 索引標籤上,選取 [重新整理預覽],並再次執行原生查詢 (若有必要)。 您應該會從新增至工作表內的新銷售人員識別碼中看到銷售資料。

  7. 選取 [關閉] 並 [套用 ] 傳回報表編輯器,您可以在 [字段] 窗格中看到新的數據行名稱。

現在,您可以開始建置報表。