Параметры передачи Power BI для отчета - PullRequest
0 голосов
/ 31 мая 2018

У меня есть отчет Power BI, который имеет несколько параметров, у меня есть требование для встраивания отчета в веб-страницу, и я хотел бы установить эти параметры через URL-адрес для вставки или JavaScript-библиотеку Power BI.Это возможно?По сути, я хотел бы передать некоторые данные со страницы, на которой размещен отчет, в отчет и получить доступ к этим данным в M. Есть ли механизм, позволяющий это сделать?

1 Ответ

0 голосов
/ 12 июля 2019

Вы можете использовать библиотеку javascript для применения фильтров.Предположим, у вас есть отчет PowerBI и некоторые данные о состоянии в таблице с именем «Пример данных с состоянием», в которой есть столбец с именем «Состояние», и вы хотите использовать API JavaScript для фильтрации по значениям состояния.

HTML

<p>
    <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#Parameters" aria-expanded="false" aria-controls="collapseExample">
        Parameters
    </button>
</p>

<div class="collapse" id="Parameters">
    <div class="card card-body">
        <div id="state-picker"></div>
    </div>
    <br/>
</div>

Javascript

report.on ("загружен", функция (событие) {

report.on('loaded', function() {
    report.render();
    populateStatePicker();

    $("#state-picker input").click(setStateFilter);

});

var selectStates = function (states) {

  $("#state-picker input").each(function () {
    var state = $(this).prop('id');
    var selectState = (states.indexOf(state) > -1);
    $(this).prop('checked', selectState);
  });

  setStateFilter();
}


var unselectAllStates = function () {

  $("#state-picker input:checked").each(function () {
    $(this).prop('checked', false);
  });

  setStateFilter();
}

var populateStatePicker = function () {

  var states = ['AK', 'AL', 'AR', 'AZ', 'CA', 'CO', 'CT', 'DE', 'FL', 'GA', 'HI', 'IA', 'ID', 'IL', 'IN', 'KS', 'KY', 'LA', 'MA', 'MD', 'ME', 'MI', 'MN', 'MO', 'MS', 'MT', 'NC', 'ND', 'NE', 'NH', 'NJ', 'NM', 'NV', 'NY', 'OH', 'OK', 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VA', 'VT', 'WA', 'WI', 'WV', 'WY'];

  $("#state-picker").empty();

  for (var index = 0; index < states.length; index++) {
    var state = states[index];
    $("#state-picker")
      .append($("<div>", { class: "state-container" })
        .append($("<input>", { id: state, name: state, type: "checkbox", class: "state-checkbox" }))
        .append($("<label>", { for: state, class: "state-label" }).text(state))
      );
  }
}

var setStateFilter = function () {

  var states = [];
  $("#state-picker input:checked").each(function () {
    states.push($(this).attr("name"));
  });

  if (states.length > 0) {

    const basicStateFilter = {
      $schema: "http://powerbi.com/product/schema#basic",
      target: {
        table: "Sample Data with State",
        column: "State"
      },
      operator: "In",
      values: states
    }

    // apply filter to report
    report.setFilters([basicStateFilter]);
  }
  else {
    report.removeFilters();
  }

};

Это даст вам окно параметров в пользовательском интерфейсе состояниязначения. При нажатии на них отчет PowerBI будет обновлять свои фильтры в зависимости от того, на что вы нажали.

Наслаждайтесь.

...