<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>crm.atechnisch.nl &#187; Client Side Scripting</title>
	<atom:link href="http://crm.atechnisch.nl/category/client-side-scripting/feed/" rel="self" type="application/rss+xml" />
	<link>http://crm.atechnisch.nl</link>
	<description>How to improve Microsoft Dynamics CRM</description>
	<lastBuildDate>Wed, 25 Nov 2009 08:12:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Use Tooltips as Hot Help</title>
		<link>http://crm.atechnisch.nl/2009/07/use-tooltips-as-hot-help/</link>
		<comments>http://crm.atechnisch.nl/2009/07/use-tooltips-as-hot-help/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 11:24:01 +0000</pubDate>
		<dc:creator>Huib Aarts</dc:creator>
				<category><![CDATA[Client Side Scripting]]></category>
		<category><![CDATA[MS CRM 3.0 Application]]></category>
		<category><![CDATA[MS CRM 3.0 Customizations]]></category>
		<category><![CDATA[MS CRM 4.0 Application]]></category>
		<category><![CDATA[MS CRM 4.0 Customizations]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[label]]></category>
		<category><![CDATA[Microsoft Dynamics CRM 4.0]]></category>

		<guid isPermaLink="false">http://crm.atechnisch.nl/?p=137</guid>
		<description><![CDATA[There are multiple ways in MS Dynamics CRM (MS CRM) to help users using the system. Next to training and external guides, the system can also provide information. In the system the help files (on the top right of every screen) can be improved. As you will know this has advantages and disadvantages.
Another option is [...]]]></description>
			<content:encoded><![CDATA[<p>There are multiple ways in MS Dynamics CRM (MS CRM) to help users using the system. Next to training and external guides, the system can also provide information. In the system the help files (on the top right of every screen) can be improved. As you will know this has advantages and disadvantages.</p>
<p>Another option is to improve the tooltips.</p>
<p>The modifying and maintaining of the tooltips will be discussed in this post.</p>
<p>A tooltip is a small box, which contains a brief text message explaining the field. It appears below the label of a field on the MS CRM forms when the pointer of a mouse passes over or rests on that label and which contains a brief text message identifying or explaining the object. When the pointer moves away from the label the tooltip disappears.</p>
<p>Tooltips are available on every field on a MS CRM form. The current tooltips show the text of the label, which, in my opinion, does  not have any benefits. If you can read to label, you can read to tooltip. But the good thing is, we can change the contents of the current tooltips.</p>
<p>At the moment the only restrictions to the tooltips are that only unformatted text can be used and that the total amount of characters is no more than 512.</p>
<p>The onLoad code:</p>
<pre class="brush: plain;">

crmForm.all.new_attribute_c.title = “contents of the tooltip”
</pre>
<p>Example:</p>
<p><a href="http://crm.atechnisch.nl/crm_upload/2009/07/tooltip.gif" target="_blank"><img class="size-full wp-image-143 alignleft" title="tooltip" src="http://crm.atechnisch.nl/crm_upload/2009/07/tooltip.gif" alt="tooltip" width="231" height="96" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://crm.atechnisch.nl/2009/07/use-tooltips-as-hot-help/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make website field clickable</title>
		<link>http://crm.atechnisch.nl/2008/12/make-website-field-clickable/</link>
		<comments>http://crm.atechnisch.nl/2008/12/make-website-field-clickable/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 15:35:34 +0000</pubDate>
		<dc:creator>Huib Aarts</dc:creator>
				<category><![CDATA[Client Side Scripting]]></category>
		<category><![CDATA[MS CRM 3.0 Customizations]]></category>
		<category><![CDATA[MS CRM 4.0 Customizations]]></category>
		<category><![CDATA[clickable]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://crm.atechnisch.nl/2008/12/10/make-website-field-clickable/</guid>
		<description><![CDATA[On the standard contact form the field website is not clickable. You have to copy the url to a browser address bar. This is probably because of the synchronization with outlook.
To make the field clickable on the form you can add the following code to the OnLoad of the Contact form.

/*** make website field clickable***/
//change [...]]]></description>
			<content:encoded><![CDATA[<p>On the standard contact form the field website is not clickable. You have to copy the url to a browser address bar. This is probably because of the synchronization with outlook.<br />
To make the field clickable on the form you can add the following code to the OnLoad of the Contact form.</p>
<pre class="brush: css;">
/*** make website field clickable***/
//change color and make underlined
crmForm.all.websiteurl.style.color = &quot;#0000ff&quot;;
crmForm.all.websiteurl.style.textDecoration = &quot;underline&quot;;
/* Double Click website to Open*/
function CreateURL(WebSite) {
    return function() {
        if (WebSite != null &amp;&amp; WebSite.value.length &gt; 0) {
            var prefix = WebSite.value.substring(5, 0);
            if (prefix == &quot;http:&quot;) {
                window.open(WebSite.value);
            }
            else {
                window.open(&quot;http://&quot; + WebSite.value);
            }
        }
    }
}
crmForm.all.websiteurl.attachEvent('ondblclick', CreateURL(crmForm.all.websiteurl));
</pre>
]]></content:encoded>
			<wfw:commentRss>http://crm.atechnisch.nl/2008/12/make-website-field-clickable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Change NavBar into iFrame</title>
		<link>http://crm.atechnisch.nl/2008/10/change-navbar-into-iframe/</link>
		<comments>http://crm.atechnisch.nl/2008/10/change-navbar-into-iframe/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 12:47:05 +0000</pubDate>
		<dc:creator>Huib Aarts</dc:creator>
				<category><![CDATA[Client Side Scripting]]></category>
		<category><![CDATA[MS CRM 4.0 Customizations]]></category>
		<category><![CDATA[iFrame]]></category>
		<category><![CDATA[innerHTML]]></category>
		<category><![CDATA[NavBar]]></category>

		<guid isPermaLink="false">http://crm.atechnisch.nl/2008/10/10/change-navbar-into-iframe/</guid>
		<description><![CDATA[I received a question about how to change the left NavBar into an iFrame.
After some experimentation, I have a solution:

if (document.all.tdAreas != null) {
document.all.tdAreas.parentElement.children[0].innerHTML = &#34;&#60;iFrame src = 'http://crm.atechnisch.nl' height = '100%'&#62;&#34;;
}

This should also work for other parts of the screen in a similar way.
]]></description>
			<content:encoded><![CDATA[<p>I received a question about how to change the left NavBar into an iFrame.<br />
After some experimentation, I have a solution:</p>
<pre class="brush: css;">
if (document.all.tdAreas != null) {
document.all.tdAreas.parentElement.children[0].innerHTML = &quot;&lt;iFrame src = 'http://crm.atechnisch.nl' height = '100%'&gt;&quot;;
}
</pre>
<p>This should also work for other parts of the screen in a similar way.</p>
]]></content:encoded>
			<wfw:commentRss>http://crm.atechnisch.nl/2008/10/change-navbar-into-iframe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Read-only fields on forms are not read-only</title>
		<link>http://crm.atechnisch.nl/2008/09/read-only-field-on-forms-are-not-read-only/</link>
		<comments>http://crm.atechnisch.nl/2008/09/read-only-field-on-forms-are-not-read-only/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 16:10:10 +0000</pubDate>
		<dc:creator>Huib Aarts</dc:creator>
				<category><![CDATA[Client Side Scripting]]></category>
		<category><![CDATA[MS CRM 3.0 Application]]></category>
		<category><![CDATA[MS CRM 4.0 Application]]></category>
		<category><![CDATA[authorization]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[read-only]]></category>
		<category><![CDATA[rights]]></category>

		<guid isPermaLink="false">http://crm.atechnisch.nl/2008/09/09/read-only-field-on-forms-are-not-read-only/</guid>
		<description><![CDATA[Fields in Ms Dynamics CRM cannot be set to read-only!!!
Ok, a little explanation and a demo script to show what I&#8217;m implying.
Yesterday a customer asked me to change the text in a read-only field. I&#8217;m system administrator on their system, so the easiest way should have been to change the Field Properties of the attribute, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Fields in Ms Dynamics CRM cannot be set to read-only!!!</strong><br />
Ok, a little explanation and a demo script to show what I&#8217;m implying.</p>
<p>Yesterday a customer asked me to change the text in a read-only field. I&#8217;m system administrator on their system, so the easiest way should have been to change the Field Properties of the attribute, but this would allow all users to change this attributes on all records.<br />
Another option would be to use the Enrich Functionality, described in this <a href="http://crm.atechnisch.nl/2008/08/07/enrich-data-via-data-management/" target="_blank">post</a>.</p>
<p>I tried a third option, triggering javascript via the Address Bar of Internet Explorer. The usage may be well know, but I never thought of using it to modify read-only fields on records. Well, it is surprisingly easy. All you need to know it the id of the attribute you want to modify. (The id can be found with something like the IE Developer Toolbar.)<br />
If you have the id the code is easy and you only have to copy it into the address bar of the record you want to modify:</p>
<pre class="brush: css;">
javascript:crmForm.all.new_attribute.DataValue = &quot;read-only doesn't work for me&quot;; crmForm.all.new_attribute.ForceSubmit = true; crmForm.Save();
</pre>
<p><strong>This means every user with modify rights on a record can change read-only field on that record.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://crm.atechnisch.nl/2008/09/read-only-field-on-forms-are-not-read-only/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hide “Add Existing” buttons</title>
		<link>http://crm.atechnisch.nl/2008/06/hide-%e2%80%9cadd-existing%e2%80%9d-buttons/</link>
		<comments>http://crm.atechnisch.nl/2008/06/hide-%e2%80%9cadd-existing%e2%80%9d-buttons/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 09:00:40 +0000</pubDate>
		<dc:creator>Huib Aarts</dc:creator>
				<category><![CDATA[Client Side Scripting]]></category>
		<category><![CDATA[MS CRM 4.0 Application]]></category>
		<category><![CDATA[MS CRM 4.0 Customizations]]></category>
		<category><![CDATA[Hide “Add Existing” buttons]]></category>

		<guid isPermaLink="false">http://crm.atechnisch.nl/2008/06/11/hide-%e2%80%9cadd-existing%e2%80%9d-buttons/</guid>
		<description><![CDATA[A couple of times a month I read the question on a forum how to hide/disable the “Add Existing” button. Unfortunately nobody comes up with a suitable solution.Within my current project someone asked me the same question. My first reaction was that is not possible within the borders of Microsoft support we have committed ourselves [...]]]></description>
			<content:encoded><![CDATA[<p><span lang="EN-US">A couple of times a month I read the question on a forum how to hide/disable the “Add Existing” button. Unfortunately nobody comes up with a suitable solution.</span><span lang="EN-US">Within my current project someone asked me the same question. My first reaction was that is not possible within the borders of Microsoft support we have committed ourselves to. Some moments later I realized the “Add Existing” button we were talking about was displayed in an iFrame. That is a different story.</span><span lang="EN-US">Based on a previous <a href="http://crm.atechnisch.nl/2008/03/28/hiding-bars-in-iframes/" target="_blank">post</a>, I am able to hide elements in an iFrame and this includes the “Add Existing” button. See picture below (for original form see other <a href="http://crm.atechnisch.nl/2008/03/28/hiding-bars-in-iframes/" target="_blank">post</a>).</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><a href="http://crm.atechnisch.nl/crm_upload/2008/06/add_existing.gif" target="_blank"><img src="http://crm.atechnisch.nl/crm_upload/2008/06/add_existing.gif" border="0" alt="add_existing.gif" width="490" height="396" /></a></span></p>
<p><span lang="EN-US"><span lang="EN-US">The script I added is simple:</span></span></p>
<pre class="brush: jscript;">
//hide the Add Existing button
if (objWindow.document.all._MBtoplocAssocOneToMany4200AccountActivityPointers !=null)
{
objWindow.document.all._MBtoplocAssocOneToMany4200AccountActivityPointers.style.display ='none';
}
</pre>
<p><span lang="EN-US"><span lang="EN-US"> </span><span lang="EN-US">In my previous <a href="http://crm.atechnisch.nl/2008/03/28/hiding-bars-in-iframes/" target="_blank">post</a> you can read how to use it.</span></span></p>
<p><span lang="EN-US"><span lang="EN-US"></span><span lang="EN-US">I know it does not solve the problem of hiding the “Add Existing” button on the Associated views, but in some cases it can be a way out.</span></span><span lang="EN-US"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://crm.atechnisch.nl/2008/06/hide-%e2%80%9cadd-existing%e2%80%9d-buttons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hiding bars in iFrames</title>
		<link>http://crm.atechnisch.nl/2008/03/hiding-bars-in-iframes/</link>
		<comments>http://crm.atechnisch.nl/2008/03/hiding-bars-in-iframes/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 12:48:54 +0000</pubDate>
		<dc:creator>Huib Aarts</dc:creator>
				<category><![CDATA[Client Side Scripting]]></category>
		<category><![CDATA[MS CRM 4.0 Customizations]]></category>

		<guid isPermaLink="false">http://crm.atechnisch.nl/2008/03/28/hiding-bars-in-iframes/</guid>
		<description><![CDATA[Showing related entities in an iFrame is well known. Sometimes you only want to show the associated view without all the functionality. For example, if you show the activities associated view in an iFrame you get:

But sometime you only want to show:

This can be achieved by adding a couple of line to your code to [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US">Showing related entities in an iFrame is well known. Sometimes you only want to show the associated view without all the functionality. For example, if you show the activities associated view in an iFrame you get:</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><a title="Activities_iFrame01" href="http://crm.atechnisch.nl/crm_upload/2008/03/activities_iframe01.gif" target="_blank"><img src="http://crm.atechnisch.nl/crm_upload/2008/03/activities_iframe01.gif" border="0" alt="Activities_iFrame01" width="490" height="390" /></a></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span lang="EN-US">But sometime you only want to show:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span lang="EN-US"><span lang="EN-US"><a title="Activities_iFrame02" href="http://crm.atechnisch.nl/crm_upload/2008/03/activities_iframe02.gif" target="_blank"><img src="http://crm.atechnisch.nl/crm_upload/2008/03/activities_iframe02.gif" border="0" alt="Activities_iFrame02" width="490" height="390" /></a></span></span></span></p>
<p><span lang="EN-US"><span lang="EN-US"></span></span><span lang="EN-US"><span style="font-size: 11pt; font-family: 'Calibri','sans-serif'" lang="EN-US"><span lang="EN-US"><span lang="EN-US">This can be achieved by adding a couple of line to your code to the code for your iFrame:</span></span></span></span><span lang="EN-US"><span style="font-size: 11pt; font-family: 'Calibri','sans-serif'" lang="EN-US"><span lang="EN-US">
<pre class="brush: css;">
//hide the Filter bar
if (objWindow.document.all.AppGridFilterSelector!=null) {
objWindow.document.all.AppGridFilterSelector.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.children[0].style.display='none';
}
//hide the menu bar
if (objWindow.document.all.mnuBar1 !=null) {
objWindow.document.all.mnuBar1.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.style.display='none';
}
</pre>
<p></span></span></span><span lang="EN-US"><span style="font-size: 11pt; font-family: 'Calibri','sans-serif'" lang="EN-US"><span lang="EN-US"><span lang="EN-US"><span lang="EN-US"></span><span lang="EN-US">With the rest of the code it becomes like this:</span></span><span lang="EN-US"></p>
<pre class="brush: css;">
//first check if the user is online. If the user is online, than the organization name should be used in the link. Otherwise (if offline) the organisation name should not be used in the link.
if (IsOnline())
{
var org = &quot;/&quot; + ORG_UNIQUE_NAME;
}
else
{
var org = &quot;&quot;;
}
//the first part is to hide the borders
var frameName = 'IFRAME_Activities';
var objFrame = document.getElementById(frameName);
var objWindow = document.frames[frameName];
objFrame.allowTransparency=true;
objFrame.onreadystatechange = function () {
if (objWindow.document.readyState=='complete') {
objWindow.document.body.style.backgroundColor='transparent';
if (objWindow.document.getElementsByTagName('BODY')[0]!=null) {
objWindow.document.getElementsByTagName('BODY')[0].style.padding='0px';
}
if (objWindow.document.getElementsByTagName('TABLE')[0]!=null) {
objWindow.document.getElementsByTagName('TABLE')[0].cellPadding='0';
objWindow.document.getElementsByTagName('TABLE')[0].style.border='0px';
}
}
//hide the Filter bar
if (objWindow.document.all.AppGridFilterSelector!=null) {
objWindow.document.all.AppGridFilterSelector.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.children[0].style.display='none';
}
//hide the menu bar
if (objWindow.document.all.mnuBar1 !=null) {
objWindow.document.all.mnuBar1.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.style.display='none';
}
}
//setting the contents of the iframe
var navFrame2;
navFrame2 =
document.all.navActivities;
var navWindow = document.frames['IFRAME_Activities_d'];
//and checking if the entity has been saved, nor quick create nor bulk edit is.
if (crmForm.FormType==1  || crmForm.FormType == 5 || crmForm.FormType == 6)
{
document.all.IFRAME_Activities.src=&quot;about:blank&quot;;
}
else
{
if (navFrame2 != null)
{
document.all.IFRAME_Activities.src= org + &quot;/sfa/accts/areas.aspx?oId=&quot; +
crmForm.ObjectId +&quot;&amp;amp;oType=&quot;+crmForm.ObjectTypeCode+&quot;&amp;amp;security=852023&amp;amp;tabSet=areaActivities&quot;;
navFrame2.name = navFrame2.id;
}
else{
alert(&quot;Page Not Found&quot;);
}
}
</pre>
<p></span></span></span></span><span lang="EN-US"><span style="font-size: 11pt; font-family: 'Calibri','sans-serif'" lang="EN-US"><span lang="EN-US"></span></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://crm.atechnisch.nl/2008/03/hiding-bars-in-iframes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conditional Lookup on Primary Contact of an Account</title>
		<link>http://crm.atechnisch.nl/2008/02/conditional-lookup-on-primary-contact-of-an-account/</link>
		<comments>http://crm.atechnisch.nl/2008/02/conditional-lookup-on-primary-contact-of-an-account/#comments</comments>
		<pubDate>Tue, 19 Feb 2008 14:23:47 +0000</pubDate>
		<dc:creator>Huib Aarts</dc:creator>
				<category><![CDATA[Client Side Scripting]]></category>
		<category><![CDATA[MS CRM 4.0 Customizations]]></category>
		<category><![CDATA[Account]]></category>
		<category><![CDATA[Conditional]]></category>
		<category><![CDATA[Filtered Lookup]]></category>
		<category><![CDATA[Lookup]]></category>
		<category><![CDATA[Primary Contact]]></category>
		<category><![CDATA[replace]]></category>

		<guid isPermaLink="false">http://crm.atechnisch.nl/2008/02/19/conditional-lookup-on-primary-contact-of-an-account/</guid>
		<description><![CDATA[This Post is based on a Post from AdvantageWorks in which a Filtered Lookup between 2 Lookups is described. Hessel Miedema and I created a Version of the Lookup for the Primary Contact of an Account. We used the Account Name as input for the Search Box of the Lookup of the Primary Contact. (Be [...]]]></description>
			<content:encoded><![CDATA[<p align="left">This Post is based on a Post from <a href="http://advantageworks.blogspot.com/2008/02/pseudo-filtered-lookup-dialog-in.html" target="_blank"><strong>AdvantageWorks</strong></a> in which a Filtered Lookup between 2 Lookups is described. Hessel Miedema and I created a Version of the Lookup for the Primary Contact of an Account. We used the Account Name as input for the Search Box of the Lookup of the Primary Contact. (Be aware that your Account Names need to be Unique in this Case).</p>
<p align="left">The main Reason for this Post is that we noticed that the &#8220;&amp;&#8221; character is Not allowed in a URL Request, but is allowed as Search Value. The &#8220;&amp;&#8221; character needs to be replaced by &#8220;%26&#8243; to function properly. A list of characters can be found in the <strong><a title="ASCII Code - The extended ASCII table" href="http://www.ascii-code.com/" target="_blank">The extended ASCII table </a>.</strong></p>
<p align="left">The example we used on the OnLoad of the Account:</p>
<pre class="brush: css;">
crmForm.all.primarycontactid.additionalparams = 'search=' + crmForm.all.name.DataValue.replace(&quot;&amp;&quot;,&quot;%26&quot;).replace(&quot;+&quot;,&quot;%2b&quot;);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://crm.atechnisch.nl/2008/02/conditional-lookup-on-primary-contact-of-an-account/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Publish Entity after creating Workflow</title>
		<link>http://crm.atechnisch.nl/2008/02/publish-entity-after-creating-workflow/</link>
		<comments>http://crm.atechnisch.nl/2008/02/publish-entity-after-creating-workflow/#comments</comments>
		<pubDate>Fri, 15 Feb 2008 15:13:06 +0000</pubDate>
		<dc:creator>Huib Aarts</dc:creator>
				<category><![CDATA[Client Side Scripting]]></category>
		<category><![CDATA[MS CRM 4.0 Application]]></category>
		<category><![CDATA[MS CRM 4.0 Customizations]]></category>
		<category><![CDATA[Client Side Code]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Microsoft Dynamics CRM 4.0]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://crm.atechnisch.nl/2008/02/15/publish-entity-after-creating-workflow/</guid>
		<description><![CDATA[I have noticed that after publishing a Workflow on an Entity, the custom Client Side Code on the Form of that Entity not always works before publishing the Entity again.
After publishing the Entity everything (including the Workflow) works fine.
]]></description>
			<content:encoded><![CDATA[<p>I have noticed that after publishing a Workflow on an Entity, the custom Client Side Code on the Form of that Entity not always works before publishing the Entity again.<br />
After publishing the Entity everything (including the Workflow) works fine.</p>
]]></content:encoded>
			<wfw:commentRss>http://crm.atechnisch.nl/2008/02/publish-entity-after-creating-workflow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Business Logic on Forms</title>
		<link>http://crm.atechnisch.nl/2008/02/business-logic-on-forms/</link>
		<comments>http://crm.atechnisch.nl/2008/02/business-logic-on-forms/#comments</comments>
		<pubDate>Mon, 04 Feb 2008 12:16:48 +0000</pubDate>
		<dc:creator>Huib Aarts</dc:creator>
				<category><![CDATA[Client Side Scripting]]></category>
		<category><![CDATA[MS CRM 3.0 Application]]></category>
		<category><![CDATA[MS CRM 3.0 Customizations]]></category>
		<category><![CDATA[MS CRM 4.0 Application]]></category>
		<category><![CDATA[MS CRM 4.0 Customizations]]></category>
		<category><![CDATA[Business Logic]]></category>
		<category><![CDATA[user acceptance]]></category>

		<guid isPermaLink="false">http://crm.atechnisch.nl/2008/02/04/business-logic-on-forms/</guid>
		<description><![CDATA[The only way a CRM system can work properly is when the inserted data can be retrieved and used in a sensible way.
The other way around, don&#8217;t put any data into the system you do not want to retrieve in a later stage. That is a complete waste of time.
Furthermore make it as easy as [...]]]></description>
			<content:encoded><![CDATA[<p align="left">The only way a CRM system can work properly is when the inserted data can be retrieved and used in a sensible way.<br />
The other way around, don&#8217;t put any data into the system you do not want to retrieve in a later stage. That is a complete waste of time.<br />
Furthermore make it as easy as possible to record the data. It is not the goal to put data in the system, the goal is to have (useful and up-to-date) data in the system.In this discussion I want to show one example of a very simple way to ensure your data is valid and searchable.For example company ABC want to keep track of their customers. They want to know what kind of computer equipment they have. company ABC sells monitors, keyboards and mouses. Their are three different monitors 17&#8243;, 19&#8243; and 21&#8243;. They have wired and wireless keyboards. and for mouses the same.<br />
Their customers can have multiple of each. You want to record everything about your customer and you want to search the system as many as possible ways.The easiest way to record this is with a checkbox per product-category, a checkbox per sub-category and an integer per sub-category to record the amount for that sub-category.</p>
<p align="left"><a target="_blank" href="http://crm.atechnisch.nl/crm_upload/2008/02/checkboxes.gif" title="checkboxes"><img border="0" width="341" src="http://crm.atechnisch.nl/crm_upload/2008/02/checkboxes.gif" alt="checkboxes" height="177" /></a></p>
<p align="left">Now if you want to search on customer who have monitor you will search on the True value of the Monitor checkbox. If one of your employees has entered 25 17&#8243; monitors at a customer, but did not check the Monitor checkbox, this result will not show up in your query.<br />
You can create a query that contains looks for the True value of the Monitor checkbox OR for the True value of the sub-category 17&#8243; checkbox OR for the True value of the sub-category 19&#8243; checkbox OR for the True value of the sub-category 21&#8243; checkbox OR if the 17&#8243; amount field contains data OR if the 19&#8243; amount field contains data OR if the 21&#8243; amount field contains data. This will not make live easier!<br />
Another way to achieve your objectives is to add an onChange event to all the fields.<br />
When an amount is entered you can be sure that the sub-category checkbox needs to be checked AND that the category checkbox needs to be checked. When the sub-category is checked the category needs to be checked. You can do this via a very simple onChange event.<br />
Additional to this you can uncheck the sub-categories AND clear the amounts if an employee uncheckes the category. Because if a customer does not have monitors, than he will not have 17&#8243;, 19&#8243; NOR 21&#8243; monitors.<br />
The same goes for the sub-category. If the sub-category is unchecked than the amount should be cleared. If you don&#8217;t have any 17&#8243; monitors, than the amount is &#8216;null&#8217;.</p>
<p align="left"><strong>code for onChange Category Level: </strong></p>
<pre class="brush: css;">
if (crmForm.all.new_categorymonitor.DataValue == &quot;1&quot;)
{
}
else
{
crmForm.all.new_sub-category17.DataValue = false;
crmForm.all.new_amount17.DataValue = null;

crmForm.all.new_sub-category19.DataValue = false;
crmForm.all.new_amount19.DataValue = null;

crmForm.all.new_sub-category21.DataValue = false;
crmForm.all.new_amount21.DataValue = null;
}
</pre>
<p align="left"><strong>code for onChange Sub-Category Level: </strong></p>
<pre class="brush: css;">
if (crmForm.all.new_sub-category17.DataValue == &quot;1&quot;)
{
crmForm.all.new_categorymonitor.DataValue = true;
}
else
{
crmForm.all.new_amount17.DataValue = null;
}
</pre>
<p align="left"><strong>code for onChange amount Level: </strong></p>
<pre class="brush: css;">
if (crmForm.all.new_amount17.DataValue != null)
{
crmForm.all.new_categorymonitor.DataValue = true;
crmForm.all.new_sub-category17.DataValue = true;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://crm.atechnisch.nl/2008/02/business-logic-on-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multilingual Labels on Custom Buttons</title>
		<link>http://crm.atechnisch.nl/2008/01/multilingual-labels-on-custom-buttons/</link>
		<comments>http://crm.atechnisch.nl/2008/01/multilingual-labels-on-custom-buttons/#comments</comments>
		<pubDate>Wed, 30 Jan 2008 09:59:56 +0000</pubDate>
		<dc:creator>Huib Aarts</dc:creator>
				<category><![CDATA[Client Side Scripting]]></category>
		<category><![CDATA[MS CRM 4.0 Customizations]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[Multilingual]]></category>

		<guid isPermaLink="false">http://crm.atechnisch.nl/2008/01/30/multilingual-labels-on-custom-buttons/</guid>
		<description><![CDATA[In addition to the last post and a new Feature of MS CRM 4.0, I have improved my script to create a Button on a MS CRM Form with a Multilingual Extension.I will show the same script as in the last post, see Screens over there, but with the Multilingual possibilities:

//to hide the address details [...]]]></description>
			<content:encoded><![CDATA[<p align="left">In addition to the last post and a new Feature of MS CRM 4.0, I have improved my script to create a Button on a MS CRM Form with a Multilingual Extension.I will show the same script as in the last post, see Screens over there, but with the Multilingual possibilities:</p>
<pre class="brush: css;">
//to hide the address details onload
crmForm.all.address1_name_c.parentElement.parentElement.parentElement.style.display ='none';

//USER_LANGUAGE_CODE: Provides an LCID value representing the Microsoft Dynamics CRM Language Pack that the user has chosen
var Lang = USER_LANGUAGE_CODE
//if language is English
if (Lang == &quot;1033&quot;)
{
var BtnTxt = &quot;Show Address Details&quot;
}
//if language is Dutch
if (Lang == &quot;1043&quot;)
{
var BtnTxt = &quot;Bekijk Adres Details&quot;
}
//if language is French
if (Lang == &quot;1036&quot;)
{
var BtnTxt = &quot;Affiche les details de l'adresse&quot;
}

// Replace the attribute new_button with the button and create a link to the onclick function
function CreateButton() {
var fieldTable = crmForm.all.new_button_d;

var html = &quot;&lt;table border='0' cellspacing='0' cellpadding='0'&gt;&lt;tr&gt;&lt;td width='0px'&gt;&quot; + fieldTable.innerHTML + &quot;&lt;/td&gt;&lt;td width='200px'&gt;&lt;input type='button' id='btn_details' onclick='Button_OnClick()' style='background-color:#d8e8ff' style='border-width:2px'/&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&quot;;
fieldTable.innerHTML = html;

//hide the new_button attribute
document.all.new_button.style.display='none';
crmForm.all.new_button_c.innerText=&quot;&quot;;

//change the label of the button dependend on the language
var objBtn = document.getElementById('btn_details');
objBtn.value = BtnTxt;
objBtn.title = BtnTxt;

}
// Function to be triggered onClick
Button_OnClick = function() {
//to show the address details
crmForm.all.address1_name_c.parentElement.parentElement.parentElement.style.display ='block';
//In this case I hide the button, because I haven't added the button has not function anymore in this case
crmForm.all.new_button_c.parentElement.parentElement.parentElement.style.display ='none';
}
// Initialization: Execute the selected sample
CreateButton();
</pre>
]]></content:encoded>
			<wfw:commentRss>http://crm.atechnisch.nl/2008/01/multilingual-labels-on-custom-buttons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
