We are passing dynamic values to a report from a VF page and the URL is formatted differently. In classic, space is formatted with %20 whereas space if formatted with %2B and because of this a plus sign appearing in the filter value.
Example if there is a word Salesforce Developer, we are getting the value as Salesforce+Developer in lightning. Because of this we are not getting the values in reports.
I have the Sample Data for reference
I have tried passing value to dynamic report like the above example as explained by the user who answered my question. But I'm unable to find out why in classic for the space the valueis given as %20 and in lightning the value is given as %2B. Because of this the value is coming correctly in classic but in lightning a plus is placed between the two words such Salesforce+Developer.
here is the code I have been using
string userNames = '';
String prodPlatform = '';
String profitCode = '';
String mgmtArea = '';
String region = '';
String subRegion = '';
for(integer i=0; i<selectedUser.size(); i++){
userNames += EncodingUtil.URLENCODE(selectedUser[i],'UTF-8');
if(i<selectedUser.size()-1)
userNames += ',';
}
for(integer i=0; i<selectedProductPlatform.size(); i++){
prodPlatform += EncodingUtil.URLENCODE(selectedProductPlatform[i],'UTF-8').replace('+','%20');
if(i<selectedProductPlatform.size()-1)
prodPlatform += ',';
}
for(integer i=0; i<selectedProfitCentre.size(); i++){
profitCode += EncodingUtil.URLENCODE(selectedProfitCentre[i],'UTF-8');
if(i<selectedProfitCentre.size()-1)
profitCode += ',';
}
for(integer i=0; i<selectedMgmtAreaNames.size(); i++){
mgmtArea += EncodingUtil.URLENCODE(selectedMgmtAreaNames[i],'UTF-8');
if(i<selectedMgmtAreaNames.size()-1)
mgmtArea += ',';
}
for(integer i=0; i<selectedRegionNames.size(); i++){
region += EncodingUtil.URLENCODE(selectedRegionNames[i],'UTF-8');
if(i<selectedRegionNames.size()-1)
region += ',';
}
for(integer i=0; i<selectedSubRegionNames.size(); i++){
subRegion += EncodingUtil.URLENCODE(selectedSubRegionNames[i],'UTF-8');
if(i<selectedSubRegionNames.size()-1)
subRegion += ',';
}
String devName = '';
if(selectedUser.contains(''))
devName = selectedCurrency =='USD' ? 'SFI_RevenueStreamSPUnallocated' : 'SFI_RevenueStreamSPUnallocated_E';
else
devName = selectedCurrency =='USD' ? 'SFI_Revenue_Stream_Sales_Performance_Report' : 'SFI_RevenueStreamSalesPerformanceReportE';
List<Report> reportObj = [SELECT Id FROM Report WHERE DeveloperName = :devName];
if(reportObj!=null && reportObj.size()>0){
url +=(UserInfo.getUiThemeDisplayed() == 'Theme3') ? '/' + reportObj[0].Id : '/lightning/r/Report/'+reportObj[0].Id+'/view';
url += (UserInfo.getUiThemeDisplayed() == 'Theme3') ? '?pv0=' + selectedType : '?fv0=' + selectedType;
url += (UserInfo.getUiThemeDisplayed() == 'Theme3') ? '&pv1=' + selectedFY : '&fv1=' + selectedFY;
url += (UserInfo.getUiThemeDisplayed() == 'Theme3') ? '&pv2=' + prodPlatform : '&fv2=' + prodPlatform;
url += (UserInfo.getUiThemeDisplayed() == 'Theme3') ? '&pv3=' + profitCode : '&fv3=' + profitCode;
url += (UserInfo.getUiThemeDisplayed() == 'Theme3') ? (selectedUser.contains('') ? '&pv4=' + mgmtArea + '&pv5=' + region + '&pv6=' + subRegion : '&pv4=' + userNames ) :
(selectedUser.contains('') ? '&fv4=' + mgmtArea + '&fv5=' + region + '&fv6=' + subRegion : '&fv4=' + userNames);
system.debug('url+++'+url);