1

Closed

Notes Count for CRM 2011

description

Hi,
 
this code works for CRM 2011:
function notesCount()
{
 
/* ******************************************************* */
/ Microsoft CRM 4.0 JavaScript Anpassung /
/ NotesCount (v0.5) - CRM-Services 2007 /
/ netzhaus AG /
/* ******************************************************* */
/* Autor: Thomas Roschinsky (tr@netzhaus.ag) */
/ Datum: 11.04.2009 /
/ /
/* Projekt: http://notescount.codeplex.com */
/ /
/ Konfiguration: /
var oNotesTab = document.getElementById('tab6Tab');
var oNotesDetail = true;
var oNotesDetailColorNote = "#AA4E26";
var oNotesDetailColorFile = "#3C643A";
var oNotesOverview = true;
/ /
/* ******************************************************* */
 
function displayNotesOverview(e) {
try {
var NotesCountOV = document.getElementById('NotesCountOV');
var posX = 0;
var posY = 0;
if (!e) var e = window.event;
if (e.pageX || e.pageY){
posX = e.pageX;
posY = e.pageY;
}
else if (e.clientX || e.clientY){
posX = e.clientX + document.body.scrollLeft;
posY = e.clientY + document.body.scrollTop;
}
NotesCountOV.firstChild.style.width = NotesCountOV.style.width;
NotesCountOV.firstChild.style.left = (posX).toString()+"px";
NotesCountOV.firstChild.style.top = (posY+20).toString()+"px";
NotesCountOV.style.visibility = (e.type == "mouseleave") ? "hidden" : "visible";
}
catch(ex) {}
}
function WSRetrieveMultiple(crmEntity, resultAttribute, queryAttribute, queryValue) {
try {
var oXMLSoapMsg = "<?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'>"+
GenerateAuthenticationHeader().toString()+
"<soap:Body>"+
"<RetrieveMultiple xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+
"<query xmlns:q1='http://schemas.microsoft.com/crm/2006/Query'"+
" xsi:type='q1:QueryExpression'>"+
"<q1:EntityName>"+crmEntity+"</q1:EntityName>"+
"<q1:ColumnSet xsi:type='q1:ColumnSet'>"+
"<q1:Attributes>"+
"<q1:Attribute>"+resultAttribute+"</q1:Attribute>"+
"<q1:Attribute>isdocument</q1:Attribute>"+
"<q1:Attribute>filename</q1:Attribute>"+
"</q1:Attributes>"+
"</q1:ColumnSet>"+
"<q1:Distinct>false</q1:Distinct>"+
"<q1:Criteria>"+
"<q1:FilterOperator>And</q1:FilterOperator>"+
"<q1:Conditions>"+
"<q1:Condition>"+
"<q1:AttributeName>"+queryAttribute+"</q1:AttributeName>"+
"<q1:Operator>Like</q1:Operator>"+
"<q1:Values>"+
"<q1:Value xsi:type='xsd:string'>"+queryValue+"</q1:Value>"+
"</q1:Values>"+
"</q1:Condition>"+
"</q1:Conditions>"+
"</q1:Criteria>"+
"</query>"+
"</RetrieveMultiple>"+
"</soap:Body>"+
"</soap:Envelope>";
var oXMLHTTPReq = new ActiveXObject("Msxml2.XMLHTTP");
oXMLHTTPReq.onreadystatechange = function() {
if(oXMLHTTPReq.readyState == 4){
WSResultHandler(oXMLHTTPReq.responseXML, resultAttribute, queryAttribute);
}
};
oXMLHTTPReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
oXMLHTTPReq.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/RetrieveMultiple");
oXMLHTTPReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
oXMLHTTPReq.setRequestHeader("Content-Length", oXMLSoapMsg.length);
oXMLHTTPReq.send(oXMLSoapMsg);
}
catch(ex){}
}
function WSResultHandler(resultSetXML, resultAttribute, queryAttribute) {
try {
var errorCount = resultSetXML.selectNodes('//error').length;
if (errorCount != 0){
var msg = resultSetXML.selectSingleNode('//description').nodeTypedValue;
alert(msg);
}
else{
var results = resultSetXML.getElementsByTagName('BusinessEntity');
var resultsOverview = "";
if (results.length != 0){
resultsOverview += "<div style=\"z-index:+300; padding:5px; font-size:xx-small; border: solid 1px #C5C5C5; background-color:#FFFFAE; position:absolute; filter:alpha(opacity:90);\">";
resultsOverview += "<strong>Anlagen und Notizen</strong>";
resultsOverview += "<table border=\"0\" style=\"font-size: xx-small\">";
var cntNote = 0;
var cntFile = 0;
var lenTitle = 0;
for (i=0;i < results.length;i++){
if(results[i].selectSingleNode('./q1:isdocument').nodeTypedValue == 0){
resultsOverview += "<tr><td></td><td width=\"100%\" style=\"color:"+oNotesDetailColorNote+";\">"+results[i].selectSingleNode('./q1:'+resultAttribute).nodeTypedValue+"</td></tr>";
lenTitle = (lenTitle < results[i].selectSingleNode('./q1:'+resultAttribute).nodeTypedValue.toString().length) ? results[i].selectSingleNode('./q1:'+resultAttribute).nodeTypedValue.toString().length : lenTitle;
cntNote++;
}
else{
resultsOverview += "<tr><td><img src=\"/_imgs/ico_16_1001_d.gif\" alt=\"Dateianlage\" /></td><td width=\"100%\" style=\"color:"+oNotesDetailColorFile+";\">"+results[i].selectSingleNode('./q1:filename').nodeTypedValue+"</td></tr>";
lenTitle = (lenTitle < results[i].selectSingleNode('./q1:'+resultAttribute).nodeTypedValue.toString().length) ? results[i].selectSingleNode('./q1:filename').nodeTypedValue.toString().length : lenTitle;
cntFile++;                        
}
}
resultsOverview += "</table>";
resultsOverview += "</div>";
resultsDetails = (oNotesDetail) ? ": <font color=\""+oNotesDetailColorNote+"\">"+cntNote.toString()+"</font>/<font color=\""+oNotesDetailColorFile+"\">"+cntFile.toString()+"</font>" : "";
oNotesTab.childNodes[1].style.color = '#EE6000';
oNotesTab.childNodes[1].innerHTML += ' (<strong>' + results.length.toString() + '</strong>'+resultsDetails+')';
 
if(oNotesOverview){
var divNotesCountOV = document.createElement("div");
divNotesCountOV.setAttribute('id', 'NotesCountOV');
divNotesCountOV.style.visibility = "hidden";
divNotesCountOV.style.width = (lenTitle <= 70) ? parseInt((lenTitle * 6)).toString() + "px" : "420px";
document.body.appendChild(divNotesCountOV);
divNotesCountOV.innerHTML = divNotesCountOV.innerHTML+resultsOverview;
oNotesTab.childNodes[1].attachEvent('onmouseenter', displayNotesOverview);
oNotesTab.childNodes[1].attachEvent('onmouseleave', displayNotesOverview);
}
}
}
}
catch(e){}
}
if(crmForm.ObjectId!=null){
WSRetrieveMultiple('annotation', 'subject', 'objectid', crmForm.ObjectId.toString());
}
/* END *************************************************** */
/ NotesCount /
/* ******************************************************* */
}
Closed Jun 17, 2011 at 7:19 PM by troschinsky
Code for CRM 2011 updated.

comments

troschinsky wrote Jun 17, 2011 at 7:18 PM

Hey David,

well done - thank you! I just added two lines of code to display the icons representing notes and attachments, because attachments were shown as broken images.

I'll check it in right away.

Cheers,
Thomas

wrote Jun 17, 2011 at 7:19 PM

wrote Feb 13, 2013 at 1:36 AM

wrote May 14, 2013 at 11:12 PM