共用方式為


建立、編輯及儲存內嵌報表

Power BI 內嵌式分析可讓您建立、編輯及儲存內嵌報表。 您可以根據現有的數據集建立報表,也可以編輯現有的報表。 您也可以在建立或編輯報表之後儲存報表。

如何建立報表

瞭解如何從現有的數據集建立新的空白報表。

建立報表所需的存取令牌許可權

產生具有數據集存取權的內嵌令牌。 如果您使用 主要使用者 驗證方法,請確定您的應用程式具有下列範圍:Dataset.Read.AllContent.CreateWorkspaces.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.AllReport.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.AllWorkspaces.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 的 savesaveAs 動作觸發儲存時引發。 如需詳細資訊,請參閱 如何處理事件

report.on("saved", function (event) {
    console.log(event);
});