delphi - 如何在 Delphi 桌面应用程序中集成 Power BI
问题描述
有没有人将 Microsoft Power BI 集成到 Delphi 应用程序中。我相信我需要将网页嵌入到表单中,我对此表示满意,但是我看不到您如何强制刷新或为 Power BI 提供运行时选择标准。
它将链接到标准 SQL Server 数据库(目前不是基于云的)。我有想要在 Power BI 桌面上工作的图表。
解决方案
我将它集成到WPF C# 应用程序中。它与 Delphi 中的几乎相同,但由于 C# 的ADAL库的可用性而更容易。
如果要根据应用程序中的当前选择显示报表(或磁贴或仪表板),则必须将此信息提供给报表。您可以将选择保存到数据库中的表(或有关选择的信息,如主键值)并在此表上构建报告。在其中放置一个会话列,并在每次保存时生成一个唯一的会话 ID 值。然后过滤报告以仅显示您的会话的数据。
要筛选嵌入报表,请定义一个筛选器并将其分配给您要传递给JavaScript Power BI 客户端或调用方法的嵌入配置filters
对象的属性。在你的情况下,就足够了。像这样构造它:report.setFilters
IBasicFilter
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
}
};
推荐阅读
- php - 根据不同的按钮提交动态获取数据
- python - 重新发生事件的概率
- c++ - GCC/Clang 不会生成临时对象
- javascript - 怎么做简单
没有工作 在 AngularJS 材料中? - c++ - 当元素数> 1000时,如何制作向量的笛卡尔积?
- python - python生成的我的SQL语法有什么问题?
- reactjs - 从 tsx 文件中的 controllerApi 方法检索数据 [Module Parse failed 错误]
- java - 在 Google Cloud Storage 中创建存储桶有时会失败
- javascript - Stripe - PaymentIntents handleCardPayment() - 如何捕捉 JS 错误?
- vue.js - vuejs:从子dataAttr调用父函数