首页 > 解决方案 > 如何在 Delphi 桌面应用程序中集成 Power BI

问题描述

有没有人将 Microsoft Power BI 集成到 Delphi 应用程序中。我相信我需要将网页嵌入到表单中,我对此表示满意,但是我看不到您如何强制刷新或为 Power BI 提供运行时选择标准。

它将链接到标准 SQL Server 数据库(目前不是基于云的)。我有想要在 Power BI 桌面上工作的图表。

标签: delphipowerbi

解决方案


我将它集成到WPF C# 应用程序中。它与 Delphi 中的几乎相同,但由于 C# 的ADAL库的可用性而更容易。

如果要根据应用程序中的当前选择显示报表(或磁贴或仪表板),则必须将此信息提供给报表。您可以将选择保存到数据库中的表(或有关选择的信息,如主键值)并在此表上构建报告。在其中放置一个会话列,并在每次保存时生成一个唯一的会话 ID 值。然后过滤报告以仅显示您的会话的数据。

筛选嵌入报表,请定义一个筛选器并将其分配给您要传递给JavaScript Power BI 客户端或调用方法的嵌入配置filters对象的属性。在你的情况下,就足够了。像这样构造它:report.setFiltersIBasicFilter

const basicFilter: pbi.models.IBasicFilter = {
  $schema: "http://powerbi.com/product/schema#basic",
  target: {
    table: "ReportTempTableName",
    column: "SessionId"
  },
  operator: "In",
  values: [12345],
  filterType: 1 // pbi.models.FilterType.BasicFilter
}

替换12345为您想要可视化的唯一会话 ID 值。

为了避免用户删除应用的过滤器并查看所有会话的数据,您可以隐藏过滤器窗格:

var embedConfig = {
    ...
    settings: {
        filterPaneEnabled: false
    }
};

推荐阅读