Опция Download, Print во встроенном отчете PowerBI с Angular7 - PullRequest
0 голосов
/ 31 января 2019

Я создал отчет PowerBI, и он был встроен в мое клиентское приложение angular7 путем регистрации приложения в Azure Active Directory (AAD).Отлично встраивается.Я хочу разрешить загрузку этого встроенного отчета, распечатанного пользователем моего клиентского приложения.Ниже приведен мой код Angulr7 для встраивания отчета PowerBI.

      showReport() {
    // Report's Secured Token
    let accessToken = 'myAccessToken';
    // Embed URL
    let embedUrl = 'embedUrl';
    // Report ID
    let embedReportId = 'embedReportId';
    let config = {
      type: 'report',
      accessToken: accessToken,
      embedUrl: embedUrl,
      id: embedReportId,
      settings: {
        localeSettings: {
          language: "en",
          formatLocale: "es"
        }
      }
    };
    // Grab the reference to the div HTML element that will host the report.
    let reportContainer = <HTMLElement>document.getElementById('reportContainer');
    // Embed the report and display it within the div container.
    let powerbi = new pbi.service.Service(pbi.factories.hpmFactory, pbi.factories.wpmpFactory, pbi.factories.routerFactory);
    let report = powerbi.embed(reportContainer, config);
    var rep = powerbi.get(reportContainer);
    // Report.off removes a given event handler if it exists.
    report.off("loaded");
    // Report.on will add an event handler which prints to Log window.
    report.on("loaded", function () {
      console.log("Loaded");
    });
  }

Как этого добиться?

Ответы [ 2 ]

0 голосов
/ 15 апреля 2019

Я реализовал приведенный ниже код в угловом формате 6

// Импорт powerbi-client

import * as pbi from 'powerbi-client';

// Объявление переменной

let reportPrint;

// Внутрифункция печати

let reportContainer = <HTMLElement>document.getElementById('reportContainer');
let powerbi = new 
pbi.service.Service(pbi.factories.hpmFactory,pbi.factories.wpmpFactory, 
pbi.factories.routerFactory);
this.reportPrint = powerbi.get(reportContainer);

this.reportPrint.print().catch(error => {  
    console.log(error);
});
0 голосов
/ 31 января 2019

Вы можете распечатать отчет, позвонив по номеру report.print():

var element = document.getElementById('#myReport');
var report = powerbi.get(element);

report.print()
  .catch(error => { ... });

См. Распечатать отчет также в официальных документах.Откроется диалоговое окно «Печать», но результат не очень хороший.Обычно с помощью печати вы также можете создать файл PDF, потому что нет способа экспортировать отчет в виде файла (PDF, PowerPoint) с помощью API. SaveAs позволит вам сделать копию отчета в сервисе, а не как файл на локальном диске.

// Get a reference to the embedded report HTML element
var embedContainer = $('#embedContainer')[0];

// Get a reference to the embedded report.
report = powerbi.get(embedContainer);

var saveAsParameters = {
    name: "newReport"
};

// SaveAs report
report.saveAs(saveAsParameters);
...