建立、編輯及儲存內嵌報表
Power BI 內嵌式分析可讓您建立、編輯及儲存內嵌報表。 您可以根據現有的數據集建立報表,也可以編輯現有的報表。 您也可以在建立或編輯報表之後儲存報表。
如何建立報表
瞭解如何從現有的數據集建立新的空白報表。
建立報表所需的存取令牌許可權
產生具有數據集存取權的內嵌令牌。 如果您使用 主要使用者 驗證方法,請確定您的應用程式具有下列範圍:Dataset.Read.All
、Content.Create
和 Workspaces.ReadWrite.all
。 如需詳細資訊,請參閱 內嵌令牌 - 產生令牌。
建立報表所需的客戶端許可權
建立報表需要下列客戶端權限:
建立 - 使用者可以建立新的報表。
[所有 - 使用者可以建立、檢視、編輯、儲存及儲存報表複本。
建立新的報表
從現有的數據集建立新的空白報表。 您需要資料集識別碼和內嵌 URL。 例如,您可以使用 getDatasetsInGroup
REST API 並擷取 CreateReportEmbedURL
。 如需詳細資訊,請參閱 數據集 - 取得群組 中的數據集。
注意
您必須擁有數據集的建置或寫入許可權,才能建立新的報表。
let embedCreateConfiguration = {
tokenType: tokenType,
accessToken: accessToken,
embedUrl: embedURL,
datasetId: datasetId,
settings: settings,
theme: theme, // optional
};
// Grab the reference to the div HTML element that will host the report
let embedContainer = $('#embedContainer')[0];
// Create report
let report = powerbi.createReport(embedContainer, embedCreateConfiguration);
您也可以選擇建立已套用主題的報表。 新增至報表的新視覺效果會遵守主題樣式。 如需詳細資訊,請參閱 套用報表主題。
如何編輯報表
瞭解如何編輯現有的報表,並在檢視和編輯模式之間切換。
編輯所需的存取令牌許可權
產生具有報表存取權的內嵌令牌。 如果您使用 主要使用者 驗證方法,請確定您的應用程式具有下列範圍:Dataset.ReadWrite.All
和 Report.ReadWrite.All
。 您也必須為使用者需要編輯的每個報表設定 allowEdit: true
旗標。 如需詳細資訊,請參閱 內嵌令牌 - 產生令牌。
編輯所需的客戶端許可權
編輯報表需要下列客戶端權限:
複製 - 使用者可以使用 [另存新檔]來儲存報表的複本。
ReadWrite - 使用者可以檢視、編輯和儲存報表。
[所有 - 使用者可以建立、檢視、編輯、儲存及儲存報表複本。
編輯報表
以編輯模式載入現有的報表。 報表必須內嵌在應用程式內嵌一般報表的方式相同,而且檢視模式必須在 [編輯] 中。 請確定您已將 viewMode
參數設定為 models.ViewMode.Edit
,而且您具有正確的客戶端許可權。
let config = {
type: 'report',
tokenType: models.TokenType.Aad or models.TokenType.Embed,
accessToken: YourAccessToken,
embedUrl: YourEmbedUrl,
id: YourEmbedReportId,
permissions: models.Permissions.All,
viewMode: models.ViewMode.Edit,
};
// Grab the reference to the div HTML element that will host the report
let embedContainer = $('#embedContainer')[0];
// Embed report
let report = powerbi.embed(embedContainer, config);
您的用戶現在可以根據已啟用的 許可權 來編輯報表。
您也可以在載入報表之後切換 [編輯] 和 [檢視] 模式。
report.switchMode("view");
若要切換至編輯模式:
report.switchMode("edit");
如何儲存報表
瞭解如何儲存報表,包括其他選項,例如儲存報表複本,以及將報表儲存至另一個工作區。
儲存所需的存取令牌許可權
產生具有報表和數據集存取權的內嵌令牌。 如果您想要將報表儲存至另一個工作區,令牌必須具有目標工作區的存取權。 如果您使用 主要使用者 驗證方法,請確定您的應用程式具有下列範圍:Report.ReadWrite.All
和 Workspaces.ReadWrite.all
。 您也必須為客戶需要編輯的每個報表設定 allowEdit: true
旗標。 如需詳細資訊,請參閱 內嵌令牌 - 產生令牌。
儲存所需的客戶端許可權
儲存報表需要下列客戶端權限:
ReadWrite - 使用者可以檢視、編輯和儲存報表。
建立 - 使用者可以建立新的報表。
複製 - 使用者可以使用 [另存新檔]來儲存報表的複本。
[所有 - 使用者可以建立、檢視、編輯、儲存及儲存報表複本。
儲存報表
建立報表時,除非您從檔案功能表或 JavaScript 呼叫 save
作業,否則不會儲存報表。
report.save();
儲存報表的複本
以不同的名稱儲存其他複本。 報表復本將會儲存至與報表數據集相同的工作區。
let saveAsParameters = {
name: "newReport"
};
report.saveAs(saveAsParameters);
您也可以將報表儲存至另一個工作區。 請確定您有正確的目標工作區許可權。
let saveAsParameters = {
name: "newReport"
targetWorkspaceId: "13bbf317-fe2b-4b15-a081-94b0921c28e5"
};
report.saveAs(saveAsParameters);
確認報表已儲存
呼叫 report.isSaved
以確定已儲存報表。 此方法有助於防止遺失未儲存的變更。
let isReportSaved = await report.isSaved();
建立自定義saveAs體驗
您可以將 [useCustomSaveAsDialog: true
報表] 設定新增至組態物件,以建立自定義 saveAs
對話方塊。 此設定會隱藏預設 UI 對話方塊。
當使用者按兩下 UI 中的 [另存新檔] 時,就會引發 saveAsTriggered
事件。 使用這項信息來顯示您的自訂對話方塊。
report.on("saveAsTriggered", function (event) {
console.log(event);
});
若要執行另存新檔作業,您可以從自訂對話框呼叫 report.saveAs
。 如需詳細資訊,請參閱 儲存報表複本。
let saveAsParameters = {
name: "newReport"
targetWorkspaceId: "13bbf317-fe2b-4b15-a081-94b0921c28e5"
};
report.saveAs(saveAsParameters);
接聽 save 和 saveAs 事件
saved
事件會在UI或 API 中使用 API 的 save
或 saveAs
動作觸發儲存時引發。 如需詳細資訊,請參閱 如何處理事件。
report.on("saved", function (event) {
console.log(event);
});
相關內容
- 以動態方式將數據集系結至報表
- 使用階段式內嵌](phased-embedding.md)
- 報表撰寫概觀