2

Ich möchte einen Bericht als PDF auf Knopfdruck herunterladen. Aber wenn ich meinen Code debugge. Der Inhalt des Berichts wird nicht abgerufen. Bekomme ich nur eine HTML-DateiBeim Herunterladen von SSRS-Bericht als PDF (per Knopfdruck) in Dynamics 365, Inhalt wird nicht abgerufen

Mein Code:

callingMethod = function() { 
 
debugger; 
 
var params = getReportingSession(); 
 
var newpth = Xrm.Page.context.getClientUrl() + "/Reserved.ReportViewerWebControl.axd?ReportSession=" + params[0] + "&Culture=1033&CultureOverrides=True&UICulture=1033&UICultureOverrides=True&ReportStack=1&ControlID=" + params[1] + "&OpType=Export&FileName=" + reportName + "&ContentDisposition=OnlyHtmlInline&Format=PDF"; 
 
window.open(newpth, "_self"); 
 
} 
 
getReportingSession = function() { 
 
var selectedIds = Xrm.Page.data.entity.getId(); 
 
var reportName = "AccountOverview.rdl"; 
 
var reportGuid = "2b2a692e-7d04-e711-80e6-00155db8652a"; 
 
var pth = Xrm.Page.context.getClientUrl() + "/crmeports/viewer/viewer.aspx"; 
 
var retrieveEntityReq = new XMLHttpRequest; 
 
var fetchXML = "<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("id=%7B" + reportGuid + "%7D&uniquename=" + Xrm.Page.context.getOrgUniqueName() + "&iscustomreport=true&reportnameonsrs=&reportName=" + reportName + "&isScheduledReport=false&p:CRM_AccountID=" + fetchXML); 
 

 
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); 
 
return ret; 
 
}

Screenshot while debugging the code

Antwort

0

In var newpth setzen "ContentDisposition=AlwaysInline". Es sollte funktionieren.

Verwandte Themen