cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
runrunrun Regular Visitor
Regular Visitor

how to set page & filter to embedded report?

Hi, I want to ask some questions.

first using this guide
https://powerbi.microsoft.com/en-us/documentation/powerbi-developer-integrate-report/

My application already work displaying power bi report

 

How to set the page & filter to that report ?

I'm using this code in my script

function postActionLoadReport() {
                // Construct the push message structure
                var m = {
                    action: "loadReport",
                    accessToken: '@TempData["accessToken"]',
                    oDataFilter: "MyTable/Location eq 'abc'",
                    pageName : 'Page 2'
                };
                message = JSON.stringify(m);
                // push the message.
                iframe = document.getElementById('iFrameEmbedReport');
                iframe.contentWindow.postMessage(message, "*");;
                iframe.contentWindow.print();
            }

but it didn't display the 'Page 2' and no filter selected.

 

And my second question is

how to set multiple filter?, so the report programmatically load the filters

 

PS: I'm new in javascript programming. Any help & references is appreaciated

Thanks.

2 ACCEPTED SOLUTIONS

Accepted Solutions
Community Support Team
Community Support Team

Re: how to set page & filter to embedded report?

@runrunrun,

 

By using the new Power BI JavaScript API, you could set the load configuration properties pageName and filters.

https://github.com/Microsoft/PowerBI-JavaScript/wiki/Embed-Configuration-Details

Community Support Team _ Sam Zha
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
runrunrun Regular Visitor
Regular Visitor

Re: how to set page & filter to embedded report?

Thanks for the solution Sam,

Already tried using this, still can't get it to work. Any working sample without using Azure AD will be helpful.

 

My current work around is concatenating Power BI report filters with ';' as delimiter and 1 page per report.

Still using the same code Smiley Happy

 

  // Post the access token to the IFrame
            function postActionLoadReport() {

                // Construct the push message structure
                var m = {
                    action: "loadReport",
                    accessToken: '@TempData["accessToken"]',
                    oDataFilter: "@Html.Raw(HttpUtility.JavaScriptStringEncode((string)TempData["ReportFilter"].ToString()))",
                    pageName: 'ReportSection1'
                };
                message = JSON.stringify(m);
                // push the message.
                iframe = document.getElementById('iFrameEmbedReport');
                iframe.contentWindow.postMessage(message, "*");;
                iframe.contentWindow.print();
            }
5 REPLIES 5
Sunkari Member
Member

Re: how to set page & filter to embedded report?

Just want to know the answer

alopez Regular Visitor
Regular Visitor

Re: how to set page & filter to embedded report?

following 

Community Support Team
Community Support Team

Re: how to set page & filter to embedded report?

@runrunrun,

 

By using the new Power BI JavaScript API, you could set the load configuration properties pageName and filters.

https://github.com/Microsoft/PowerBI-JavaScript/wiki/Embed-Configuration-Details

Community Support Team _ Sam Zha
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
runrunrun Regular Visitor
Regular Visitor

Re: how to set page & filter to embedded report?

Thanks for the solution Sam,

Already tried using this, still can't get it to work. Any working sample without using Azure AD will be helpful.

 

My current work around is concatenating Power BI report filters with ';' as delimiter and 1 page per report.

Still using the same code Smiley Happy

 

  // Post the access token to the IFrame
            function postActionLoadReport() {

                // Construct the push message structure
                var m = {
                    action: "loadReport",
                    accessToken: '@TempData["accessToken"]',
                    oDataFilter: "@Html.Raw(HttpUtility.JavaScriptStringEncode((string)TempData["ReportFilter"].ToString()))",
                    pageName: 'ReportSection1'
                };
                message = JSON.stringify(m);
                // push the message.
                iframe = document.getElementById('iFrameEmbedReport');
                iframe.contentWindow.postMessage(message, "*");;
                iframe.contentWindow.print();
            }
Gwhiz Frequent Visitor
Frequent Visitor

Re: how to set page & filter to embedded report?

You have to use Power BI service and get the name from the url, it will show as "ReportSectionff84e9ab2bc3f5fb5f74"

 

Then you just plop that into the embeded URL: &pageName=ReportSectionff84e9ab2bc3f5fb5f74 and whalla, they seemed to have changed to a new URL scheme without telling us leaving us clueless when trying to embed only a certain page