Saturday, August 21, 2010

Getting the actual day of the week from a date field

It's the simple things that I sometimes get stuck on. For the longest time, I couldn't figure out how to garner the actual day of the week from a date field value.

Now I share how ridiculously simple it is using Jscript.

var date = crmForm.all.pai_dateworked.DataValue;
var pai_name
var weekday=new Array(7);
weekday[0]="Sunday";
weekday[1]="Monday";
weekday[2]="Tuesday";
weekday[3]="Wednesday";
weekday[4]="Thursday";
weekday[5]="Friday";
weekday[6]="Saturday";
pai_name = weekday[date.getDay()];
crmForm.all.pai_name.DataValue = pai_name;

Saturday, August 14, 2010

Save the last viewed tab

I've had alot of clients to ask me about this. Keep in mind that this is really for CRM 4.0.
The scenario goes that you may be asked to perform some save events that happens on a form. The form has a couple of tabs, and the save event happens on the 3rd tab. The form reloads back on the first tab. It gets pretty annoying especially when you have alot of tabs (not saying some CRM dev might have hacked the number of tabs on a form).





function OnCrmPageLoad()
{
if( crmForm.FormType == 2)
RetainTab();
}

function RetainTab()
{
crmForm.attachEvent( "onsave" , OnCrmPageSave );
var regTab = new RegExp( window.name + "=(\\d)","gi");
regTab.exec(document.cookie);
var tab = document.getElementById("tab"+RegExp.$1+"Tab");
if( tab ) tab.click();
}

function OnCrmPageSave()
{
var crmTabBar = document.all.crmTabBar;
for(var i = 0 ; i < cookie =" window.name+"="+i;
break;
}
}
}

OnCrmPageLoad();

Sunday, February 28, 2010

IFrame + HTML + CRM Forms

One of my clients asked me to make "pretty column headers" for a 4 column section on his Opportunity form. Most of the code samples I've seen from other consultants often tell you to add a text field and customize it. Well, it becomes pointless if you have to make 4 fields just to re-transform into something "pretty" and not store a state of field.

You can add an iframe with a target of about:blank and then add this to your form Onload event. Oddly, I rarely see anyone mention this.

crmForm.all.IFRAME_SomeIFrame_d.innerHTML ="Look at me!";


So that you understand what that means. Here is the break down.

"crmForm.all.IFrame_SomeIFrame" - is the name of the element.
"_d.innerHTML" - is the attribute of this element.
"";" - simple HTML mark up of the text of Look at me!".

This had a ton of uses if you end up with a heavy customization of MSCRM. Rather than have it equal the code itself...you could have it equal a CRM field. Note you SHOULD use a nvachar text area field rather than a NTEXT field or any other choice. Make sure you make the field length large enough to hold your code...I use 500. Now you can put that HTML code in the form and it would show OnLoad. Very important if you want to say, make an HTML signature for each user.


Update:

Looks like some the HTML tags you could use from this have been depreciated. Use this instead.

document.getElementById("IFRAME_CCNotesOffice_d").innerHTML = "
Notes from the Office

";