Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
sivakar7
Frequent Visitor

How to pass a parameter from Angular powerBI client to report to get the subset of data

Hi,

We have Embeded the PowerBI report in Angular application using PowerBI Client and AppOwns data. Now I need to pass a parameter from Angular UI for example Id=100 to the report to get only those matching rows. I have tested few examples nothing worked. Pls point me to any article or example.

 

Thanks in advance.

1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi @sivakar7 ,

Please review the following links, hope they can help you.

How to embed Power BI content in an Angular app | Microsoft Learn

Use filters in a Power BI embedded analytics report | Microsoft Learn

In addition, you can follow the steps below to get it:

1. Ensure you have the Power BI Client installed in your Angular project.

 

 npm install powerbi-client

 

2. Embed the report with the filters

 

import { Component, OnInit } from '@angular/core';
   import * as pbi from 'powerbi-client';
   @Component({
     selector: 'app-powerbi-report',
     templateUrl: './powerbi-report.component.html',
     styleUrls: ['./powerbi-report.component.css']
   })
   export class PowerbiReportComponent implements OnInit {

     constructor() {}

     ngOnInit() {
       this.embedReport();
     }

     embedReport() {
       const embedContainer = document.getElementById('embedContainer');

       const reportConfig = {
         type: 'report',
         tokenType: pbi.models.TokenType.Embed,
         accessToken: 'YOUR_EMBED_TOKEN',
         embedUrl: 'YOUR_EMBED_URL',
         id: 'YOUR_REPORT_ID',
         permissions: pbi.models.Permissions.All,
         settings: {
           filterPaneEnabled: false,
           navContentPaneEnabled: false
         }
       };

       const powerbi = new pbi.service.Service(
         pbi.factories.hpmFactory,
         pbi.factories.wpmpFactory,
         pbi.factories.routerFactory
       );

       const report = powerbi.embed(embedContainer, reportConfig);

       // Apply a filter when the report is loaded
       report.on('loaded', () => {
         this.applyFilter(report, 100); // Pass the ID or parameter you need
       });
     }

     applyFilter(report, id) {
       const filter = {
         $schema: 'http://powerbi.com/product/schema#basic',
         target: {
           table: 'YourTableName',
           column: 'YourColumnName'
         },
         operator: 'In',
         values: [id]
       };

       report.updateFilters(pbi.models.FiltersOperations.Replace, [filter])
         .then(result => {
           console.log('Filter applied successfully');
         })
         .catch(error => {
           console.error('Error applying filter', error);
         });
     }
   }

 

Best Regards

View solution in original post

3 REPLIES 3
sivakar7
Frequent Visitor

HIi@Anonymous ,

 

Thank you. Control filters worked for my requirement.

sivakar7
Frequent Visitor

Thank you @Anonymous . Control report filters(Use filters in a Power BI embedded analytics report | Microsoft Learn) helped my requirement.

Anonymous
Not applicable

Hi @sivakar7 ,

Please review the following links, hope they can help you.

How to embed Power BI content in an Angular app | Microsoft Learn

Use filters in a Power BI embedded analytics report | Microsoft Learn

In addition, you can follow the steps below to get it:

1. Ensure you have the Power BI Client installed in your Angular project.

 

 npm install powerbi-client

 

2. Embed the report with the filters

 

import { Component, OnInit } from '@angular/core';
   import * as pbi from 'powerbi-client';
   @Component({
     selector: 'app-powerbi-report',
     templateUrl: './powerbi-report.component.html',
     styleUrls: ['./powerbi-report.component.css']
   })
   export class PowerbiReportComponent implements OnInit {

     constructor() {}

     ngOnInit() {
       this.embedReport();
     }

     embedReport() {
       const embedContainer = document.getElementById('embedContainer');

       const reportConfig = {
         type: 'report',
         tokenType: pbi.models.TokenType.Embed,
         accessToken: 'YOUR_EMBED_TOKEN',
         embedUrl: 'YOUR_EMBED_URL',
         id: 'YOUR_REPORT_ID',
         permissions: pbi.models.Permissions.All,
         settings: {
           filterPaneEnabled: false,
           navContentPaneEnabled: false
         }
       };

       const powerbi = new pbi.service.Service(
         pbi.factories.hpmFactory,
         pbi.factories.wpmpFactory,
         pbi.factories.routerFactory
       );

       const report = powerbi.embed(embedContainer, reportConfig);

       // Apply a filter when the report is loaded
       report.on('loaded', () => {
         this.applyFilter(report, 100); // Pass the ID or parameter you need
       });
     }

     applyFilter(report, id) {
       const filter = {
         $schema: 'http://powerbi.com/product/schema#basic',
         target: {
           table: 'YourTableName',
           column: 'YourColumnName'
         },
         operator: 'In',
         values: [id]
       };

       report.updateFilters(pbi.models.FiltersOperations.Replace, [filter])
         .then(result => {
           console.log('Filter applied successfully');
         })
         .catch(error => {
           console.error('Error applying filter', error);
         });
     }
   }

 

Best Regards

Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

Check out the October 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.