2016-09-16 2 views
3

Мне трудно обернуть голову вокруг разработки визуализации PowerBI с нуля. Я читал wiki, guide, проверяя examples, но все еще чувствую, что есть огромный пробел в понимании того, как он работает внутри - он не «нажимал». (Я понимаю, основы того, как D3 работает так что не слишком беспокоятся о том, что часть)Разработка PowerBI Visuals


Вопрос:

Я надеюсь, что я не прошу слишком много, но может кто-то, используя этот barchart как Например, опубликовать последовательность которых методы визуального источника называются (и как преобразуются данные и передаются), когда:

  • визуальный добавляются к приборной панели в PowerBI,

  • категория и мера присваиваются зрительная,

  • Фильтр данных в изменениях PowerBI, выбран

  • Элемент по нашему обычаю визуальный.

  • Ваш вариант, который вы думаете, может иметь отношение


Я использовал этот конкретный визуальный, как пример, потому что он был упомянут в качестве удовлетворения минимальных требований для содействия новый пользовательский визуальный, который звучит как хорошая отправная точка, source:

Новая Визуальная разработка

Соблюдайте наши минимальные требования для внедрения нового визуального изображения. См. Wiki here.

(ссылка ссылается на BarChart учебник)

Однако, если у вас есть лучший пример визуального - пожалуйста, используйте, что вместо этого.


Это все, что я получил:

enter image description here


Большое спасибо заранее.

ответ

4

У меня также есть некоторые дополнительные и более общие дополнения:

  • питание BI использует в capabilities.json структуру для определения а) то, что должно быть область данных (dataRoles) и как мощность BI связать эти данные зрительного (dataViewMappings) и b) что может отображаться на панели форматирования (например, заполнители).
  • enumerateObjectInstances() - это необязательный метод, который используется Power BI для инициализации панели форматирования. Структура, возвращаемая этим методом, должна быть равна структуре в файле capabilities.json.
  • Метод update() (обязательно) называется, когда что-то меняется относительно вашего изображения. Помимо изменения привязки данных, также изменяется размер визуального или форматированного параметра.
  • метод visualTransform() действительно является внутренним методом и не, который напрямую вызывается Power BI. В случае BarChart он вызывается методом update(), поэтому стрелка верна. Большинство визуальных эффектов имеют какой-то метод и используются для преобразования структуры данных Power BI DataView во внутреннюю структуру (а иногда и в некоторые дополнительные вычисления).
  • Оба constructor и метод update() имеют параметры (опции), которая обеспечивает механизмы обратного вызова к блоку питания BI, как ISelectionManager (через options.host.createSelectionManager()), который изменяет взаимодействие визуально с остальной частью визуальными питания BI.

Структура того, как пользовательские визуальные элементы взаимодействуют с Power BI, не так сильно изменилась с самого начала. Только с новым API взаимодействие и возможности изменились: используется как открытый мир, но теперь он ограничен.

Надеюсь, это поможет вам получить лучший обзор визуального представления Power BI.

-JP

2

Несколько комментариев к вашей графике. Вы, очевидно, используете модель представления (хорошо):

  • После изменения данных, изменения фильтра или изменения объекта (формат на вашем рисунке) вызывается visualTransform(). Данные поступают в нечетные форматы, поэтому потребуется переупаковка (для чего угодно, кроме простого). Это делается здесь, и возвращается объект данных, который определяет разработчик. Я создаю этот объект данных как массив, потому что d3 любит массивы.
  • Затем вызывается update() (я думаю, что ваша стрелка на рисунке здесь неправильная). Это немного сложно, потому что взаимодействие d3 теперь вступает в игру. Если вы использовали d3(), введите (и вы, вероятно, имеете), то это выполняется только один раз, поэтому при последующем обновлении PBI() следуют только инструкции d3() non-enter. Если вы поместите все в d3(), введите любое последующее обновление данных, похоже, не сработает.
  • В качестве альтернативы вы можете d3(). Remove() и перестроить svg для каждого обновления PBI(). Будет ли это практично, будет зависеть от ваших данных и визуального.

Спасибо, что у вас есть трещина при документировании потока. Документация MS очень хромает на данный момент.

+0

Это было полезно, спасибо! Я считаю, что PowerBI все еще находится в тяжелом развитии, и многие вещи все еще меняются - надеюсь, когда он будет установлен в камне, мы получим больше документов :) – user5226582

+0

Причина, по которой я разместил стрелку таким образом, состоит в том, что 'visualTransform()' вызывается изнутри метод 'update()': '... public update (options: VisualUpdateOptions) { let viewModel: BarChartViewModel = visualTransform (options, this.host); ...'. Хотя вы правы, что он технически выполняет перед 'update()', как он вызывается в первой строке. – user5226582

Смежные вопросы