PDFs and iweb
I have PDF files of articles that I'd like to include on our iWeb site.
I tried Old Toad's and Wyodors iframe box - but in IE8 the buttons to download and zoom etc does not work...
I have tried as a link - but lose the security of the PDF (they can be edited - ie our credit information such as author's name can be edited out)
I've tried saving to iwork - but the files get stuck- I think they are large around 6MB
Can anyone tell me how to provide a PDF that remains secure please?
Old Toads stuff would be great if it worked in IE - but a large number of our customers and potential customers are IE users
OT - that is exactly what I did but if the PDF is able to be copied and edited this can easily be removed...
I have (sort of) solved the problem - if you send the file from pages to iWeb it loses the security feature... If I upload the file into idisk and then link it keeps it's security.... BUT google is now off my site if it follows that link and I lose linking to the text by search engines.
Your scrolling text box is perfect BUT does not work on IE(a large number of our potential customers).
I was hoping someone might have a similar text box that would work in IE...
The current solution is to have a static link and and image of the first page as a link (just for the looks & the static link is for the less computer minded to use) AND your scroll box for those with a real browser (I had spare real estate atm may remove that later)
See here for a look at what I mean http://www.yourskicoach.com/YourSkiCoach/SayingGoodbye_toFear.html
Similar Messages
-
Can I create a fillable form in Pages and then PDF to iWeb?
I'm a teacher and I'd like to be able to upload some PDF documents for my students to download, but would LOVE it if I could make sections of the document available for them to fill out answers, so they could, in turn, save as PDF and send back to me!
Is this possible?
I know how to get the documents into iWeb and that is working fantastic.
But I don't know how to create an area on a page that students can write in. Do I have to maybe do the whole thing in PDF Writer (never used it but have heard that it might have that capability).
THANK YOU!
--MacMeg in Neverlandtreivisone wrote:
But my problem is that i want to export my Pages' page directly to iweb to put it as a podcast. I'm working for an association that wishes to make all the content on itunes...
Ummm.... I know a lot about podcasting, but to my knowledge there is not a way to "embed" a document in a podcast episode. The XML specifications do not do that. However, in the content of an "enhanced" podcast, you can link to a document which can be downloaded while "viewing" the podcast. For an example of that, see my podcast episode:
http://spot.pcc.edu/~dleighto/podcasts/psy201a/episode20080117133153-0800.m4b
If you go to about 29:30 in the podcast, and have opened the artwork/video viewer, you will see a link at the bottom of the viewer pane to download the file. That file, however, is stored separately from the podcast episode. In iWeb, you would set that file up on a downloads page. Then in the podcast episode, you specify the path to access the file. When the user clicks on the link in the viewer, it downloads the file.
Is that what you want to do? -
Can I display a multipage .pdf in iWeb or do I have to make it a .mov
Here's an example using Google Docs...
http://www.iwebformusicians.com/Website-Email-Marketing/Google-Doc-Viewer.html
If you are using Keynote to create the doc you can export as HTML and display it in an iframe...
http://www.iwebformusicians.com/Website-Email-Marketing/PDF.html
http://www.iwebformusicians.com/Website-Email-Marketing/HTML-iFrame.html -
iPad no longer reads PDFs from iWeb site like it did in mid April offering to read PDF in iBooks.
How to Transfer Everything from an Old iPad to New iPad
http://osxdaily.com/2012/03/16/transfer-old-ipad-to-new-ipad/
iOS: Transferring information from your current iPhone, iPad, or iPod touch to a new device
http://support.apple.com/kb/HT2109
Moving Content to a New iPad
http://tinyurl.com/qzk2a26
How to Transfer App Data and Game Saves from One iOS Device to Another
http://lifehacker.com/5891964/can-i-transfer-app-data-and-game-saves-from-my-iph one-to-a-new-ipad
How to transfer data from your old iPad to your new iPad
http://www.imore.com/how-transfer-data-your-old-ipad-your-new-ipad-air-or-retina -ipad-mini
Transferring your prepaid cellular data account depends on your carrier. AT&T lets you move it yourself when you go to Cellular Data in Settings and log into your account with your previous AT&T user name and password. For iPads with Sprint service, you can set up an account on the new iPad and contact Sprint Customer Care (888-211-4727 and go through the menus) to deactivate the old plan and get credit for unused service. For Verizon, call the company’s customer service number for mobile broadband support (800-786-8419) and ask to have your account transferred.
Cheers, Tom -
What is the best way to post PDFs in iWeb?
What is the best way to publish PDFs in iweb so that visitors can open the document, rint and/or save the document?
jb ~ Welcome to the Support Communities. Rather than creating a new, almost identical thread to correct a typo, you can edit your post within 15 minutes:
...Each edit re-starts your 15 minute window for re-editing. -
Jasper report for pdf and html
Hi friends I am Gopi
I am doing project in servlet and jasperreport in tomcat.
I save my path jasperreport for Html and Pdf reports.
when i click the jsp button Export to pdf and Export to Html,
I need to open this files in new pdf application and new browser window .
if(pdf1.equals("html"))
JasperExportManager.exportReportToHtmlFile(jasperPrint, path +"\\" + reportName + ".html");
exporter = new JRHtmlExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
exporter.exportReport();
if(pdf1.equals("pdf"))
System.out.println("PDF");
response.setContentType("application/pdf");
JasperExportManager.exportReportToPdfFile(jasperPrint,path +"\\" + reportName + ".pdf");
exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
exporter.exportReport();
pls help me...gopikannang wrote:
when i click the jsp button Export to pdf and Export to Html,
I need to open this files in new pdf application and new browser window . Use the target attribute of the <form> or the <a> element which opens the PDF file. Set its value to "_blank".
Learn HTML. There is a nice tutorial at w3schools.com and a good specification at w3.org. -
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. -
HELP: I need to link a PDF within PDF and be able to open and return to original PDF
I have a master PDF and have attached 7 supplemental PDF documents. I created "click here" icons and used the steps below so that the linked document would open. The problem is, once I open the supplemental PDF, it closes the original master. I would like to close the linked document and return to the master view. Is there a way to do this?
Or is there a way to do this from InDesign? I created master file in InDesign and exported as an Interactive PDF. I created the buttons and linked them to external files. This works great as long as the master PDF and the links are all in one file, but that is a pain to send to a viewer. Ideally, I want to be able to send the master PDF to a viewer and not have to send a links folder. Is there a way to embed the supplemental PDFs into the master so that they are all combined into one file AND have the ability to use buttons to call up one of the attachments, close, and return to the original?
Thanks in advance!!I want to do the same thing that the original poster of this question wants to do. I haven't worked extensively with Acrobat so am finding by trial and error the several ways PDFs within PDFs can be accomplished. I'm using a trial version of Acrobat Pro X and have experimented with three options.
1 - I've created a Portfolio and am impressed with what that can do, though I think it may be "overkill" for the current size of my project.
2 - I've also tried creating this project as an index but discovered that the links I'd created in the original docs didn't work when I moved the index and its contents (keeping the file structure the same). I presume this means the links are absolute? I also don't understand how it is that users search a .pdx file, or how to present what I want to be the original opening PDF of indexed docs.
3 - I've also thought to create one PDF with attached PDFs, so I'd like to have you expand on your comment about creating a master document and attaching documents to it.
The specifics of my project are these: I have created a master directory that contains approximately 120 links. Most of the links are repeated three times (users can find in the directory the item they need in three different ways: alphabetically, by application, or by module; hence each item listed once in each of three categories). I want to make that directory the "master" PDF that users open first, and then locate within that PDF the 5-8 PDF documents that contain all of the places to which the directory links. I want the "master" directory to be self-contained and completely "portable" as far as all of the documents and links are concerned so that when I make the PDF available from our website users can open the master from there or copy it and have all of the docs they need with all of the links intact. I think I prefer that all docs open in new windows, since returning to the original doesn't seem very user friendly in Acrobat (I like the tabs feature in FoxIt when multiple PDFs are open...).
I'd like an opinion about the best way to accomplish what I need to do, and am also wondering whether there are other options I am unaware of. BTW, the reason we've decided to document this whole project in PDFs rather than HTML is because this project contains a big number of tables, which do not look consistent across various browsers (i.e., most of our tables look fine in IE and Firefox, but awful in Google Chrome...). In researching my issue on the Acrobat Windows forum I see that rendering tables in Acrobat is also an issue that seems to be unresolved.
Thank you! -
How can I copy text from PDF and include the source filename in the pasted selection?
I'm a biologist and frequently cut-and-paste notes from PDFs of scientific articles. I name all of the PDF articles with their PubMed ID, a short unique identifier (e.g. 19397482.pdf). When I take notes, I will select a few sentences from the PDF and then paste them into a text editor for later reference.
Can anyone suggest a method or script that would allow me to paste the copied text with the Pubmed filename included in a single action? I would want the pasted output it to look something like this, with the filename appended to the end:
Of the transcripts that were significantly different, there was a greater number of transcripts that were down-regulated in the IVC embryos (380) than the number of transcripts that were up-regulated (208). [20668257.pdf]
This would really help me to properly cite information sources during the writing process. I know there are bibliography managers that might be able to do something like this, but I prefer to read the PDF articles directly in Preview and select the text as I am reading.
Thanks very much for any suggestions / ideas.
jjwTo copy and paste in a single action:
tell application "Preview" to activate
tell application "System Events" to tell process "Preview"
-- Get the PubMed ID:
get the title of the front window
set thePubMedID to word 1 of result
-- Copy the selected text to the clipboard:
keystroke "c" using {command down} -- ⌘C
delay 0.25 -- adjust if necessary
-- Add the PubMed ID to the contents of the clipboard:
set theNotes to the clipboard
set the clipboard to (theNotes & space & "[" & thePubMedID & ".pdf]")
end tell
tell application "Notational Velocity" to activate
tell application "System Events"
-- Paste the contents of the clipboard to the end of the Notational Velocity document
key code 125 using command down -- ⌘↓
keystroke return & return
keystroke "v" using {command down} -- ⌘V
end tell -
I have created a PDF and password protected it for view. However, when reading the PDF in Adobe Reader app on the iPad the commenting and annotation options are not available. Is there a way to allow commenting and annotation in the app while password protecting the document?
Is there a setting that needs to be set to allow the annotation features? I set password protection to open and then password for editing and set it to Any except page extraction, but it still did not give the annotation option
-
I am trying to Edit a PDF and it keeps telling me to buy Acrobat Pro but I already have it and am paid up to 15 May 2015
Hey christopherc53009480,
Could you please let me know what version of Acrobat you have purchased.
Also, please share the screenshot of the message that pops on your screen as I need to analyze the exact issue.
Hope to hear from you.
Regards,
Anubha -
How can I get a pdf. to open in Safari, all i'm getting is a new window with a black, blank page, instead of the pdf., and I don't want to save the file to the desktop, Safari didn't use to do that, and I don't have Adobe in the internet plug in folder.
Hi
Please take a look to this thread Re: Can I refresh the browser rather than open a new tab? -
How can I digitalize a document text in PDF and export it to WORD?
Anthony
How can I digitalize a document text in PDF and export it to WORD?If you already have a PDF document, ExportPDF can help you with this task. https://www.acrobat.com/exportpdf/en/convert-pdf-to-word.html
On the other hand, if you have a physical document, you'll need to scan it into a PDF document first.
Depending on what you need to do you may require different tools & services, so please help us out with more details.
Vlad -
Output same Deski report as PDF and XLS
Hello,
will it be possible to generate (not schedule) a Deski - Report using Java SDK ?
desired workflow:
- generate/refresh the report to hold new data (User specific, Local specific)
- output this report in Formats PDF and XLS
- store the output - reports in Users inbox
The goal is to generate the report only once and output the same twice - as pdf and as xls.
As far as i saw in scheduling a report, it is only possible to produce one output (pdf or xls), if we need both, we have to schedule twice. And therefor we will have to generate the same report twice.
I found somthing like
binaryView = (BinaryView)documentInstance.getView(OutputFormatType.XLS);
binaryView = (BinaryView)documentInstance.getView(OutputFormatType.PDF);
in RBean for Webi - reports.
Looking forward for any idea.
Thanks in advance.
Johannes
Edited by: Johannes Kammerer on Sep 15, 2009 4:55 PMIf you're on XI 3.x, then you can specify multi-format exports using Publications.
Otherwise, you'd need to export to a file using REBean SDK, then Enterprise SDK to create a new InfoObject for that artifact.
Sincerely,
Ted Ueda -
Convert a web report into pdf and print (in BW 3.5)
Hello gurus,
i have few web reports ( created using WAD). i am looking for a possibility to convert a web report (viewed in a browser by a user) into pdf and print them and this should be done by pressing a button.
Is it possible in BW 3.5 version?.
could anyone please help me?
Any how to docs. would be really helpful.
thanks and regards
kumarHere it is
<HTML>
<!-- BW data source object tags -->
<object>
<param name="OWNER" value="SAP_BW"/>
<param name="CMD" value="SET_DATA_PROVIDER"/>
<param name="NAME" value="DATAPROVIDER_1"/>
<param name="DATA_PROVIDER_ID" value=""/>
DATA_PROVIDER: DATAPROVIDER_1
</object>
<object>
<param name="OWNER" value="SAP_BW"/>
<param name="CMD" value="SET_PROPERTIES"/>
<param name="TEMPLATE_ID" value="ZPD_ADHOC_PAGE"/>
<param name="MENU_BACK" value=""/>
<param name="MENU_BACK_TO_START" value=""/>
<param name="SUPPRESS_WARNINGS" value="X"/>
<param name="MENU_FILTER" value=""/>
<param name="MENU_FILTER_ON_AXIS" value=""/>
<param name="MENU_SELECT_FILTER" value=""/>
<param name="MENU_FILTER_ON_AXIS_CHART" value=""/>
<param name="MENU_FILTER_CHART" value=""/>
<param name="MENU_FILTER_DRILL_DOWN" value=""/>
<param name="MENU_DRILL_UP_GIS" value=""/>
<param name="MENU_DRILL_DOWN" value=""/>
<param name="MENU_EXCHANGE_OBJECTS" value=""/>
<param name="MENU_REMOVE_DRILL_DOWN" value=""/>
<param name="MENU_SWITCH_AXIS" value=""/>
<param name="MENU_HIERARCHY_NODE_DRILL" value=""/>
<param name="MENU_HIERARCHY_DRILL" value=""/>
<param name="MENU_HIERARCHY_STATE" value=""/>
<param name="MENU_SORT" value=""/>
<param name="MENU_CALCULATE_RESULT" value=""/>
<param name="MENU_CALCULATE_VALUE" value=""/>
<param name="MENU_CUMULATE_VALUE" value=""/>
<param name="MENU_DISPLAY_DOCUMENTS" value=""/>
<param name="MENU_DOCUMENT_CREATE" value=""/>
<param name="MENU_DISPLAY_DOCUMENT_PROP" value=""/>
<param name="MENU_DISPLAY_DOCUMENT_SELEC" value=""/>
<param name="MENU_RRI" value=""/>
<param name="MENU_EXPORT_TO_CSV" value=""/>
<param name="MENU_EXPORT_TO_XLS" value=""/>
<param name="MENU_BOOKMARK" value=""/>
<param name="MENU_CHARACTERISTIC_PROPERTIES" value=""/>
<param name="MENU_VALUE_PROPERTIES" value=""/>
<param name="MENU_QUERY_PROPERTIES" value=""/>
<param name="MENU_VARIABLE_SCREEN" value=""/>
<param name="MENU_CURRENCY_CONVERSION" value=""/>
<param name="MENU_ENHANCED" value=""/>
TEMPLATE PROPERTIES
</object>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft DHTML Editing Control">
<TITLE>SAP BW Reporting Print Page</TITLE>
<link href="/sap/bw/Mime/BEx/StyleSheets/BWReports.css" type="text/css" rel="stylesheet"/>
<script type"text/javascript">
<!--
// Global Variable Definition
var dataTable = "";
var pageRowCnt = 0;
var prevPage = 0;
var ColumnCnt = 0;
var PrintDateTimeStamp = new Date();
var rptWidth = 0;
//DATE STAMP FUNCTION
function datestamp(){
var Today = new Date()
document.write(Today);
function getReportTitle() {
var myQueryString = window.location.search;
var startOfRptTitle = myQueryString.indexOf("QTITLE=");
if (startOfRptTitle != -1)
var endOfRptTitle = myQueryString.indexOf("&", startOfRptTitle + 7);
var myTitle = unescape(myQueryString.substring(startOfRptTitle + 7, endOfRptTitle));
var rpttitle = "";
for(i=0;i<myTitle.length;i++){
if (myTitle.substring(i,i+1) == "+"){
rpttitle = rpttitle + ' ';
else
rpttitle = rpttitle + (myTitle.substring(i,i+1));
else
var rpttitle = "Unspecified Query Title";
return rpttitle;
queryTitle=getReportTitle();
function getHeading2() {
var myQueryString = window.location.search;
var startOfHdr2 = myQueryString.indexOf("HDR2=");
if (startOfHdr2 != -1)
var endOfHdr2 = myQueryString.indexOf("&", startOfHdr2 + 5);
var myHdr2 = unescape(myQueryString.substring(startOfHdr2 + 5, endOfHdr2));
var hdr2 = "";
for(i=0;i<myHdr2.length;i++){
if (myHdr2.substring(i,i+1) == "+"){
hdr2 = hdr2 + ' ';
else
hdr2 = hdr2 + (myHdr2.substring(i,i+1));
else
var hdr2 = "#";
return hdr2;
header2=getHeading2();
function getHeading3() {
var myQueryString = window.location.search;
var startOfHdr3 = myQueryString.indexOf("HDR3=");
if (startOfHdr3 != -1)
var endOfHdr3 = myQueryString.indexOf("&", startOfHdr3 + 5);
var myHdr3 = unescape(myQueryString.substring(startOfHdr3 + 5, endOfHdr3));
var hdr3 = "";
for(i=0;i<myHdr3.length;i++){
if (myHdr3.substring(i,i+1) == "+"){
hdr3 = hdr3 + ' ';
else
hdr3 = hdr3 + (myHdr3.substring(i,i+1));
else
var hdr3 = "#";
return hdr3;
header3=getHeading3();
function getAsOfDate() {
var myQueryString = window.location.search;
var startOfRelevance = myQueryString.indexOf("ASOFDATE=");
if (startOfRelevance != -1)
var endOfRelevance = myQueryString.indexOf("&", startOfRelevance + 9);
var myRelevance = unescape(myQueryString.substring(startOfRelevance + 9, endOfRelevance));
var asof = "";
for(i=0;i<myRelevance.length;i++){
if (myRelevance.substring(i,i+1) == "+"){
asof = asof + ' ';
else
asof = asof + (myRelevance.substring(i,i+1));
else
var asof = "";
return asof;
asofDateTime=getAsOfDate();
function getPaperSize() {
var myQueryString = window.location.search;
var startOfPaperSize = myQueryString.indexOf("PSIZE=");
if (startOfPaperSize != -1)
var endOfPaperSize = myQueryString.indexOf("&", startOfPaperSize + 6);
var myPaperSize = unescape(myQueryString.substring(startOfPaperSize + 6, endOfPaperSize));
var psize = "";
for(i=0;i<myPaperSize.length;i++){
psize = psize + (myPaperSize.substring(i,i+1));
else
var psize = "0"; // default if none supplied (normal 8x11)
return psize;
varPaperSize=getPaperSize();
var PaperSizeParamString='&PSIZE=' + escape(varPaperSize);
switch(varPaperSize){
case "0": // Landscape - Letter
var WidthMax = 910;
var RowsPerPageMax = 38;
break;
case "1": // Landscape - Legal
var WidthMax = 1190;
var RowsPerPageMax = 38;
break;
case "2": // Portrait - Letter
var WidthMax = 660;
var RowsPerPageMax = 54;
break;
function getTotalColumns() {
var myHTML = dataTable.rows[1].innerHTML;
var TotalTDs = 0;
var nextTD = 0;
for (i=0;i<myHTML.length;i++) {
nextTD = myHTML.indexOf("<TD", i);
if (nextTD != -1) {
i=nextTD;
TotalTDs++;
else break;
return TotalTDs;
function GetPageHeadings() {
var headingHTM = "";
var leftspancnt = 0;
var rightspancnt = 0;
var headingspancnt = 2;
if (header2 != '#') headingspancnt = headingspancnt + 1; // adjust for extra headings
if (header3 != '#') headingspancnt = headingspancnt + 1;
if (currPage > 1) {
headingHTM += '<TR style="page-break-before:always; display:none; visibility:hidden; "><TD Colspan="' + ColumnCnt + '"></td></tr>';
else {
headingHTM += '<TABLE id="THEREPORT" name="MYREPORT" cellSpacing=0 cellPadding=0 width=' + WidthMax + ' border=0>';
if (ColumnCnt == 1) {
headingHTM += '<TR><TD vAlign=top align=left nowrap><font Size=3><STRONG>';
headingHTM += queryTitle;
headingHTM += '</STRONG></font></TD><TD Rowspan="' + headingspancnt + '" align="right" vAlign="top"><input type="image" border="0" name="SAPLogo" src="/sap/bw/Mime/Customer/Images/images.jpg" alt="SAP Logo"></TD></TR>';
if (header2 != '#') headingHTM += '<TR><TD vAlign="top" align="left"><FONT Size=1>' + header2 + '</FONT></TD></TR>';
if (header3 != '#') headingHTM += '<TR><TD vAlign="top" align="left"><FONT Size=1>' + header3 + '</FONT></TD></TR>';
headingHTM += '<TR><TD vAlign="top" align="left"><FONT Size=1>' + asofDateTime + '</FONT></TD></TR>';
headingHTM += '<TR><TD vAlign="top" align="left" Colspan="2"><hr size=2 color=black align=left></TD></TR>';
headingHTM += '<tr>' + dataTable.rows[0].innerHTML + '<TD> </TD></TR>';
else {
leftspancnt = Math.floor(ColumnCnt/2);
rightspancnt = ColumnCnt - leftspancnt;
headingHTM += '<TR><TD vAlign=top align=left nowrap Colspan="' + leftspancnt + '"><font Size=3><STRONG>';
headingHTM += queryTitle;
headingHTM += '</STRONG></font></TD><TD Rowspan="' + headingspancnt + '" Colspan="' + rightspancnt + '" align="right" vAlign="top"><input type="image" border="0" name="SAPLogo" src="/sap/bw/Mime/Customer/Images/images.jpg" alt="SAP Logo"></TD></TR>';
if (header2 != '#') headingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + leftspancnt + '"><FONT Size=1>' + header2 + '</FONT></TD></TR>';
if (header3 != '#') headingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + leftspancnt + '"><FONT Size=1>' + header3 + '</FONT></TD></TR>';
headingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + leftspancnt + '"><FONT Size=1>' + asofDateTime + '</FONT></TD></TR>';
headingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + ColumnCnt + '"><hr size=2 color=black align=left></TD></TR>';
headingHTM += '<tr>' + dataTable.rows[0].innerHTML + '</TR>';
return headingHTM;
function GetPageFooting() {
var footingHTM = "";
var leftspancnt = 0;
var rightspancnt = 0;
if (ColumnCnt == 1) {
footingHTM += '<TR><TD vAlign="top" align="left" Colspan="2"><hr size=2 color=black align=left></TD></TR>';
footingHTM += '<TR><TD vAlign="top" align="left" nowrap><FONT Size=1>Prepared: ';
footingHTM += PrintDateTimeStamp;
footingHTM += '</FONT></TD><TD vAlign="top" align="right"><FONT Size=1>';
footingHTM = footingHTM + 'Page ' + currPage.toString() + ' of ' + varPageTotal.toString();
footingHTM += '</FONT></TD></TR>';
else {
leftspancnt = Math.floor(ColumnCnt/2);
rightspancnt = ColumnCnt - leftspancnt;
footingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + ColumnCnt + '"><hr size=2 color=black align=left></TD></TR>';
footingHTM += '<TR><TD vAlign="top" align="left" nowrap Colspan="' + leftspancnt + '"><FONT Size=1>Prepared: ';
footingHTM += PrintDateTimeStamp;
footingHTM += '</FONT></TD><TD vAlign="top" align="right" Colspan="' + rightspancnt + '"><FONT Size=1>';
footingHTM = footingHTM + 'Page ' + currPage.toString() + ' of ' + varPageTotal.toString();
footingHTM += '</FONT></TD></TR>';
return footingHTM;
function GetReportFooting() {
var footingHTM = "";
footingHTM += '</TABLE>';
return footingHTM;
function formatToPrint() {
var PrintHTM = "";
PrintHTM += GetPageHeadings();
if (ColumnCnt != 1) {
for (var i=1;i<dataTable.rows.length;i++) {
(currPage > prevPage)?prevPage=currPage:""; //increment current page count
if ((pageRowCnt + 1)>RowsPerPageMax){
PrintHTM += GetPageFooting();
pageRowCnt = 0;
currPage++;
if (prevPage != currPage) {
PrintHTM += GetPageHeadings();
else
PrintHTM += '<tr>' + dataTable.rows<i>.innerHTML + '</tr>';
pageRowCnt++;
PrintHTM += GetPageFooting();
PrintHTM += GetReportFooting();
return PrintHTM;
function DisplayPrintNotice() {
// Paper Size "0" is Letter with Landscape
// Paper Size "1" is Legal with Landscape
// Paper Size "2" is Letter with Portrait
if (varPaperSize == "0") {var varMessage ="nn From your browser File Menu, select Page Setup and do the following: nn 1) Adjust the Printer Orientation to Landscape n 2) select Print menu, then select the Print button.";}
if (varPaperSize == "1") {var varMessage ="nn From your browser File Menu, select Page Setup and do the following: nn 1) Adjust the Paper Size to Legal n 2) Adjust the Printer Orientation to Landscape n 3) select Print menu, then select the Print button.";}
//if (varPaperSize == "2") {var varMessage ="nn From your browser File Menu, select Page Setup and do the following: nn 1) Adjust the Paper Size to Letter n 2) Adjust the Paper Source (if necessary) n 3) Adjust the Orientation to Portrait (default) n 4) Select the Okay button nn Again select the File Menu, select Print, then select the Print button.";}
alert(varMessage);
//window.print()
/* SAP BW Reporting Stylesheet Revisions */
function writeStyleRevisions() {
function writeDynamicFontRevisions(dynafont) {
//Writes the Dynamic Stylesheet
-->
</script>
</HEAD>
<BODY>
<TABLE id="tp1" cellSpacing=0 cellPadding=0 width=660 border=0 >
<TR>
<TD vAlign=top align=left nowrap>
<object>
<param name="OWNER" value="SAP_BW"/>
<param name="CMD" value="GET_ITEM"/>
<param name="NAME" value="MYQUERY"/>
<param name="ITEM_CLASS" value="CL_RSR_WWW_ITEM_GRID"/>
<param name="DATA_PROVIDER" value="DATAPROVIDER_1"/>
<param name="GENERATE_CAPTION" value=""/>
<param name="GENERATE_LINKS" value=""/>
<param name="WIDTH" value="660"/>
<param name="BORDER_STYLE" value="NO_BORDER"/>
<param name="SUPPRESS_REPETITION_TEXTS" value=""/>
<param name="BLOCK_SIZE" value="3500"/>
<param name="SHOW_PAGING_AREA_TOP" value="X"/>
<param name="TARGET_DATA_PROVIDER_1" value="DATAPROVIDER_1"/>
ITEM: MYQUERY
</object>
</TD>
</TR>
</TABLE>
<SCRIPT type="text/javascript">
<!--
var tbls = document.body.getElementsByTagName("TABLE");
for (var i=0;i<tbls.length;i++) {
if (tbls<i>.name == "MYQUERY"){
var dataTable = tbls<i>;
break;
document.title = queryTitle;
rptWidth = dataTable.clientWidth;
rptHeight = dataTable.clientHeight;
originalRptWidth = rptWidth;
originalRptHeight = rptHeight;
originalRowHeight = Math.floor(rptHeight/(dataTable.rows.length+1));
rptPageHeightMax = 580; //660 less basic header and footer of 80
if (header2 != '#') rptPageHeightMax = rptPageHeightMax - 20; // adjust for extra headings
if (header3 != '#') rptPageHeightMax = rptPageHeightMax - 20;
if (dataTable.rows.length == 1) {
ColumnCnt = 1; //No Applicable Data found message
else {
ColumnCnt = getTotalColumns();
startingFont = 65;
varFontSize = startingFont;
if (rptWidth > WidthMax) {
while ((rptWidth > WidthMax) && (varFontSize > 15))
writeDynamicFontRevisions(varFontSize);
rptWidth = dataTable.clientWidth;
rptHeight = dataTable.clientHeight;
varFontSize = varFontSize - 5;
// calculate max rows per page
rowHeight = Math.floor(rptHeight/(dataTable.rows.length+1)) + 1; // add 1 for 2 row heading, add 1 for padding
RowsPerPageMax = Math.floor(rptPageHeightMax/rowHeight) - 2; // adjust for column headings
if (dataTable.rows.length == 1) {
varPageTotal = 1; //No Applicable Data found message
else {
totalRows = dataTable.rows.length-1; // total rows less headings
varPageTotal = Math.floor(totalRows/RowsPerPageMax); // compute total pages
if (totalRows != (varPageTotal * RowsPerPageMax)) {
varPageTotal = varPageTotal + 1; // if not a complete last page, add 1 for partial page
currPage = 1;
document.write(formatToPrint());
document.all.tp1.style.display = "none";
document.all.tp1.style.visibility = "hidden";
// DisplayPrintNotice();
-->
</SCRIPT>
<STYLE>
input.ie55 { display: none }
</STYLE>
<!-- special style sheet for printing -->
<STYLE media=print>
.noprint { display: none }
</STYLE>
<script defer>
function window.onload() {
if (!factory.object) {
return
else {
// factory.printing.header = "SAP"
// factory.printing.footer = "SAP"
if ( varPaperSize == "2" ) { factory.printing.portrait = true; }
else { factory.printing.portrait = false; }
factory.printing.Print(true);
// enable control buttons
/* var templateSupported = factory.printing.IsTemplateSupported();
var controls = idControls.all.tags("input");
for ( i = 0; i < controls.length; i++ ) {
controls<i>.disabled = false;
if ( templateSupported && controls<i>.className == "ie55" )
controls<i>.style.display = "inline";
</script>
<P>
<div id=idControls class="noprint" style="VISIBILITY: hidden">
<input disabled type="button" value="Print this page"
onclick="factory.printing.Print(true)">
<input disabled type="button" value="Page Setup..."
onclick="factory.printing.PageSetup()">
<input class=ie55 disabled type="button" value="Print Preview..."
onclick="factory.printing.Preview()">
<input class=ie55 disabled type="button" value="Landscape"
onclick="factory.printing.portrait=false">
<input class=ie55 disabled type="button" value="Portrait"
onclick="factory.printing.portrait=true">
</div>
</BODY>
</HTML>
Maybe you are looking for
-
Flash member strange click behaviour on touchscreen
Hi, I have a flash member inside my director file which has some problems when a touchscreen. I have to click one time before I can make a drag and drop. The strange thing is that the flash works when runnting w/o director with the touch. The clicks
-
Asynchr Calls: Partner Role and My Role must be filled in Partner Link dial
Asynchr Calls: Partner Role and My Role must be filled in Partner Link dialog ? Is the statement true? Can I leave for synchronous calls one of the role spec vacant? AFAIK only in asynchronous calls both drop down values must be specified. Peter
-
Cant boot winxp installed to hdc3.
I cant boot WinXP. I have just installed it to hdc3 (equivalent to (hd2.2) for grub), and this is what I put in menu.lst: (1) WindowsXP title WindowsXP map (hd0) (hd2) map (hd2) (hd0) rootnoverify (hd0,2) makeactive chainloader +1 but this only resul
-
Percentage stacked bar graph in BO dashboards?
How to create a percentage stacked bar graph in BO dashboards? The graph should be compatible with Mobile/Ipad. I understand this is not available out of box. Looking for workaround solutions only
-
Canon HV30, FCP and ishowu... get get them all on the same page
Looking for some help with FCP, ishowu and a Canon HV30... I've been trying for weeks now to get video captures using ishowu to work with video from the Canon HV30... The video I've brought in from the camera is: 1440x1080 29.97 HD 1080i60 compressio