创建、编辑和保存嵌入报表

借助 Power BI 嵌入式分析,可以创建、编辑和保存嵌入式报表。 可以根据现有数据集创建报表,也可以编辑现有报表。 也可以在创建或编辑报表后保存报表。

如何创建报表

了解如何从现有数据集创建新的空白报表。

创建报表所需的访问令牌权限

生成有权访问数据集的嵌入令牌。 如果使用 主用户 身份验证方法,请确保应用程序具有以下范围: Dataset.Read.AllContent.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.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);

侦听保存和 saveAs 事件

当在 UI 或 API 中使用某个操作saveAs触发保存时,将引发savesaved事件。 有关详细信息 ,请参阅如何处理事件

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

后续步骤