Report generated to PDF ignores parameter
Hello
I run a report in reports-runtime.
At the beginning I'm asked for parameters and then the report will be displayed on screen.
So far so good.
But when I want to generate the report to a pdf-file
( Menue File - Generate to File - PDF)
I get the same parametermask as before, but whatever parameters I use, they will be ignored.
Though when I write them to a boilerplate text they are correctly displayed.
Generating the file without previewing brings a report with the correct number of pages (as I can see in the display of the background engine), but when I try to open it with Acrobat Reader I get the error-message File does not begin with '%PDF-'.
How can I get a correct PDF-report?
Yours
Marcus
Hi
sorry that I forgot to include my environment.
Here are the Versions as described in Report - Help - About:
Report Builder 6.0.5.34.1
ORACLE Server Release 8.0.5.1.0
Oracle Procedure Builder 6.0.7.2.1
Oracle ORACLE PL/SQL V8.0.5.1.0 - Production
Oracle CORE Version 4.0.5.0.0 - Production
Oracle Tools Integration Services 6.0.5.32.0
Oracle Tools Common Area 6.0.5.32.1
Oracle Toolkit 2 for Windows 32-bit platforms 6.0.5.34.1
Resource Object Store 6.0.5.0.0
Oracle Help 6.0.5.34.1
Oracle Sqlmgr 6.0.5.33.0
Oracle Query Builder 6.0.7.0.0 - Production
PL/SQL Editor (c) WinMain Software (www.winmain.com), v1.0 (Production)
Oracle ZRC 6.0.5.24.0
Oracle Express 6.0.5.34.0
Oracle Virtual Graphics System 6.0.5.32.1
Oracle Image 6.0.5.34.0
Oracle Multimedia Widget 6.0.5.34.0
Oracle Tools GUI Utilities 6.0.5.32.0
Oracle8i Enterprise Edition Release 8.1.7.2.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.7.2.0 - 64bit Production
Generating a HTML-file with or without previewing has the same effect as generating a PDF-file (parameters are ignored)
yours
Marcus
Similar Messages
-
Each page of Oracle Report Generates separate pdf file.
I have a problem that i want that oracle report runs for one time and generates sepatate pdf files for each oracle report page.eg. if there are 8 page of report then 8 pdf files should generate (one pdf file for each page) but the condition is that the print job is set to NO and page range should not be given each time.
What version of Reports are you using?
If it's 10g then have a look at Report Bursting as this should enable you to send the report to multiple files based on a repeating group.
Mark -
One page reports generating blank PDFs
We have reports using DESFORMAT=PDF that appear blank if the resulting report is a single page, AND Acrobat 5.0 is configured to display PDF's within the browser.
We are having no problems seeing multiple page reports. And... these 1-page reports display normally when launched outside the browser. Does this problem sound familiar to anyone?
We would like to be able to view these one page PDFs WITHIN the browser to avoid having to show every user how to reconfigure Acrobat.
Any clues on this topic will be helpful, thanks.Jeff, we had the same problem and the only solution we could find that consistently worked was to open the pdf in a separate window.
-
Problems with a report generated as PDF
I am having a problem with my report when it is generated as a PDF file from the reports server. A space is added soon after the letter w in all the words where there is letter w; for example, the word awake appears as aw ke, will appears as w ill, etc. Does anyone know how to fix this problem? I am using Reports 11g. Thanks.
Hi
In layout change the font (Redo font) thru menu option (Not Font) Format -> Font >Western.
This may solve your problem...
user8655468 wrote:
I am having a problem with my report when it is generated as a PDF file from the reports server. A space is added soon after the letter w in all the words where there is letter w; for example, the word awake appears as aw ke, will appears as w ill, etc. Does anyone know how to fix this problem? I am using Reports 11g. Thanks. -
Field error when generated to pdf file
hi all,
please help.
I have an oracle report generated which will show numeric figures out. eg. 500.00
when this report generated to pdf file, the numeric figures field becomes 4835.50.
Does anyone comes across this issue? i checked with my software vendor and they said this is an oracle bug when generating oracle report 6i to pdf file.
Is this true?
Please advise. Appreciate anyone help here.
Best Regards.Hi,
check with this file.
'uifont.ali ' file in "$ORACLE_HOME/guicommon6/tk60/admin " folder.
try with this.
--Basava.S -
Parameter issue - report not generating any pdf files
Hi All,
I'm trying to run a report which generates pdf files. Is there any limitation on the parameter string size? For one of the parameter values - '11F EA Accept nonhonor ASnSOMnSON_20091201090150846' the report is not generating any pdf files. I assumed the reason is of the keyword 'AS' in it and created another parameter value - '11F EA Accept nonhonor AnS-SOM-SON_20091202074331997', but it is also not generating any pdf files. I get this message from Adobe Reader " There was an error opening this document. This file cannot be opened because it has no pages. " The report is working normally when i hardcode the same parameter values into the logic. Any suggestions on this?
Thanks.
Edited by: user1049091 on Dec 2, 2009 9:17 AM
Edited by: user1049091 on Dec 2, 2009 12:37 PMTim,
That report is working normally for all the parameter values, except this one. It is not working only if i pass the value - ''11F EA Accept nonhonor ASnSOMnSON_20091201090150846' as a parameter. It is generating the pdf files when i hardcode the same value into sql query logic in the data template, instead of passing it as a parameter. Please advise.
Thanks. -
Dynamic CRM 2013 Online how to execute Report, generate PDF and email
Dear All,
I am using Dynamic CRM 2013 online. For quote, I have workflow and Dialogue processes for review process. On approval, I want the system to generate a PDF of quote report, attach the PDF and email it to the Customer.
Better I would like, When approver, clicks on the approve button, the system should auto generate a PDF of quote report, attach the PDF and email it to the Customer, without any further input from the user. If its not possible, I may have to put button on
quote form.
I am using the attached code, but facing various issues.
1. Under prepare the SOAP Message coding part, I am not sure what should be the below URL for CRM 2013 Online?
xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
2. What should be the emailid here? Is it Recepient Contact id(Guid) ?
var emailid = resultXml.selectSingleNode("//CreateResult").nodeTypedValue;
alert("emailid" + emailid.toString());
3. Using this code, not able to create Entity for "ActivityMimeAttachment", I am getting newEntity as undefined.
Below is the code I am using. Please check and help me out, where I am going wrong. Let me know if any better way to implement it. At present, I have put one button on quote form, on click event, below code will get executed.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
var Xrm;
if (window.opener) { Xrm = window.opener.Xrm; }
else if (window.parent) { Xrm = window.parent.Xrm; }
function getReportingSession() {
var reportName = "Quotation_Report"; //set this to the report you are trying to download
var reportId = "7C39D18F-1DC6-E311-8986-D89D6765B238"; //set this to the guid of the report you are trying to download
var recordid = Xrm.Page.data.entity.getId();
// recordid = recordid.substring(1, 37); //getting rid of curly brackets
alert(recordid);
var pth = Xrm.Page.context.getServerUrl() + "/CRMReports/rsviewer/reportviewer.aspx";
var retrieveEntityReq = new XMLHttpRequest();
retrieveEntityReq.open("POST", pth, false);
retrieveEntityReq.setRequestHeader("Accept", "*/*");
retrieveEntityReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
retrieveEntityReq.send("id=%7B" + reportId + "%7D&uniquename=" + Xrm.Page.context.getOrgUniqueName() + "&iscustomreport=true&reportnameonsrs=&reportName=" + reportName + "&isScheduledReport=false");
var x = retrieveEntityReq.responseText.indexOf("ReportSession=");
var ret = new Array();
ret[0] = retrieveEntityReq.responseText.substr(x + 14, retrieveEntityReq.responseText.indexOf("&", x) - x - 14); //the session id
x = retrieveEntityReq.responseText.indexOf("ControlID=");
ret[1] = retrieveEntityReq.responseText.substr(x + 10, retrieveEntityReq.responseText.indexOf("&", x) - x - 10); //the control id
return ret;
function createEntity(ent, entName, upd) {
var jsonEntity = JSON.stringify(ent);
var createEntityReq = new XMLHttpRequest();
var ODataPath = Xrm.Page.context.getServerUrl() + "XRMServices/2011/OrganizationData.svc";
createEntityReq.open("POST", ODataPath + "/" + entName + "Set" + upd, false);
createEntityReq.setRequestHeader("Accept", "application/json");
createEntityReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
createEntityReq.send(jsonEntity);
var newEntity = JSON.parse(createEntityReq.responseText).d;
alert("new entity" + newEntity);
return newEntity;
function createAttachment() {
var params = getReportingSession();
var recordid = Xrm.Page.data.entity.getId();
alert("recordid " + recordid);
var orgName = Xrm.Page.context.getOrgUniqueName();
var userID = Xrm.Page.context.getUserId();
//create email record
// Prepare the SOAP message.
var xml = "<?xml version='1.0' encoding='utf-8'?>" +"<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'" +
" xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'" +
" xmlns:xsd='http://www.w3.org/2001/XMLSchema'>" +
"<soap:Header>" +
"</soap:Header>" +
"<soap:Body>" +
"<Create xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>" +
"<entity xsi:type='email'>" +
"<regardingobjectid type='quote'>" + recordid + "</regardingobjectid>" +
"<subject>" + "Email with Attachment4" + "</subject>" +
"</entity>" +
"</Create>" +
"</soap:Body>" +
"</soap:Envelope>";
// Prepare the xmlHttpObject and send the request.
var xHReq = new ActiveXObject("Msxml2.XMLHTTP");
xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
xHReq.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/Create");
xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xHReq.setRequestHeader("Content-Length", xml.length);
xHReq.send(xml);
// Capture the result
var resultXml = xHReq.responseXML;
// alert("resultXml " + resultXml);
// Check for errors.
var errorCount = resultXml.selectNodes('//error').length;
if (errorCount != 0) {
alert("ERROR");
var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
alert(msg);
var emailid = resultXml.selectSingleNode("//CreateResult").nodeTypedValue;
alert("emailid" + emailid.toString());
//var emailid = userID;
var post = Object();
post.Body = encodePdf(params);
var email = new Array();
email[0] =new Object();
email[0].id = emailid;
email[0].entityType ='email';
post.Subject ="File Attachment";
post.AttachmentNumber = 1;
post.FileName ="Report.pdf";
post.MimeType ="application/pdf";
post.ObjectId = Object();
post.ObjectId.LogicalName ="email";
post.ObjectId.Id = email[0].id;
post.ObjectTypeCode ="email";
alert(post.ObjectId.Id);
createEntity(post,"ActivityMimeAttachment", "");
alert("created successfully");
email.Subject = "Your Order";
//Set The current order as the Regarding object
email.RegardingObjectId = {
Id: Xrm.Page.data.entity.getId(), //Get the current entity Id , here OrderId
LogicalName: Xrm.Page.data.entity.getEntityName()//Get the current entity name, here it will be “salesOrder”
//Create Email Activity
SDK.JScriptRESTDataOperations.Create(email, "Email", EmailCallBack, function (error) { alert(error.message); });
// Email Call Back function
function EmailCallBack(result) {
email = result; // Set the email to result to use it later in email attachment for retrieving activity Id
var activityPartyFrom = new Object();
// Set the From party of the ActivityParty to relate an entity with Email From field
activityPartyFrom.PartyId = {
Id: customerId, // id of entity you want to associate this activity with.
LogicalName: "contact"
// Set the "activity" of the ActivityParty
activityPartyFrom.ActivityId = {
Id: result.ActivityId,
LogicalName: "email"
// Now set the participation type that describes the role of the party on the activity).
activityPartyFrom.ParticipationTypeMask = { Value: 2 }; // 2 means ToRecipients
// Create the from ActivityParty for the email
SDK.JScriptRESTDataOperations.Create(activityPartyFrom, "ActivityParty", ActivityPartyFromCallBack, function (error) { alert(error.message); });
var activityPartyTo = new Object();
// Set the From party of the ActivityParty to relate an entity with Email From field
activityPartyTo.PartyId = {
Id: ownerId, // id of entity you want to associate this activity with.
LogicalName: "systemuser"
// Set the "activity" of the ActivityParty
activityPartyTo.ActivityId = {
Id: result.ActivityId,
LogicalName: "email"
// Now set the participation type that describes the role of the party on the activity). activityPartyTo.ParticipationTypeMask = { Value: 1 }; // 1 means Sender
// Create the from ActivityParty
SDK.JScriptRESTDataOperations.Create(activityPartyTo, "ActivityParty", ActivityPartyToCallBack, function (error) { alert(error.message); });
//ActivityParty From Callback
function ActivityPartyFromCallBack(result) {
//ActivityParty To Callback
function ActivityPartyToCallBack(result) {
var StringMaker = function () {
this.parts = [];
this.length = 0;
this.append = function (s) {
this.parts.push(s);
this.length += s.length;
this.prepend = function (s) {
this.parts.unshift(s);
this.length += s.length;
this.toString = function () {
return this.parts.join('');
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function encode64(input) {
var output = new StringMaker();
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
while (i < input.length) {
chr1 = input[i++];
chr2 = input[i++];
chr3 = input[i++];
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
else if (isNaN(chr3)) {
enc4 = 64;
output.append(keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4));
return output.toString();
var bdy = new Array();
var bdyLen = 0;
function concat2Bdy(x) {
bdy[bdyLen] = x;
bdyLen++;
function encodePdf(params) {
bdy = new Array();
bdyLen = 0;
var retrieveEntityReq = new XMLHttpRequest();
var pth = Xrm.Page.context.getServerUrl() + "/Reserved.ReportViewerWebControl.axd?ReportSession=" + params[0] + "&Culture=1033&CultureOverrides=True&UICulture=1033&UICultureOverrides=True&ReportStack=1&ControlID=" + params[1] + "&OpType=Export&FileName=Public&ContentDisposition=OnlyHtmlInline&Format=PDF";
retrieveEntityReq.open("GET", pth, false);
retrieveEntityReq.setRequestHeader("Accept", "*/*");
retrieveEntityReq.send();
BinaryToArray(retrieveEntityReq.responseBody);
return encode64(bdy);
</SCRIPT>
<SCRIPT type=text/vbscript>
Function BinaryToArray(Binary)
Dim i
ReDim byteArray(LenB(Binary))
For i = 1 To LenB(Binary)
byteArray(i-1) = AscB(MidB(Binary, i, 1))
concat2Bdy(AscB(MidB(Binary, i, 1)))
Next
BinaryToArray = byteArray
End Function
</SCRIPT>
</head>
<body>
<input type="button" onclick="createAttachment();" value="Attach Report" />
</body>
</html>
Thanks. and waiting for your valuable comments.
- MittalHello,
Yes, I was able to make my code working as below. Tested on CRM online 2013.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript">
if (typeof (SDK) == "undefined")
{ SDK = { __namespace: true }; }
SDK.JScriptRESTDataOperations = {
_context: function () {
if (typeof GetGlobalContext != "undefined")
{ return GetGlobalContext(); }
else {
if (typeof Xrm != "undefined") {
return Xrm.Page.context;
else { return new Error("Context is not available."); }
_getServerUrl: function () {
var serverUrl = this._context().getServerUrl()
if (serverUrl.match(/\/$/)) {
serverUrl = serverUrl.substring(0, serverUrl.length - 1);
return serverUrl;
_ODataPath: function () {
return this._getServerUrl() + "/XRMServices/2011/OrganizationData.svc/";
_errorHandler: function (req) {
return new Error("Error : " +
req.status + ": " +
req.statusText + ": " +
JSON.parse(req.responseText).error.message.value);
_dateReviver: function (key, value) {
var a;
if (typeof value === 'string') {
a = /Date\(([-+]?\d+)\)/.exec(value);
if (a) {
return new Date(parseInt(value.replace("/Date(", "").replace(")/", ""), 10));
return value;
Create: function (object, type, successCallback, errorCallback) {
var req = new XMLHttpRequest();
req.open("POST", this._ODataPath() + type + "Set", true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
if (this.status == 201) {
successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d);
else {
errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
req.send(JSON.stringify(object));
Retrieve: function (id, type, successCallback, errorCallback) {
var req = new XMLHttpRequest();
req.open("GET", this._ODataPath() + type + "Set(guid'" + id + "')", true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
if (this.status == 200) {
successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d);
else {
errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
req.send();
Update: function (id, object, type, successCallback, errorCallback) {
var req = new XMLHttpRequest();
req.open("POST", this._ODataPath() + type + "Set(guid'" + id + "')", true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("X-HTTP-Method", "MERGE");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
if (this.status == 204 || this.status == 1223) {
successCallback();
else {
errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
req.send(JSON.stringify(object));
Delete: function (id, type, successCallback, errorCallback) {
var req = new XMLHttpRequest();
req.open("POST", this._ODataPath() + type + "Set(guid'" + id + "')", true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("X-HTTP-Method", "DELETE");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
if (this.status == 204 || this.status == 1223) {
successCallback();
else {
errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
req.send();
RetrieveMultiple: function (type, filter, successCallback, errorCallback) {
if (filter != null) {
filter = "?" + filter;
else { filter = ""; }
var req = new XMLHttpRequest();
req.open("GET", this._ODataPath() + type + "Set" + filter, true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
if (this.status == 200) {
successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d.results);
else {
errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
req.send();
__namespace: true
</script>
<script type="text/javascript">
//Create Email and link it with Order as Regarding field
var Xrm;
var email = new Object();
var ownerID = "";
var CustomerId = "";
if (window.opener) { Xrm = window.opener.Xrm; }
else if (window.parent) { Xrm = window.parent.Xrm; }
//Get ownerid who send email of quotation to customer
function GetOwnerID() {
var owner = Xrm.Page.getAttribute("ownerid").getValue();
ownerID = owner[0].id;
var ownerName = owner[0].name;
var entityType = owner[0].entityType;
GetToEmailGUID();
//Get customerid who receive email of quotation from owner
function GetToEmailGUID() {
var Customer = Xrm.Page.getAttribute('customerid').getValue();
CustomerId = Customer[0].id;
var CustomerName = Customer[0].name;
var entityType = Customer[0].entityType;
//if CustomerId is type of "Account" then get Primary Contact id of that account
if (entityType == "account") {
var contact = Xrm.Page.getAttribute("customerid").getValue();
if (contact === null) return;
var serverUrl = Xrm.Page.context.getClientUrl();
var oDataSelect = serverUrl + "/XRMServices/2011/OrganizationData.svc/AccountSet(guid'" + contact[0].id + "')?$select=PrimaryContactId";
var req = new XMLHttpRequest();
req.open("GET", oDataSelect, false);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json;charset=utf-8");
req.onreadystatechange = function () {
if (req.readyState === 4) {
if (req.status === 200) {
var retrieved = JSON.parse(req.responseText).d;
CustomerId = retrieved.PrimaryContactId.Id;
else {
alert(this.statusText);
req.send();
function CreateEmail() {
GetOwnerID();
email.Subject = "Email with Report Attachment";
//Set The current order as the Regarding object
email.RegardingObjectId = {
Id: Xrm.Page.data.entity.getId(), //Get the current entity Id , here OrderId
LogicalName: Xrm.Page.data.entity.getEntityName()//Get the current entity name, here it will be “salesOrder”
//Create Email Activity
SDK.JScriptRESTDataOperations.Create(email, "Email", EmailCallBack, function (error) { alert(error.message); });
// Email Call Back function
function EmailCallBack(result) {
email = result; // Set the email to result to use it later in email attachment for retrieving activity Id
var activityPartyFrom = new Object();
// Set the From party of the ActivityParty to relate an entity with Email From field
activityPartyFrom.PartyId = {
Id: CustomerId, //"79EBDD26-FDBE-E311-8986-D89D6765B238", // id of entity you want to associate this activity with.
LogicalName: "contact"
// Set the "activity" of the ActivityParty
activityPartyFrom.ActivityId = {
Id: result.ActivityId,
LogicalName: "email"
// Now set the participation type that describes the role of the party on the activity).
activityPartyFrom.ParticipationTypeMask = { Value: 2 }; // 2 means ToRecipients
// Create the from ActivityParty for the email
SDK.JScriptRESTDataOperations.Create(activityPartyFrom, "ActivityParty", ActivityPartyFromCallBack, function (error) { alert(error.message); });
var activityPartyTo = new Object();
// Set the From party of the ActivityParty to relate an entity with Email From field
activityPartyTo.PartyId = {
Id: ownerID, //"79EBDD26-FDBE-E311-8986-D89D6765B238", // id of entity you want to associate this activity with.
LogicalName: "systemuser"
// Set the "activity" of the ActivityParty
activityPartyTo.ActivityId = {
Id: result.ActivityId,
LogicalName: "email"
// Now set the participation type that describes the role of the party on the activity).
activityPartyTo.ParticipationTypeMask = { Value: 1 }; // 1 means Sender
// Create the from ActivityParty
SDK.JScriptRESTDataOperations.Create(activityPartyTo, "ActivityParty", ActivityPartyToCallBack, function (error) { alert(error.message); });
//ActivityParty From Callback
function ActivityPartyFromCallBack(result) {
//ActivityParty To Callback
function ActivityPartyToCallBack(result) {
GetReportId('Quotation');
//Create attachment for the created email
function CreateEmailAttachment() {
//get reporting session and use the params to convert a report in PDF
var params = getReportingSession();
//Email attachment parameters
var activitymimeattachment = Object();
activitymimeattachment.ObjectId = Object();
activitymimeattachment.ObjectId.LogicalName = "email";
activitymimeattachment.ObjectId.Id = email.ActivityId;
activitymimeattachment.ObjectTypeCode = "email",
activitymimeattachment.Subject = "File Attachment";
activitymimeattachment.Body = encodePdf(params);
activitymimeattachment.FileName = "Report.pdf";
activitymimeattachment.MimeType = "application/pdf";
//Attachment call
SDK.JScriptRESTDataOperations.Create(activitymimeattachment, "ActivityMimeAttachment", ActivityMimeAttachmentCallBack, function (error) { alert(error.message); });
//ActivityMimeAttachment CallBack function
function ActivityMimeAttachmentCallBack(result) {
var features = "location=no,menubar=no,status=no,toolbar=no,resizable=yes";
var width = "800px";
var height = "600px";
window.open(Xrm.Page.context.getServerUrl() + "main.aspx?etc=" + 4202 + "&pagetype=entityrecord&id=" + email.ActivityId, "_blank", features);
// To open window which works in outlook and IE both
//openStdWin(Xrm.Page.context.getServerUrl() + "main.aspx?etc=" + 4202 + "&pagetype=entityrecord&id=" + email.ActivityId, "_blank", width, height, features);
//This method will get the reportId based on a report name that will be used in getReportingSession() function
function GetReportId(reportName) {
var oDataSetName = "ReportSet";
var columns = "ReportId";
var filter = "Name eq '" + reportName + "'";
retrieveMultiple(oDataSetName, columns, filter, onSuccess);
function retrieveMultiple(odataSetName, select, filter, successCallback) {
var serverUrl = Xrm.Page.context.getServerUrl();
var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
var odataUri = serverUrl + ODATA_ENDPOINT + "/" + odataSetName + "?";
if (select) {
odataUri += "$select=" + select + "&";
if (filter) {
odataUri += "$filter=" + filter;
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: odataUri,
beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("Accept", "application/json");
success: function (data) {
if (successCallback) {
if (data && data.d && data.d.results) {
successCallback(data.d.results);
else if (data && data.d) {
successCallback(data.d);
else {
successCallback(data);
error: function (XmlHttpRequest, errorThrown) {
if (XmlHttpRequest && XmlHttpRequest.responseText) {
alert("Error while retrieval ; Error – " + XmlHttpRequest.responseText);
function onSuccess(data) {
reportId = data[0].ReportId.replace('{', ").replace('}', ");
CreateEmailAttachment(); // Create Email Attachment
//Gets the report contents
function getReportingSession() {
var pth = Xrm.Page.context.getServerUrl() + "/CRMReports/rsviewer/reportviewer.aspx";
var retrieveEntityReq = new XMLHttpRequest();
var Id = Xrm.Page.data.entity.getId();
var quotationGUID = Id.replace('{', ""); //set this to selected quotation GUID
quotationGUID = quotationGUID.replace('}', "");
var reportName = "Quotation"; //set this to the report you are trying to download
var reportID = "7C39D18F-1DC6-E311-8986-D89D6765B238"; //set this to the guid of the report you are trying to download
var rptPathString = ""; //set this to the CRMF_Filtered parameter
var strParameterXML = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'><entity name='quote'><all-attributes /><filter type='and'><condition attribute='quoteid' operator='eq' uitype='quote' value='" + quotationGUID + "' /> </filter></entity></fetch>";
retrieveEntityReq.open("POST", pth, false);
retrieveEntityReq.setRequestHeader("Accept", "*/*");
retrieveEntityReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
rptPathString = "id=%7B" + reportID + "%7D&uniquename=" + Xrm.Page.context.getOrgUniqueName() + "&iscustomreport=true&reportnameonsrs=&reportName=" +
reportName + "&isScheduledReport=false&p:CRMAF_Filteredquote=" + strParameterXML;
//remove the part starting from &p:salesorderid if your report has no parameters
retrieveEntityReq.send(rptPathString);
var x = retrieveEntityReq.responseText.indexOf("ReportSession=");
var ret = new Array();
ret[0] = retrieveEntityReq.responseText.substr(x + 14, retrieveEntityReq.responseText.indexOf("&", x) - x - 14); //the session id
x = retrieveEntityReq.responseText.indexOf("ControlID=");
ret[1] = retrieveEntityReq.responseText.substr(x + 10, retrieveEntityReq.responseText.indexOf("&", x) - x - 10); //the control id
return ret;
var bdy = new Array();
var bdyLen = 0;
function concat2Bdy(x) {
bdy[bdyLen] = x;
bdyLen++;
function encodePdf(params) {
bdy = new Array();
bdyLen = 0;
var retrieveEntityReq = new XMLHttpRequest();
var pth = Xrm.Page.context.getServerUrl() + "/Reserved.ReportViewerWebControl.axd?ReportSession=" + params[0] +
"&Culture=1033&CultureOverrides=True&UICulture=1033&UICultureOverrides=True&ReportStack=1&ControlID=" + params[1] +
"&OpType=Export&FileName=Public&ContentDisposition=OnlyHtmlInline&Format=PDF";
retrieveEntityReq.open("GET", pth, false);
retrieveEntityReq.setRequestHeader("Accept", "*/*");
retrieveEntityReq.send();
BinaryToArray(retrieveEntityReq.responseBody);
return encode64(bdy);
var StringMaker = function () {
this.parts = [];
this.length = 0;
this.append = function (s) {
this.parts.push(s);
this.length += s.length;
this.prepend = function (s) {
this.parts.unshift(s);
this.length += s.length;
this.toString = function () {
return this.parts.join('');
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function encode64(input) {
var output = new StringMaker();
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
while (i < input.length) {
chr1 = input[i++];
chr2 = input[i++];
chr3 = input[i++];
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
output.append(keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4));
return output.toString();
</script>
<script type="text/vbscript">
Function BinaryToArray(Binary)
Dim i
ReDim byteArray(LenB(Binary))
For i = 1 To LenB(Binary)
byteArray(i-1) = AscB(MidB(Binary, i, 1))
concat2Bdy(AscB(MidB(Binary, i, 1)))
Next
BinaryToArray = byteArray
End Function
</script>
</head>
<body>
<input type="button" onclick="CreateEmail();" value="Attach Report" />
</body>
</html>
Thank you,
Mittal. -
Generate Report from SQL Query with Parameter
I have a web application that needs to generate static PDF reports. What I want to do is:
1. Use Acrobat to create a form
2. Open the form programmatically on the webserver
3. Pass it a parameter such as a "clientID"
4. Automatically populate the rest of the form using a SQL stored procedure with the clientID as the parameter
5. Save the form as a static, non-editable PDF and display it for the client to either view/save/print
Example:
Database would contain a table called Clients
ID LastName Location Phone
1 Doe New York 111-111-1111
2 Smith California 222-222-2222
Stored Procedure
CREATE PROCEDURE GetClient
@id int
AS
SELECT LastName, Location FROM Clients WHERE ID = @id
GO
Acrobat Form
Last Name: [txtLastName]
Location: [txtLocation]
Website user requests report for clientID=1. Result is a PDF that looks like this:
Last Name: Doe
Location: New York
I am very new to Acrobat, so please explain in detail how I can go about doing this. Thanks very much in advance.Good morning. Did you find a solution to your problem? I'm looking for something to do the same for a from created in Live Cycle 7.0. If you can share some information or examples, I would greatly appreciate it.
Thanks
Ernest -
Automatically generating multiple pdf reports from single(*.rpt) report file
Post Author: msam
CA Forum: General
I would like to be able to automatically pass a parameter list to a single report, and have it automatically generate multiple reports (as saved pdf files), based on the parameter list.
Is this possible? If so, could someone point me to some documentation? Thanks.What you probably need to do is generate each bio
individually with the
<cfdocument...> tag just the way you want them. And
then use some of
the advanced <cfpdf...> functionality that allows you
to append two or
more individual PDF's into a single large PDF.
Here are some resources that describe some of the
<cfpdf...> functionality.
http://www.coldfusionjedi.com/index.cfm/2007/7/9/ColdFusion-8-Working-with-PDFs-Part-1
http://www.coldfusionjedi.com/index.cfm/2007/7/10/ColdFusion-8-Working-with-PDFs-Part-2
http://cfpdf.blogspot.com/
http://cfpdf.blogspot.com/2007/06/cfpdf-action-merge_27.html
http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=cfpdf_02.html -
Crystal Report generate PDF with J2EE problem
Dear All
I am having a great problem on generating PDF file by Crystal Report in J2EE.
I have my J2EE application runs Crystal Report to generate PDF files.
However for a report, i hit the following error (red color) when the PDF is generating.
But is no problem for the other reports.
Here is the code that i used to generate the PDF
My OS and Java version as follows
Window 2003 server.
Java 1.4.2_04
Please Kindly Help
Thanks very much
public static void export(HttpServletRequest request, HttpServletResponse response, String reportPath, ArrayList paramList, ReportExportFormat outFormat) throws Exception{
System.gc();
HttpSession session = request.getSession(false);
Object reportSource = getReportSource(request, reportPath);
ReportExportControl exportControl = new ReportExportControl();
if(paramList != null && paramList.size()>0){
exportControl.setParameterFields(getParamFields(paramList));
ExportOptions exportOptions = new ExportOptions();
exportOptions.setExportFormatType(outFormat);
PDFExportFormatOptions pdfexpopts = new PDFExportFormatOptions();
exportOptions.setFormatOptions(pdfexpopts);
exportControl.setReportSource(reportSource);
exportControl.setExportOptions(exportOptions);
exportControl.processHttpRequest(request, response, session.getServletContext(), null);
exportControl.dispose();
public static IReportSource getReportSource(HttpServletRequest request, String reportPath) throws Exception{
ReportClientDocument oReportClientDocument = new ReportClientDocument();
HttpSession session = request.getSession(false);
oReportClientDocument.open(reportPath, 0);
return oReportClientDocument.getReportSource();
00:57:08,671 ERROR reportdefinition Thread-28 - Report printer was not valid, switching to default printer.
00:57:08,687 ERROR objectformatter Thread-28 - com.crystaldecisions.reports.dataengine.k: |Y
00:57:09,343 ERROR b Thread-28 - Disk Exporter: no output file was created by an exporter
00:57:09,343 ERROR b Thread-28 - PdfExporter: caught Exception in PDFFormatter.finalizeFormatJob (from destination?); java.lang.IllegalArgumentExceptionHi,
I have tried this code but stil the same.
However i tried setup another tomcat and application in the other machine and the only job for the application is exporting the report that has problem, then the error is gone.
So i guess that is the memory size problem.
Thanks for this
One more question about the memory size between Tomcat and Crystal report.
I have set in catalina.bat as
set JAVA_OPTS = "-Xms2048M -Xmx1024M"
and CRConfig as
<JVMMaxHeap>1024000000</JVMMaxHeap>
<JVMMinHeap>512000000</JVMMinHeap>
1. Is that the correct setting.?
2. The memory in the JAVA_OPT and is the MAX and MIN memory that java would use,
then is the Max memory in CRConf is 1024M out of the java heap size or the application use another 1024 memory -
XML Publisher Report not generating the PDF output.
Hi,
I am trying to develop a XML Publisher Report in R12 Vision Instance.
I have developed the rdf report and concurrent program with XML as output format. Ran the concurrent program and I got the XML output. Based on XML output I have created the rtf template. Using both the template and xml output I have created in Data Definition and Template in XML Publisher Administrator Responsibility. Now I am comming to the concurrent program and running the program, here instead of generating the PDF output it is generating again the XML output and concurrent program completing with warning status.
When I am trying to do the same in 11i Vision Instance, Concurrent Program completing with normal status and when trying to view the output it is saying "Unable to Publish output for the Processed Request".
Kindly please help me out in this issue.
Thanks,
Manasa.Hi Mahesh,
Here the concurrent programs are not erroring out. It is completing with Warning status and when we click on View Output the output is coming in XML format instead of PDF, this is in R12 Vision Instance.
In 11i Vision Instance, concurrent program is completing with Normal Status but when we click on View Output it is saying "Unable to Publish output for specified request".
Thanks,
Manasa. -
Report ignoring parameter value from Crystals own dialog box
Hi,
Iu2019m using VB 2008, Crystal 2008 SP1. Iu2019m not embedding the reports, simply opening the .rpt file from an OpenFileDialog and using the below code. Very basic stuff. The report itself has 1 SQL table in it and 1 parameter.
Dim report As New CrystalDecisions.CrystalReports.Engine.ReportDocument
report.Load(mReportFile, CrystalDecisions.Shared.OpenReportMethod.OpenReportByDefault)
crvMain.ReportSource = report
crvMain.RefreshReport()
Yet the parameter thatu2019s used as a record selection is ignored and all the records are shown. I canu2019t see whatu2019s missing here. The .rpt file works fine in Crystal 2008, just not in the viewer, even when i debug. Iu2019ve found a crystal viewer FOC (SaberLogic Logicity) based on 2008, where the .rpt file works. Iu2019m thinking it must be a vb.net coding error or omission in my project.Hello,
There are two things I can see.
The first is a known issue described in the [Note 1204895|https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes_boj/sdn_oss_boj_erq/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/scn_bosap/notes.do].
The second is the line "crvMain.ReportSource = report" will preview the report.
The line "crvMain.RefreshReport()" just refreshes it and would require parameters again.
Elaine -
Storing oracle-reports generated pdf-report onto a blob
Hey ppl,
I have this requirement:
I basically generate a report from Jdev using a remote servlet call to oracle reports, which very neatly generates the pdf document for me and stores it locally. The problem is immediately storing this onto the DB as a blob once the report is generated. I know how to store the pdf as a blob onto the DB. I know how to make the call to oracle-reports and generate my pdf. What I don't know is to sequentially first generate the local pdf report and only once that has been generated proceed to store it onto my DB.
I want it to be done within the scope of a single request. As in, the entire process should be complete through one cycle. I don't want to keep a day end sort of procedure that inserts into the db at the end of the day.
As soon as the report has been requested by the user, I want the pdf file(which is generated by the reports) to also be stored onto the DB.
My problem (which i apologize has been repeated already 2wice above) is that I basically lose control once redirected through the servlet to the report call. There is no way i can instruct Jdev, from the reports side, that the pdf has been generated and now has to be stored onto the DB, as i have lost the session context by redirecting to a different servlet.
Any help would be GREATLY appreciated.
Cheers
KHi,
its quite some time ago that I a looked Oracle Reports, however, I think that the event mechanism is quite complex to achieve
I want it to be done within the scope of a single request.
Which means that if Oracle Reports hangs, the user session follows.
As in, the entire process should be complete through one cycle.
Unfortunately you don't control how long reports run, which means that there is no sense in stopping the page lifecycle for this
I don't want to keep a day end sort of procedure that inserts into the db at the end of the day.
Fair enough, but as far as I remember there is an eventing in Reports that would allow you to have the Oracle Reports Server triggering the upload
So I think, the architecture I would go for is:
- user requests report
- report generates PDF output
- reports uploads to DB
- reports_processing table holds user ID and reports ID plus flag to update when report is done
- If using JSF, you could use af:poll to check frequently for the report to be finished.
This here may help: http://www.oracle.com/technology/documentation/reports.html
Frank -
How to generate a report direct in PDF with oracle developer 6i
hi all
Please help me about this issue.
THAT How to generate a report directly in PDF using oracle developer 6i.
Regards
Yousuf Ahmed SiddiquiHi,
You can create the Report directly in PDF by setting some of the Report Parameters
i.e. DESTYPE, DESNAME AND DESFORMAT as follows before calling the Report.
DECLARE
PL_ID PARAMLIST;
PL_NAME VARCHAR2(10) := 'param_list';
BEGIN
PL_ID := GET_PARAMETER_LIST (PL_NAME);
IF NOT ID_NULL (PL_ID) THEN
Destroy_Parameter_List(PL_ID);
END IF;
PL_ID := Create_Parameter_List(PL_NAME);
Add_Parameter (PL_ID, 'DESTYPE', TEXT_PARAMETER, 'FILE');
Add_Parameter (PL_ID, 'DESNAME', TEXT_PARAMETER, 'c:\test.pdf');
Add_Parameter (PL_ID, 'DESFORMAT', TEXT_PARAMETER, 'PDF');
RUN_PRODUCT (REPORTS, 'REPORT_NAME', ASYNCHRONOUS, RUNTIME, FILESYSTEM, PL_ID, NULL);
END;Hope this helps.
Best Regards
Arif Khadas
Edited by: Arif Khadas on Apr 22, 2010 9:24 AM -
How to generate a PDF Report to print all records
Hi,
I have two fields on the page
1.Id
2.year
both are select list.
When Id and year is selected from the list a pdf report is generated showing the details of that particular ID.
I want to generate a pdf report for all Id's for a particular year rather than selecting each Id.
How to do it?
thanks,
Ven.Ven,
Your where clause should look something like this:
AND ( :px_id = '%null%'
OR id_code LIKE '%' || :px_id|| '%'
Your LOV for the id item should have Yes selected on Display Null and Null display value should have something like -- All Ids --
Jeff
Maybe you are looking for
-
Creation of PO with reference to RFQ/Quotation
Hi , If we create PO w.r.t RFQ/ Quotation, can we see PR number in PO. Thanks and regards Udaya
-
How to disable refresh button in webi reports in BOXI3.1SP2-Java SDK
Hi all, We have integrated Java with BO, here end users will give parameters through java screen. After submitting all the parameters webi reports will opens in separate window. Here requirement is end users should pass the parameters from java scree
-
Load Balancing multiple web servers
Hi All: I need to load balance 2 different web servers using sticky connections on a LocalDirector 416. I need to use cookie-passive mode, which of course relies on a cookie set by the web server. Problem: The name of the session cookie is different
-
Buttons on top of full-screen pan
How to create buttons on top of a full-screen pan? I created buttons to navigate to the next an previous page and are inside an MSO, but the buttons don't work.
-
My Mail "replies" won't go out
When I try to reply to an email message on my phone I get the error: Cannot Send Mail A copy has been placed in your Outbox. The recipient "whateveremailaddress" was rejected by the server because it does not allow relaying. I used to be able to do