代码之家  ›  专栏  ›  技术社区  ›  Yeldar Kurmangaliyev

如何使用C_以编程方式编辑Power BI桌面文档参数或数据源?

  •  0
  • Yeldar Kurmangaliyev  · 技术社区  · 7 年前

    我有一个报表模板,它内置在Power BI桌面中,保存为.pbix或.pbit文件。此模板使用DirectQuery SQL数据库作为数据源,而服务器地址和数据库名称则提取为参数。还有一个参数保存 ReportId ,用于查询。

    Power BI window screenshot

    我还有一个C应用程序,它应该从这个模板生成Power BI桌面报告。
    如何以编程方式创建具有特定参数的报表?
    当您打开.pbit模板文件、输入参数并生成.pbix文档时,Power BI桌面会自动执行此操作。

    我没有找到任何用于Power BI桌面的sdk\interop库。
    我试图以zip格式打开文档,但是 DataModel 文件被存档,因此不是格式良好的XML。
    我还尝试将这些参数提取到JSON文件中并将其作为数据源加载,但是PowerBI不支持相对路径。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Andrey Nikolov user3098458    7 年前

    没有可用于此操作的SDK或API。如果您将此报告发布到Power BI Online,则可以使用 Update Parameters Update Parameters In Group RESTAPI调用以更改参数值。我相信Power BI Reporting Server有类似的API,但我没有使用它的经验。

    您可以尝试在线发布报告并将其保存在那里(不需要与任何人共享它)。当您需要具有某个参数值的报表时,调用上面的API方法来更改该值,然后使用 Export Report Export Report In Group 方法。它很难看,而且不安全,但可能工作…

    你说你看了 DataModel 提取的.pbix中的文件。我想参数和m查询在 DataMashup (寻找) RootFormulaText ReferencedQueriesFormulaText 文本查找它们)。服务器和数据库名称也在这里。您可以相对容易地修改m查询、现有参数的值或服务器/数据库名称,并尝试重新打包.pbix文件。它可以工作,但看起来非常不受支持。

    我尝试将SSMS连接到Power BI桌面中报表的SSAS,但找不到这样修改参数值的方法。但是,我可以在源查询中看到它们的值(如果参数用作过滤器)。

    我使用的是类似的东西,但不是参数,而是将报表嵌入到我的应用程序中并使用 filters . 通过这种方式,所有用户都可以访问同一个报表,我不需要为他们的特定需求“定制”.pbix。

    恐怕这不是一个能解决你问题的答案,但我希望它能给你一些你能做或不能做的事情!