You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击嵌入式报表数据时能否获取对应详细信息?如何实现?

该需求完全具备可行性,目前主流嵌入式BI方案均开放了对应交互事件与元数据获取接口,可直接实现你要的效果。

实现步骤
  • 第一步:嵌入式报表初始化时,在配置项中开启数据点点击事件监听权限,同时申请报表元数据读取权限,否则后续无法拿到visual、页面相关信息。
  • 第二步:为报表实例绑定数据点选中事件回调,不同工具的事件命名略有区别,常见命名包括dataPointClicked、dataSelected等。
  • 第三步:在回调函数内直接提取目标字段:
    • 关联visual名称:从事件回调参数的visual属性下取展示名称字段即可
    • 已应用筛选条件:调用对应visual实例的getFilters()方法,可返回包括报表级、页面级、visual专属的所有生效筛选规则
    • 所属页面名称:从事件回调参数的page属性下取展示名称字段
    • report id:可直接从初始化后的全局报表实例的id属性获取,也可从事件参数的根属性提取
  • 第四步:将获取到的信息按你的业务需求输出,可打印到控制台、存入日志、前端弹窗展示或上传到后端系统均可。
代码示例(以Power BI嵌入式开发为例)
// 报表容器DOM节点
const reportContainer = document.getElementById('report-container');
// 初始化配置,提前开启事件监听权限
const config = {
  type: 'report',
  id: '你的报表ID',
  embedUrl: '你的嵌入式报表地址',
  accessToken: '你的访问令牌',
  settings: {
    panes: { filters: { visible: false } },
    // 开启交互事件回调权限
    visualClickEnabled: true
  }
};

// 嵌入报表
const report = powerbi.embed(reportContainer, config);

// 绑定数据点选中事件
report.on('dataSelected', async (event) => {
  const eventDetail = event.detail;
  // 提取所有需要的信息
  const targetInfo = {
    visualName: eventDetail.visual.name,
    pageName: eventDetail.page.displayName,
    reportId: report.getId(),
    appliedFilters: await eventDetail.visual.getFilters()
  };
  // 自定义输出逻辑
  console.log('点击点位关联信息:', targetInfo);
});

注意:部分BI工具会默认隐藏行级别权限、租户级全局筛选的相关内容,若需要获取这部分筛选条件,需要在生成嵌入式访问令牌时额外申请对应权限。

内容的提问来源于stack exchange,提问作者Raman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:21:01