开发PowerBI Visual

时间:2016-09-16 15:10:12

标签: powerbi

我发现很难从头开始开发PowerBI视觉。我正在阅读wikiguide,正在检查examples,但仍然觉得在理解内部如何运作方面存在巨大差距 - 它没有点击&#39 ;。 (我理解D3如何工作的基础,所以不要太担心那部分)

问题:

我希望我不要求太多,但是有人可以使用这个barchart作为例子,发布一系列视觉源中的方法被调用(以及如何转换数据和通过)时:

  • 视觉效果已添加到PowerBI的信息中心,

  • 将类别和度量分配给视觉

  • PowerBI中的数据过滤器发生了变化,

  • 我们的自定义视觉效果上的元素已被选中。

  • 您认为可能相关的选项

我使用这个特定的视觉效果作为一个例子,因为它被提到满足提供新的自定义视觉的最低要求,这听起来像一个很好的起点,source

  

新视觉发展

     

请遵循我们实施新视觉的最低要求。查看维基here

(该链接引用了条形图教程)

但是,如果您有一个更好的视觉示例 - 请改用它。

这就是我所得到的:

enter image description here

非常感谢提前。

2 个答案:

答案 0 :(得分:8)

我还有一些额外的和更通用的补充:

  • Power BI使用capabilities.json结构来确定 a)应该是什么数据窗格(dataRoles)以及Power BI如何将这些数据绑定到您的视觉({{1 }}和 b)可以在格式化窗格中显示的内容(例如占位符)。
  • dataViewMappings是Power BI用于初始化格式化窗格的可选方法。此方法返回的结构应与enumerateObjectInstances()文件中的结构相同。
  • 当您的视觉效果发生变化时,会调用capabilities.json方法(必需)。除了数据绑定更改外,还可以通过调整视觉大小或格式选项来触发该方法。
  • update()方法确实是一个内部方法,而且不是直接由Power BI调用。在BarChart的情况下,它由visualTransform()方法调用,因此箭头是正确的。大多数视觉效果都有某种方法,它用于将Power BI DataView结构转换为内部结构(有时还需要进行一些额外的计算)。
  • update()constructor方法都有参数(选项),它们为Power BI提供回调机制,例如update()(通过ISelectionManager),这会改变视觉与其他Power BI视觉效果的互动。

自定义视觉效果与Power BI交互的结构从一开始就没有那么大的变化。只有使用新API,交互和可能性才会发生变化:过去是一个开放的世界,但现在它是有限的。

希望这有助于您更好地了解Power BI自定义视觉效果。

-jP

答案 1 :(得分:2)

对您的图片有一些评论。您显然正在使用视图模型(好):

  • 在任何数据更改,过滤器更改或对象更改(图片中的格式)之后,将调用visualTransform()。数据以奇数格式出现,因此需要重新打包(除了简单之外的任何其他内容)。这在这里完成,并返回开发人员定义的数据对象。我将这个数据对象构建为数组,因为d3喜欢数组。
  • 然后调用
  • update()(我认为你的图片中的箭头是错误的方法)。这有点棘手,因为d3交互现在发挥作用。如果你已经使用过d3()。输入(你可能有)那么只执行一次所以在后续的PBI更新()上只有d3()非输入指令。如果您将所有内容放入d3()。输入,那么任何后续数据更新似乎都无法正常工作。
  • 或者你可以在每个PBI更新()上删除d3()。remove()并重建svg。这是否实用将取决于您的数据和视觉。

感谢您在记录流程时遇到困难。 MS文档目前非常蹩脚。