我是 Power BI 新手,正在做一些工作。 我在 SQL Server 数据库中有数百万条记录,我想要实现的是.. 每当我的同事在 Power BI 上打开报表时,它都必须要求提供日期参数。 提交日期后,必须转到 SQL Server 并获取数据,然后必须显示报告。
这可能吗? 如果是的话,有人可以告诉我如何实现它吗?
最佳答案
如果您在报表中定义参数并使用它来过滤数据,则在加载报表时,将加载与过滤器匹配的数据。您可以提供一个默认值,您知道该默认值不会返回任何数据(例如,如果您在某个日期或之后显示数据,则为 future 的日期)。
您可以声明一个参数(在您的日期数据类型的情况下)并使用它来过滤数据。要声明它,请在 Power BI Desktop 中打开报表,转到 Power Query 编辑器
(通过单击功能区中的编辑查询
按钮)并在 中定义一个新参数>管理参数
对话框:
确保参数的数据类型与您的数据类型匹配,即如果您的数据有时间,请定义日期/时间
参数。如果您的数据是Date
,请定义Date
数据类型参数。
然后转到您要过滤的查询,然后单击要过滤的列标题中的按钮。在日期/时间过滤器菜单中选择如何过滤数据,例如获取某个日期或之后的数据:
然后您可以关闭 Power Query 编辑器
并返回到报表。您可以从编辑查询
- 编辑参数
下的下拉列表中更改参数的值。
如果您想避免加载参数默认值的数据,可以将此报告另存为模板(文件
-> 导出
-> Power BI 模板
),然后将此模板发送给您的同事。当他们打开它时,系统将提示他们输入定义参数的值,只有在此之后,报表才会连接到数据源并获取匹配的数据。这意味着,首先,您没有使用 Power BI Online,而是将报表作为文件共享,其次您的同事可以访问数据源以加载数据。
如果您必须将报表发布到 Power BI Online,那么您可以使用完全不同的技术 - 而不是定义参数,pass the filter in the report's URL 。当报告正常加载时(例如,您进入工作区并打开报告),它将显示所有数据(不会被过滤)。不过,您可以为同事准备一个特殊的 URL,方法是将 ?filter=MyTable/DateColumn ge 2019-02-04
附加到您在浏览器地址栏中看到的报告 URL。将 MyTable
替换为您要过滤的表的名称(例如 SalesData
),将 DateColumn
替换为您要过滤的字段的名称过滤器(例如 SalesDate
)。如果这些名称中有空格,you must replace them with _0x0020_
,但如果可能的话,尽量避免它们。之后过滤器定义了 operator用于过滤,例如ge
表示大于或等于
。最后是值(您的情况下的日期)。
您可以制作一个网页,用户可以在其中选择日期,该页面将为您的报告生成适当的 URL。或者,您可以制作另一个报告,其中 URL 被构造为计算列或基于某些条件(例如从切片器中选择日期)的度量,并且用户可以单击 hyperlink ,这将加载实际的报告,但已过滤。
关于powerbi - Power BI - 如何根据参数在 Power BI Web 上获取报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54511253/