- Вы можете установить или использовать библиотеку power bi или файл javascript на свое усмотрение.
- Я покажу вам файл javascriptjs, который вы должны сохранить в папке с ресурсами после того, как поместите этот путь в свой файл angular.json под
"script":[]путем, напримерsrc/assets/powerbi/powerbi.min.jsили вы можете использовать непосредственно в файле index.html под тегомbody. - И другой способ, который вы можете использовать в файле компонента отчета ts, поместите код ниже в
constructor{}
this.addJsToElement('https://rawgit.com/Microsoft/PowerBI-JavaScript/master/dist/powerbi.min.js').onload = (powerbi) => {
console.log('powerbi => ', powerbi);
}
4. после этого создайте новый метод с методом addJsToElement, показанным ниже.
addJsToElement(src: string): HTMLScriptElement {
const script = document.createElement('script');
script.type = 'text/javascript';
script.src = src;
this.renderer.appendChild(document.body, script);
return script;
}
5. После этого импортируйте Renderer2 из @angular/core и добавьте ссылку на переменную под constructor(private renderer: Renderer2){ }.
6. После этого сделайте один div в файле компонента отчета html и присвойте этому div id .
Вот пример:
<div style=" width: 100%;" id="reportContainer"></div>
7. Отсюда начинается основная часть для отображения отчета, у вас есть некоторый параметр для отображения некоторых отчетов.
так что вы должны сохранить accesstoken , embedURL , reportID .
8. После создания одного метода, этот метод будет выполняться при нажатии кнопки
var accessToken = token;
var embedUrl = EmbeddedURL;
var embedReportId = reportID;
var models = window['powerbi-client'].models;
var config = {
type: 'report',
tokenType: models.TokenType.Embed,
accessToken: accessToken,
embedUrl: embedUrl,
id: embedReportId,
permissions: models.Permissions.All,
settings: {
filterPaneEnabled: true,
navContentPaneEnabled: true
}
};
var reportContainer = $('#reportContainer')[0];
var report = powerbi.embed(reportContainer, config);
9. После того, как вы увидите, что отчет генерируется при нажатии кнопки с accesstoken , embedURL , reportID .