Custom Entity One Click: Difference between revisions

From Crystal Manager for Sage CRM
No edit summary
No edit summary
Line 23: Line 23:
   var ButtonGroup;
   var ButtonGroup;
   //set the name of your CRM
   //set the name of your CRM
   var CRMName="CRM71";
   var CRMName="CRM";
   function addButton(name, caption, imgname, reportname, pdfformat, createcomm, CE, CE_ID, LE)
 
   function addButton(name, caption, imgname, reportname, pdfformat, createcomm, CE, CE_ID, LE, backupKey)
   {
   {
     getButtonGroup();  
 
     getButtonGroup();
   
     var rowCount = ButtonGroup.rows.length;
     var rowCount = ButtonGroup.rows.length;
     var row = ButtonGroup.insertRow(rowCount);  
     var row = ButtonGroup.insertRow(rowCount);
     var cell1 = row.insertCell(0);cell1.innerHTML='<TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0><TR><TD><A id="'+name+'1" CLASS=ButtonItem HREF="" ><IMG SRC="/'+
 
       CRMName+'/Themes/img/color/Buttons/'+imgname+'" BORDER=0 ALIGN=MIDDLE></A></TD><TD>&nbsp;</TD><TD><A id="'+
     var cell1 = row.insertCell(0);
       name+'2" CLASS=ButtonItem HREF="" >'+caption+'</A></TD></TR></TABLE>';  
    cell1.innerHTML='<TABLE CELLPADDING=0 CELLSPACING=0 BORDER=0><TR><TD><A id="'+name+'1"  
 
CLASS=ButtonItem HREF="" ><IMG SRC="/'+
       CRMName+'/Themes/img/color/Buttons/'+imgname+'" BORDER=0  
 
ALIGN=MIDDLE></A></TD><TD>&nbsp;</TD><TD><A id="'+
       name+'2" CLASS=ButtonItem HREF="" >'+caption+'</A></TD></TR></TABLE>';
 
     var item1=document.getElementById(name+"1");
     var item1=document.getElementById(name+"1");
     var item2=document.getElementById(name+"2");
   
     var item2=document.getElementById(name+"2");
 
     item1.href=buildURL("CRViewer/NewWindow.aspx")+"rptname="+reportname;
     item1.href=buildURL("CRViewer/NewWindow.aspx")+"rptname="+reportname;
     item1.href+="&CE="+CE;
 
     item1.href+="&CE_ID="+CE_ID;
    if (item1.href.indexOf(CE_ID)<1)  //use the backup key
     item1.href+="&LE="+LE;
    {   
      item1.href+="&"+CE+"="+qsParm["backupKey"];     
    }
 
     if (CE!="")
      item1.href+="&CE="+CE;
     if (CE_ID!="")
      item1.href+="&CE_ID="+CE_ID;
     if (LE!="")
      item1.href+="&LE="+LE;
     if (pdfformat==true)
     if (pdfformat==true)
     {
     {
Line 46: Line 67:
       item1.href+="&createcomm=Y";
       item1.href+="&createcomm=Y";
     }
     }
     item2.href=item1.href;
     item2.href=item1.href;
 
  }
 
//get the params sent in to the page
var qsParm = new Array();
function qs()
{
  var query = window.location.search.substring(1);
  var parms = query.split('&');
  for (var i=0; i<parms.length; i++)
  {
    var pos = parms[i].indexOf('=');
    if (pos > 0)
    {
      var key = parms[i].substring(0,pos);
      var val = parms[i].substring(pos+1);
      qsParm[key] = val;
    }
   }
   }
}
qs();
   function getButtonGroup()
   function getButtonGroup()
   {
   {

Revision as of 19:36, 24 April 2012

coming soon...

There is some manual work to create a one click button into a custom entity in CRM.

We provide the details here as well as sample code.

The button is created by adding in some code to the custom content which creates a button when the page is loaded.


Create a folder within the CRM "CustomPages" folder. In our example we will call this folder "CRMTogether".

Create a file there called "CRViewer.js".

Select a CRM screen that exists on the page you wish to create the button.

Within the "custom content" of that screen enter a path to the script

 <script src="../../custompages/CRMTogether/CRViewer.js" type="text/javascript" language="JavaScript"></script>

Enter the following script code into the page


 var ButtonGroup;
 //set the name of your CRM
 var CRMName="CRM";
 
 function addButton(name, caption, imgname, reportname, pdfformat, createcomm, CE, CE_ID, LE, backupKey)
 {
 
   getButtonGroup();
   
   var rowCount = ButtonGroup.rows.length;
   var row = ButtonGroup.insertRow(rowCount);
  
   var cell1 = row.insertCell(0);

cell1.innerHTML='

<A id="'+name+'1"

CLASS=ButtonItem HREF="" ><IMG SRC="/'+

     CRMName+'/Themes/img/color/Buttons/'+imgname+'" BORDER=0 
ALIGN=MIDDLE></A>
 <A id="'+ name+'2" CLASS=ButtonItem HREF="" >'+caption+'</A>

';

   var item1=document.getElementById(name+"1");
   
   var item2=document.getElementById(name+"2");
 
   item1.href=buildURL("CRViewer/NewWindow.aspx")+"rptname="+reportname;
   if (item1.href.indexOf(CE_ID)<1)  //use the backup key
   {    
     item1.href+="&"+CE+"="+qsParm["backupKey"];       
   }
   if (CE!="")
     item1.href+="&CE="+CE;
   if (CE_ID!="")
     item1.href+="&CE_ID="+CE_ID;
   if (LE!="")
     item1.href+="&LE="+LE;
   if (pdfformat==true)
   {
     item1.href+="&pdfformat=Y";
   }
   if (createcomm==true)
   {
     item1.href+="&createcomm=Y";
   }


   item2.href=item1.href;
 
 }
 

//get the params sent in to the page var qsParm = new Array(); function qs() {

 var query = window.location.search.substring(1);
 var parms = query.split('&');
 for (var i=0; i<parms.length; i++) 
 {
   var pos = parms[i].indexOf('=');
   if (pos > 0) 
   {
     var key = parms[i].substring(0,pos);
     var val = parms[i].substring(pos+1);
     qsParm[key] = val;
   }
 }

} qs();

 function getButtonGroup()
 {
   var ButtonGroup_col=document.getElementsByTagName("TABLE");
   for(var i=0;i<ButtonGroup_col.length;i++)
   {
      ButtonGroup=ButtonGroup_col[i];
      if (ButtonGroup.className=="ButtonGroup")
      {  
        break;
      }
   }
 }
 function buildURL(PagePath)
 {               
   var strFileName = PagePath;
   var strPath = document.URL;
   if (strPath.indexOf("eware.dll")!=-1)
   {
     var arrayApp = strPath.split("eware.dll");  
     PagePath="CustomPages/"+PagePath;
   }else{
     var arrayApp = strPath.split("CustomPages");
     arrayApp[0]+="CustomPages/";
   }
   var arrayContext = strPath.split("?");
   var strAppPath = arrayApp[0];
   var strContextInfo = arrayContext[1];
   strAddr= strAppPath + PagePath+"?"+strContextInfo+"&";
   return strAddr; 
 }
 function CRMTogether_Onload()
 {
   //here we add in the button
   addButton("Report", "Report", "edit.gif","testerrpt.rpt", true, true,"comm_testerid", "test_testerid","libr_testerid");
 }
 window.onload=CRMTogether_Onload;

The "addButton" function adds in the button

addButton parameters

  1. name - name of the button
  2. caption - Caption of the button
  3. imgname - name of the image to display
  4. reportname - name of the report to use
  5. pdfformat - flag to show the report as a PDF
  6. createcomm - flag to create a communication
  7. CE - name of the communication id field
  8. CE_ID - - query string name value of the field that holds the main entity value
  9. LE - name of the library id field

Note: CE_ID is used as the querystring value picked up by the system as a parameter.