[x]
Posted via EE Mobile

Search, ask, and monitor your questions on the go with EE Mobile. Visit Experts Exchange from your mobile device and never be out of touch again.

Question
[x]
Attachment Details
[x]
The Solution Rating System

With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.

  • The Grade of the Solution
  • The Zone Rank of the Expert Providing the Solution
  • The Number of Author and Expert Comments
  • The Number of Experts Contributing
  • The Feedback of the Community

Your Input Matters
Because of the way the system is set up, the most important variable in this equation is you. As a member of Experts Exchange, you are able to cast your vote on the quality of the solutions in regard to how complete, accurate, helpful and easy to understand each solution is. When you provide your feedback, each rating is adjusted accordingly. So, if you see a solution that has a poor rating that you think is a good solution, let us know by rating it. As you do, the rating will be adjusted and will become more accurate for other members of our site.

If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support.

Thank you!

9.3

OnLoad & OnChange events no longer working in mscrm 4.0

Asked by lynxwoman in CRM Software

Tags: CRM 4.0, customized contact form, cascading picklist

I have code, in the onLoad Event for my customized contact form, using the MS Adventure Works (CRM 4.0)  sample using vm. We upgraded from 3.0 to 4.0 this weekend and when I try cutting and pasting my onLoad and onChange code into our new 4.0 I get error on the New Contact Form and on the Retail Tab (specific to a picklist). Yes, I changed all the attribute names to reflect our real CRM database (instead of new_retailvertical, now little_retailvertical)

Here's the onLoad error when creating a new contact:

There was an error with this field's customized event,
Field: window
Event: onLoad
Error: 'undefined' is null or not an object

Here is the error when clicking on the Retail Tab:
There was an error with this field's customized event,
Field: little_retailvertical
Event: onchange
Error: 'originalPicklistOptions.length' is null or not an object

Any help is greatly appreciated!

Thank you!
Sandy
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
//Contact Form 
//Event = OnLoad()
 
//  Used to help search the picklist items
Array.prototype.Contains = function(o) 
{
	var iLength = this.length;
	
	for (var i = 0; i < iLength; i++)
	{
		if (o == this[i])
		{
			return true;
		}
	}
	
	return false;
};
 
// This is the main function that will filter the picklists
crmForm.FilterPicklist = function x()
{
	var oPrimaryPicklist = crmForm.all.little_retailvertical;
	var oRealatedPicklist = crmForm.all.little_rtverticalspecificcategory;
	
	if (oPrimaryPicklist.DataValue == null)
	{
		oRealatedPicklist.DataValue = null;
		oRealatedPicklist.ForceSubmit = true;		
		oRealatedPicklist.Disabled = true;	
		
		
		return;
	}
	
	
	var oTempArray = new Array();
	
	var iLength = oRealatedPicklist.originalPicklistOptions.length;
	
	var aCurrentType = new Array();		
	
	
switch (oPrimaryPicklist.DataValue)
{
case "1":
aCurrentType = new Array(1,2,3,4);
break;
case "2":
aCurrentType = new Array(5,6,7,8,9,10);
break;
case "3":
aCurrentType = new Array(11,12,13,14,15,16);
break;
case "4":
aCurrentType = new Array(17,18,19,20);
break;
case "5":
aCurrentType = new Array(21,22,23,24,25,26,27,28);
break;
case "6":
aCurrentType = new Array(29,30,31,32,33);
break;
}
 
	
	for (var i = 0; i < iLength; i++)
	{		
		if (aCurrentType.Contains(oRealatedPicklist.originalPicklistOptions[i].DataValue))
		{
			oTempArray.push(oRealatedPicklist.originalPicklistOptions[i]);
		}
	}
	
	oRealatedPicklist.Options = oTempArray;
	
	if (oTempArray.length > 0)
	{		
		oRealatedPicklist.Disabled = false;		
	}		
	else
	{
		oRealatedPicklist.DataValue = null;
		oRealatedPicklist.ForceSubmit = true;		
		oRealatedPicklist.Disabled = true;
	}	
}
 
var CRM_FORM_TYPE_CREATE = 1;
var CRM_FORM_TYPE_UPDATE = 2;
 
switch (crmForm.FormType)
{	
	case CRM_FORM_TYPE_CREATE://CREATE_FORM - try these and blow away the vars above
	case CRM_FORM_TYPE_UPDATE:	//UPDATE_FORM
		
		var oRealatedPicklist = crmForm.all.little_little_rtverticalspecificcategory;
		
		oRealatedPicklist.originalPicklistOptions = oRealatedPicklist.Options;		
 
		if (crmForm.all.little_retailvertical.DataValue == null)
		{
			oRealatedPicklist.Disabled = true;
		}
		else
		{					
			var iPicklistValue = oRealatedPicklist.DataValue;
			crmForm.FilterPicklist();
			oRealatedPicklist.DataValue = iPicklistValue;					
		}
 
	break;
}
crmForm.all.little_rtcommercialspecific_c.style.visibility = ''hidden'';
crmForm.all.little_rtcommercialspecific_d.style.visibility = ''hidden'';
 
//RETAIL TAB
//Attribute little_retailvertical
//Event = onChange()
 
crmForm.FilterPicklist();
 
//Hides the Commercial Specific attribute if other than Commerical is selected in Retail Vertical
//If Commercial is selected in Retail Vertical the Commercial Specific attribute is visible
 
if(crmForm.all.little_retailvertical.DataValue == ''1'')
{
 crmForm.all.little_rtcommercialspecific_c.style.visibility = '' '';
 crmForm.all.little_rtcommercialspecific_d.style.visibility = '' '';
}
else
{
 crmForm.all.little_rtcommercialspecific_c.style.visibility = ''hidden'';
 crmForm.all.little_rtcommercialspecific_d.style.visibility = ''hidden'';
}
[+][-]10/01/09 12:09 PM, ID: 25472143Accepted Solution

View this solution now by starting your 30-day free trial. Setting up your free trial is quick, easy, and secure. We will return you to this solution, unlocked, when you're done.

About this solution

Zone: CRM Software
Tags: CRM 4.0, customized contact form, cascading picklist
Sign Up Now!
Solution Provided By: jd_wight
Participating Experts: 1
Solution Grade: A
 
 
Loading Advertisement...
20091111-EE-VQP-92 - Hierarchy / EE_QW_3_20080625