內嵌編頁報表
提示
請嘗試在 Power BI Embedded Analytics 遊樂場的 探索我們的 API 區段中,內嵌編頁報表或實驗我們的用戶端 API。
本文涵蓋在應用程式中內嵌編頁報表的步驟。 深入瞭解 什麼是Power BI Premium中的編頁報表?。
如何內嵌編頁報表
當您在應用程式中內嵌 Power BI 內容時,您會定義內容,並在組態物件中指定其設定。 然後將該對象傳遞至 API。
當您內嵌編頁報表時,請使用類型為 IPaginatedReportLoadConfiguration
的組態物件:
export interface IPaginatedReportLoadConfiguration {
accessToken: string;
id: string;
embedUrl?: string;
settings?: IPaginatedReportSettings;
tokenType?: TokenType;
type?: string;
parameterValues?: IPaginatedReportParameter[];
}
此介面包含下列屬性:
accessToken - 可讓您存取所內嵌之 Power BI 數據的令牌。 若要深入瞭解存取令牌,請參閱 瞭解不同的內嵌解決方案。
embedUrl - 您要內嵌之報表的 URL。 此 URL 會成為包含內嵌報表的 HTML iframe 元素來源。 具體而言,API 會將URL指派給iframe的
src
屬性。 您可以使用 報表 API 來取得此 URL。 兩個範例包括:- 報表 - 取得群組中的報表
- 報表 - 取得群組 中的報表
我們建議使用下面所述的
parameterValues
屬性,將報表參數傳遞至報表。 不過,您也可以將查詢字串新增至內嵌 URL 的結尾,將參數傳遞至報表。 深入瞭解如何在編頁報表中傳遞 URL 參數,。 請參閱將參數傳遞至 URL的範例。 識別碼 - 您要內嵌的 Power BI 報表識別碼。
主機名稱 - 預設
hostname
值為 app.powerbi.com。 如果您使用主權雲端,請在這裡提供URL。 如果您為embedURL
提供值,則會忽略hostname
。設定 - IPaginatedReportSettings類型的組態物件。 這個物件會指定報表參數面板外觀的相關信息。 參數面板是動作列下方的列,可以展開或隱藏。
您可以按下動作列上的 [參數] 按鈕,以顯示或隱藏參數面板。 預設會提供該按鈕。 但是,如果您將面板的
屬性設定為 ,則無法使用 [參數] 按鈕 。 根據預設,API 會折迭參數面板。 如果您將面板的
expanded
屬性設定為true
,則 API 會將此面板展開來載入報表。此程式代碼顯示設定
settings
屬性的其中一種方式:settings: { commands: { parameterPanel: { enabled: true, expanded: true } } }
tokenType - 可讓您存取所內嵌之 Power BI 數據的令牌類型。
- 如果您要內嵌組織(使用者擁有數據),請使用
models.TokenType.Aad
。 - 如果您要為客戶內嵌
models.TokenType.Embed
(應用程式擁有資料)。
如需詳細資訊,請參閱 瞭解不同的內嵌解決方案。
- 如果您要內嵌組織(使用者擁有數據),請使用
parameterValues – 類型為
IPaginatedReportParameter
的組態物件。 使用這個屬性設定報表參數。 這個方法使用 JavaScript SDK,是傳遞報表參數的慣用方法。 例如:parameterValues: [ {name: "State", value: "WA"}, {name: "City", value: "Seattle"}, {name: "City", value: "Bellevue"}, {name: "City", value: "Redmond"} ]
這個方法只能用來傳遞 報表參數(具有 URL 前置詞
rp:
的參數),而不是 rdl 參數(URL 前置詞rdl:
)。
例
下列範例示範如何內嵌編頁報表:
// Set up the configuration object that determines what to embed and how to embed it.
let embedConfiguration = {
accessToken: anAccessToken,
embedUrl: anEmbedUrl,
uniqueId: aReportId,
tokenType: aTokenType,
type: 'report',
datasetBindings: [{
sourceDatasetId: "originalDatasetId",
targetDatasetId: "notOriginalDatasetId"
}]
};
// Get a reference to the HTML element that contains the embedded report.
let embedContainer = $('#embedContainer')[0];
// Embed the report.
let report = powerbi.embed(embedContainer, embedConfiguration);
請務必在 多資源內嵌令牌中包含用於系結的所有 DatasetId。
考慮和限制
- 若要使用動態系結,請參閱 將數據集動態系結至編頁報表。
- 編頁報表不支持啟動方法。
- 內嵌編頁報表時不支援多重值參數。
-
parameterValues
屬性只能用於報表參數。 它不能用於 rdl 參數。 - 不支援使用即時數據集內嵌編頁報表(推送數據集)。