Hi friends,
I have one custom report, I want to convert it from rdl to pdf on click of button,
in my case filtering the report is not required so i am not passing current record id still not able to download the report,
I am getting error in this line( retrieveEntityReq.send(query); error name:(failed to load resource, server responded with 404()).
Please help me to resolve the issue.
Thanks,
Bharath
please find the below code.
========================================
var reportName;
var reportGuid;
function reportname() {
var req = new XMLHttpRequest();
req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/reports?$select=name,reportid&$filter=reportid eq E45A4C6C-7F0F-E911-A969-000D3AF2924B", true);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
req.onreadystatechange = function () {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 200) {
var results = JSON.parse(this.response);
for (var i = 0; i < results.value.length; i++) {
reportName = results.value[i]["name"];
alert(reportName);
reportGuid = results.value[i]["reportid"];
alert(reportGuid);
}
} else {
Xrm.Utility.alertDialog(this.statusText);
}
}
};
req.send();
}
function runReportToPrint() {
debugger;
var selectedIds = Xrm.Page.data.entity.getId();
selectedIds = selectedIds.replace('{', '');
selectedIds = selectedIds.replace('}', '');
var i = Xrm.Page.context.getOrgUniqueName();
alert(i);
var pth = Xrm.Page.context.getClientUrl() + "/CRMReports/rsviewer/QuirksReportViewer.aspx";
var query ="id=%7B" + reportGuid + "%7D&uniquename=" + i + "&iscustomreport=true&reportnameonsrs=&reportName=" + reportName + "&isScheduledReport=false";
// var pth = Xrm.Page.context.getClientUrl() + "/CRMReports/rsviewer/reportviewer.aspx";
var retrieveEntityReq = new XMLHttpRequest();
// var strParameterXML = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'><entity name='account'><all-attributes /><filter type='and'><condition attribute='accountid' operator='eq' value='" + selectedIds + "' /> </filter></entity></fetch>";
retrieveEntityReq.open("POST", pth, false);
retrieveEntityReq.setRequestHeader("Accept", "*/*");
retrieveEntityReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
retrieveEntityReq.send(query);
var x = retrieveEntityReq.responseText.lastIndexOf("ReportSession=");
var y = retrieveEntityReq.responseText.lastIndexOf("ControlID=");
var ret = new Array();
ret[0] = retrieveEntityReq.responseText.substr(x + 14, 24);
ret[1] = retrieveEntityReq.responseText.substr(x + 10, 32);
var newPth = Xrm.Page.context.getClientUrl() + "/Reserved.ReportViewerWebControl.axd?ReportSession=" + ret[0] + "&Culture=1033&CultureOverrides=True&UICulture=1033&UICultureOverrides=True&ReportStack=1&ControlID=" + ret[1] + "&OpType=Export&FileName=" + reportName + "&ContentDisposition=OnlyHtmlInline&Format=PDF";
window.open(newPth, "_self");
}






