创建、编辑和保存嵌入报表
借助 Power BI 嵌入式分析,可以创建、编辑和保存嵌入的报表。 可以基于现有数据集创建报表,也可以编辑现有报表。 还可以在创建或编辑报表后保存报表。
如何创建报表
了解如何从现有数据集创建新的空白报表。
创建报表所需的访问令牌权限
- 为客户嵌入
-
为组织
嵌入
生成有权访问数据集的嵌入令牌。 如果使用 主用户 身份验证方法,请确保应用程序具有以下范围:Dataset.Read.All
、Content.Create
和 Workspaces.ReadWrite.all
。 有关详细信息,请参阅 嵌入令牌 - 生成令牌。
创建报表所需的客户端权限
创建报表需要以下客户端权限:
创建 - 用户可以创建新报表。
所有 - 用户可以创建、查看、编辑、保存和保存报表的副本。
创建新报表
从现有数据集创建新的空白报表。 需要数据集 ID 和嵌入 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);
侦听保存和 saveAs 事件
当通过 UI 中的 save
或 saveAs
操作或使用 API 触发保存时,将引发 saved
事件。 有关详细信息,请参阅 如何处理事件。
report.on("saved", function (event) {
console.log(event);
});
相关内容
- 将数据集动态绑定到报表
- 使用分阶段嵌入](phased-embedding.md)
- 报表创作概述