Forum Discussion
Assistance Required for Resolving URL Character Limit Issue in Paginated Report Hi Team
You're welcome! Below is a step-by-step guide to implementing the concatenation approach in Power BI to resolve the character limit issue in your paginated report.
You're welcome! Below is a step-by-step guide to implementing the concatenation approach in Power BI to resolve the character limit issue in your paginated report.
Step 1: Create a Measure to Concatenate Selected Parameter Values
Since passing long parameter lists via the URL leads to exceeding the 2040-character limit, the first step is to create a DAX measure that dynamically concatenates selected values into a single compact string.
1.1 Create a Measure in Power BI
Navigate to the Data Model and create a new measure in the appropriate table.
Selected_Zones =
IF (
ISFILTERED ( 'Table'[Zone1Wo] ),
CONCATENATEX ( ALLSELECTED ( 'Table'[Zone1Wo] ), 'Table'[Zone1Wo], "," ),
"ALL"
)
If specific values are selected, this measure concatenates them into a single comma-separated string.
If all values are selected, it returns "ALL" instead of passing a long list.
Step 2: Modify the URL Expression in Power BI
After defining the Selected_Zones measure, integrate it into the URL expression used for navigation.
2.1 Define the URL with Concatenated Parameters
Modify the existing expression for the Reject column in the paginated report.
"javascript:void(window.open('" &
Globals!ReportServerUrl &
"?%2fBRS+Singapore%2fPA+Reports%2fTIJ4%2fSGP_Falcon%2fProduction+Reports%2fReject_Pen_summery_yield&rs:Command=Render&rc:Toolbar=False" &
"&StartDate=" & FORMAT( SELECTEDVALUE( Parameters[parstartdate] ), "yyyy-MM-dd" ) &
"&EndDate=" & FORMAT( SELECTEDVALUE( Parameters[parenddate] ), "yyyy-MM-dd" ) &
"&ShiftList=" & CONCATENATEX ( Parameters[parshiftinclude], Parameters[parshiftinclude], "," ) &
"&moduleky=" & MAX( 'Table'[MODULE_DIM_KY] ) &
"&pruntype=" & CONCATENATEX ( Parameters[paruntype], Parameters[paruntype], "," ) &
"&Zone1Wo=" & [Selected_Zones] &
"'))"
2.2 Explanation of the Modifications
The measure [Selected_Zones] replaces the long list of Zone1Wo parameters.
The FORMAT(SELECTEDVALUE(...), "yyyy-MM-dd") ensures date parameters are formatted correctly.
CONCATENATEX(Parameters[parshiftinclude], Parameters[parshiftinclude], ",") ensures shift list values are passed as a single string.
Step 3: Implement Filtering in the Child Report
Since the Zone1Wo values are now passed as a compressed string, the child report must handle this appropriately.
3.1 Create a Virtual Table to Handle Filtering
Create a calculated table in Power BI to hold the selected parameter values.
Filtered_Parameters =
VAR SelectedZones = VALUES ( 'Table'[Zone1Wo] )
RETURN
ADDCOLUMNS (
SelectedZones,
"ParameterString", CONCATENATEX ( SelectedZones, 'Table'[Zone1Wo], "," )
)
This table ensures the selected values are properly structured and can be referenced dynamically.
Step 4: Apply Filtering in the Child Report
Since the child report is receiving a single concatenated string instead of separate parameters, it must parse and filter the dataset accordingly.
4.1 Modify the Child Report Query
In the dataset query for the child report, implement filtering logic.
Filtered_Child_Report =
CALCULATETABLE (
'ChildReportData',
'ChildReportData'[Zone1Wo] IN VALUES ( 'Filtered_Parameters'[Zone1Wo] )
)
This ensures that the report dynamically filters based on the selected values passed from the parent report.
Step 5: Test and Validate
Once the modifications are implemented, thoroughly test the solution:
Select different numbers of values for Zone1Wo in the parent report and ensure they are correctly passed.
Check if selecting "All" results in the "ALL" keyword being passed and correctly interpreted in the child report.
Verify that filtering in the child report is correctly applied based on the received parameters.
Additional Optimization: Handling More Complex Filtering
If more flexibility is required, store selected parameters in a Power Query table instead of passing them directly. This approach avoids URL length constraints entirely.
Example:
Filtered_Table =
VAR SelectedZones = VALUES ( 'Table'[Zone1Wo] )
RETURN
ADDCOLUMNS (
SelectedZones,
"Index", RANKX ( SelectedZones, 'Table'[Zone1Wo], , ASC, DENSE )
)
This indexed table can then be used for more advanced filtering logic in Power BI.
In summary, by concatenating parameter values with CONCATENATEX, the report avoids exceeding the URL character limit while maintaining full functionality. The child report can dynamically filter data using the Filtered_Parameters table, ensuring a seamless reporting experience. If further optimization is needed, leveraging a Power Query approach or indexed table can provide additional flexibility.
Best regards,
Hi DataNinja777 ,
Thank you for your reply.
atually im using a rdl file and ublishing into power bi service. in this case how to deal this .