2

我是 Power BI 的新手,正在做一些工作。我在 SQL Server 数据库中有数百万条记录,我想要实现的是.. 每当我的同事在 Power BI 上打开报表时,它必须要求提供日期参数。提交日期后,它必须转到 SQL Server 并获取数据,然后它必须显示报告。

可能吗?如果是的话,有人可以告诉我如何实现它吗?

4

1 回答 1

2

如果您在报表中定义参数并将其用于过滤数据,则在加载报表时,将加载与过滤器匹配的数据。您可以提供一个默认值,您知道它不会返回任何数据(例如,未来的日期,如果您在某个日期或之后显示数据)。

您可以声明一个参数(在您的日期数据类型的情况下)并使用它来过滤数据。要声明它,请在 Power BI Desktop 中打开您的报表,转到Power Query Editor(通过单击Edit Queries功能区中的按钮)并在Manage Parameters对话框中定义一个新参数:

管理参数对话框

确保参数的数据类型与您的数据类型匹配,即如果您的数据有时间,请定义Date/Time参数。如果您的数据是Date,请定义Date数据类型参数。

然后转到要过滤的查询,然后单击要过滤的列标题中的按钮。在日期/时间过滤器菜单中选择如何过滤数据,例如获取某个日期或之后的数据:

在此处输入图像描述

然后您可以关闭Power Query Editor并返回报告。Edit Queries您可以从-下的下拉列表中更改参数的值Edit Parameters

如果您想避免加载参数默认值的数据,您可以将此报告保存为模板(File-> Export-> Power BI template),然后将此模板发送给您的同事。当他们打开它时,将提示他们为定义的参数输入值,只有在此之后,报表才会连接到数据源并获取匹配的数据。这意味着,首先,你没有使用 Power BI Online,而是将报表作为文件共享,其次,你的同事有权访问数据源以加载数据。

如果您必须将报表发布到 Power BI Online,那么您可以使用完全不同的技术 - 而不是定义参数,而是在报表的 URL 中传递过滤器。当报表正常加载时(例如,您进入工作区并打开报表),它将显示所有数据(不会被过滤)。但是,您可以为您的同事准备一个特殊的 URL,方法是附加?filter=MyTable/DateColumn ge 2019-02-04到您在浏览器地址栏中看到的报告的 URL。替换MyTable为您要过滤的表的名称(例如SalesData)和DateColumn您要过滤的字段的名称(例如SalesDate)。如果这些名称中有空格,则必须将它们替换为_0x0020_,但如果可能,请避免使用它们。之后,过滤器定义了一个用于过滤的运算符,例如ge意味着greater than or equals。最后是值(在您的情况下为日期)。

您可以制作一个网页,用户可以在其中选择日期,该页面将为您的报告生成适当的 URL。或者您可以制作另一个报告,其中 URL 构造为计算列或基于某些条件的度量(例如从切片器中选择日期),用户可以单击超链接,这将加载实际报告,但已过滤.

于 2019-02-04T07:45:23.433 回答