<?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>Microsoft Dynamics CRM &#187; javascript in ms crm</title>
	<atom:link href="http://ms-dynamics-crm.com.ua/tag/javascript-in-ms-crm/feed/" rel="self" type="application/rss+xml" />
	<link>http://ms-dynamics-crm.com.ua</link>
	<description>Все о Microsoft Dynamics CRM</description>
	<lastBuildDate>Fri, 30 Jul 2010 08:18:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Спрятать часть с датой из поля типа DateTime.</title>
		<link>http://ms-dynamics-crm.com.ua/2010/07/27/ms-dynamics-crm4-hide-datepart-from-datetime-field/</link>
		<comments>http://ms-dynamics-crm.com.ua/2010/07/27/ms-dynamics-crm4-hide-datepart-from-datetime-field/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 08:49:13 +0000</pubDate>
		<dc:creator>Катерина Головчан</dc:creator>
				<category><![CDATA[ms crm 4.0]]></category>
		<category><![CDATA[CRM-форма]]></category>
		<category><![CDATA[javascript in ms crm]]></category>
		<category><![CDATA[tips and tricks]]></category>

		<guid isPermaLink="false">http://ms-dynamics-crm.com.ua/?p=1186</guid>
		<description><![CDATA[При создании атрибута типа Datetime  вы можете выбрать два варианта его отображения: только дата,дата и время. Ну а если нужно только время?
Можно создать атрибут типа DateTime, выбрать отображение Дата и время и средствами javascript на форме уже спрятать часть с датой.
Так как часть с временем недоступна по умолчанию (пока не будет заполнена часть с датой), [...]]]></description>
			<content:encoded><![CDATA[<p>При создании атрибута типа Datetime  вы можете выбрать два варианта его отображения: только дата,дата и время. Ну а если нужно только время?</p>
<p>Можно создать атрибут типа DateTime, выбрать отображение Дата и время и средствами javascript на форме уже спрятать часть с датой.</p>
<p>Так как часть с временем недоступна по умолчанию (пока не будет заполнена часть с датой), следует присвоить начальное значение полю и потом уже прятать дату.</p>
<p>crmForm.all.new_field.DataValue = new Date();<br />
document.getElementById(&laquo;new_field&raquo;).childNodes[0].childNodes[0].style.display = &laquo;none&raquo;;<br />
document.getElementById(&laquo;new_field&raquo;).childNodes[0].childNodes[1].style.display = &laquo;none&raquo;;</p>
<p>где new_field-ваше поле DateTime.</p>
]]></content:encoded>
			<wfw:commentRss>http://ms-dynamics-crm.com.ua/2010/07/27/ms-dynamics-crm4-hide-datepart-from-datetime-field/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Автонумератор для Microsoft Dynamics CRM 4.0. Plug-in</title>
		<link>http://ms-dynamics-crm.com.ua/2009/08/12/autonumber-for-ms-crm-4-plug-in/</link>
		<comments>http://ms-dynamics-crm.com.ua/2009/08/12/autonumber-for-ms-crm-4-plug-in/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 10:51:38 +0000</pubDate>
		<dc:creator>Костя Афендиков</dc:creator>
				<category><![CDATA[ms crm 4.0]]></category>
		<category><![CDATA[autonumber]]></category>
		<category><![CDATA[javascript in ms crm]]></category>
		<category><![CDATA[ms crm add-ons]]></category>
		<category><![CDATA[plug-in]]></category>

		<guid isPermaLink="false">http://ms-dynamics-crm.com.ua/?p=1029</guid>
		<description><![CDATA[В одном из постов я описывал как создать Автонумератор для Microsoft Dynamics CRM 4.0 с помощью механизма Workflow . Этот пример был больше ознакомительным с механизмом Workflow и использовать его на практике вызовет ряд неудобств. Сегодня я опишу как создать автонумерацию для любой сущности с помощью плагина. За основу был взят вариант http://www.codeplex.com/crmnumbering/ и немного [...]]]></description>
			<content:encoded><![CDATA[<p>В одном из постов я описывал как создать <a href="http://ms-dynamics-crm.com.ua/2009/07/10/autonumber-for-ms-crm-4-workflow/">Автонумератор для Microsoft Dynamics CRM 4.0 с помощью механизма Workflow </a>. Этот пример был больше ознакомительным с механизмом Workflow и использовать его на практике вызовет ряд неудобств. Сегодня я опишу как создать автонумерацию для любой сущности с помощью плагина. За основу был взят вариант http://www.codeplex.com/crmnumbering/ и немного модернизированный &laquo;под себя&raquo; с реализованной возможностью задавать префикс для генерируемого номера и более гибкой возможность настройки <img src='http://ms-dynamics-crm.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<span id="more-1029"></span></p>
<ol>
<li>Скачайте необходимые файлы: <a href="http://ms-dynamics-crm.com.ua/download/customizations-autonumber.zip">кастомизацию сущности</a> и <a href="http://ms-dynamics-crm.com.ua/download/AKAutoNumber.zip">сам плагин</a></li>
<li>Импортируем файл кастомизации. У вас создаться новая сущность <strong>Автонумератор (do_universalnumber)</strong></li>
<li>Опубликуем данную сущность</li>
<li>Создаем новую запись нашего Автонумератора.
<ol> <img class="alignnone size-full wp-image-1033" title="create autonumber" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/08/createautonumber1.png" alt="create autonumber" width="520" height="314" /></ol>
</li>
<p><strong>Пример:</strong> В поле Сущность выбираю &laquo;Контакт&raquo; -&gt; Жмем &laquo;Сохранить&raquo; -&gt; в поле &laquo;Атрибут&raquo; выбираю firstname -&gt; Указываю необходимый префикс и в поле &laquo;Счетчик&raquo; указываю начальное значение счетчика. -&gt; &laquo;Сохранить и закрыть&raquo;<br />
<strong>Примечание: </strong>т.к. в поле &laquo;Атрибут&raquo; необходимо выбирать только атрибуты типа <strong>nvarchar</strong></p>
<li>Регистрирую плагин <strong>AKAutoNumber.dll</strong><br />
<strong>Message</strong>: Create<br />
<strong>Primary Entity:</strong> contact<br />
<strong>Stage</strong>: Pre</p>
<p><img class="alignnone size-full wp-image-1034" title="plugin-register" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/08/plugin-register.png" alt="plugin-register" width="520" height="282" /></li>
<li> Тестируем.<br />
<img class="alignnone size-full wp-image-1038" title="result" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/08/result.png" alt="result" width="520" height="314" /></li>
</ol>
<p>Для того, чтобы создать автонумератор для другой сущности повторяем шаги <strong>4-5</strong></p>
<p><a href="http://ms-dynamics-crm.com.ua/download/customizations-autonumber.zip ">Вы можете скачать кастомизацию сущности</a> и <a href="http://ms-dynamics-crm.com.ua/download/AKAutoNumber.zip">сам плагин</a>. Улучшение кода приветствуется, сообщайте в комментариях <img src='http://ms-dynamics-crm.com.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em>Использовались: </em></p>
<p>http://www.codeplex.com/crmnumbering/ &#8211; основа плагина</p>
<p>http://a33ik.blogspot.com/ &#8211; примеры для создания динамического пиклиста сущностей</p>
<p><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://ms-dynamics-crm.com.ua/2009/08/12/autonumber-for-ms-crm-4-plug-in/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Пользовательские уведомления в MS Dynamics CRM 4.0</title>
		<link>http://ms-dynamics-crm.com.ua/2009/08/07/ms-crm-custom-notifications/</link>
		<comments>http://ms-dynamics-crm.com.ua/2009/08/07/ms-crm-custom-notifications/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 11:43:24 +0000</pubDate>
		<dc:creator>Катерина Головчан</dc:creator>
				<category><![CDATA[ms crm 4.0]]></category>
		<category><![CDATA[CRM-форма]]></category>
		<category><![CDATA[javascript in ms crm]]></category>

		<guid isPermaLink="false">http://ms-dynamics-crm.com.ua/?p=1010</guid>
		<description><![CDATA[Обычно, чтобы предупредить пользователя о чем-то, используют алерты, но это  не всегда удобно, можно пользоваться своими уведомлениями:

как, например, это по умолчанию сделано в CRM:
Marco Amoedo предложил код,  который можно использовать для вставки своих уведомлений. Вот пример:


/*============== addNotification function =============

Adds a warning message on the top of the entity form using
the same visual style as [...]]]></description>
			<content:encoded><![CDATA[<p>Обычно, чтобы предупредить пользователя о чем-то, используют алерты, но это  не всегда удобно, можно пользоваться своими уведомлениями:</p>
<div id="attachment_1021" class="wp-caption aligncenter" style="width: 238px"><img class="size-full wp-image-1021" title="ms-crm-example-preview-notification" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/08/ms-crm-example-preview-notification.png" alt="ms-crm-example-preview-notification" width="228" height="125" /><p class="wp-caption-text">пользовательские уведомления</p></div>
<p style="text-align: center;">
<p>как, например, это по умолчанию сделано в CRM:</p>
<div id="attachment_1012" class="wp-caption aligncenter" style="width: 428px"><img class="size-full wp-image-1012" title="ms-crm-product-example-of-notification" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/08/ms-crm-product-example-of-notification.png" alt="Например, при создании продукта" width="418" height="184" /><p class="wp-caption-text">Например, при создании продукта</p></div>
<p><a rel="nofollow" href="http://marcoamoedo.com/blog/show-custom-warning-messages-on-microsoft-dynamics-crm/">Marco Amoedo</a> предложил код,  который можно использовать для вставки своих уведомлений. Вот пример:</p>
<p><span id="more-1010"></span></p>
<blockquote>
<pre id="codeSnippet" style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"><span style="color: #008000;">/*============== addNotification function =============</span>

<span style="color: #008000;">Adds a warning message on the top of the entity form using</span>
<span style="color: #008000;">the same visual style as Microsoft CRM</span>

<span style="color: #008000;">Params: message to be shown to the user</span>
<span style="color: #008000;">=======================================================*/</span>

addNotification = <span style="color: #0000ff;">function</span>(message) {

    <span style="color: #0000ff;">var</span> notificationHTML = <span style="color: #006080;">'&lt;DIV class="Notification"&gt;&lt;TABLE cellSpacing="0" cellPadding="0"&gt;
&lt;TBODY&gt;&lt;TR&gt;&lt;TD vAlign="top"&gt;&lt;IMG class="ms-crm-Lookup-Item" alt=""
src="/_imgs/error/notif_icn_crit16.png" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;SPAN&gt;'</span> + message + <span style="color: #006080;">'&lt;/SPAN&gt;&lt;/TD&gt;
&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;'</span>;

    <span style="color: #0000ff;">var</span> notificationsArea = document.getElementById(<span style="color: #006080;">'Notifications'</span>);

    <span style="color: #0000ff;">if</span> (notificationsArea == <span style="color: #0000ff;">null</span>) <span style="color: #0000ff;">return</span>;

    notificationsArea.innerHTML += notificationHTML;

    notificationsArea.style.display = <span style="color: #006080;">'block'</span>;

}
<span style="color: #008000;">/*============= END addNotification function ===========*/</span>

<span style="color: #008000;">//Example of utilizations</span>
addNotification(<span style="color: #006080;">'Пример уведомления'</span>);</pre>
</blockquote>
<p><img class="aligncenter size-full wp-image-1019" title="ms-crm-custom-case-example-of-notification" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/08/ms-crm-custom-case-example-of-notification.png" alt="ms-crm-custom-case-example-of-notification" width="441" height="226" /></p>
<p>А <a rel="nofollow" href="http://a-crm.blogspot.com/2009/07/show-custom-notifications-on-microsoft.html">Dejan Dular</a> быстро добавил туда  разные типы уведомлений:</p>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"><span style="color: #008000;">/*============== addNotification function =============</span></pre>
<p><!--CRLF--></p>
<p><!--CRLF--></p>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"><span style="color: #008000;">Parameters:</span></pre>
<p><!--CRLF--></p>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"><span style="color: #008000;">message - message to be shown to the user</span></pre>
<p><!--CRLF--></p>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"><span style="color: #008000;">messageType - Type of the message: 1 - critical, 2 - info, 3 - warning</span></pre>
<p><!--CRLF--></p>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"><span style="color: #008000;">notificationId - ID of the notification (needed for updating purposes)</span></pre>
<p><!--CRLF--></p>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"><span style="color: #008000;">    </span></pre>
<p><!--CRLF--></p>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"><span style="color: #008000;">Created by:</span></pre>
<p><!--CRLF--></p>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"><span style="color: #008000;">Marco Amoedo (http://marcoamoedo.com) - the idea and initial function</span></pre>
<p><!--CRLF--></p>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"><span style="color: #008000;">Dejan Dular (http://a-crm.blogspot.com) - upgraded functionality (different icons, updating and
 deleting notifications)</span></pre>
<p><!--CRLF--><span style="color: #008000;"> </span></p>
<p><!--CRLF--></p>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"><span style="color: #008000;">=======================================================*/</span></pre>
<p><!--CRLF--></p>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">addNotification = <span style="color: #0000ff;">function</span>(message, messageType, notificationId)</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">{</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    <span style="color: #0000ff;">var</span> notificationsArea = document.getElementById(<span style="color: #006080;">'Notifications'</span>);</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    <span style="color: #0000ff;">if</span> (notificationsArea == <span style="color: #0000ff;">null</span>)</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    {</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        <span style="color: #008000;">//Don't display message when deleting a notification.</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        <span style="color: #0000ff;">if</span> (messageType != 4)</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        {</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">            <span style="color: #008000;">//Sorry. Notifications are not possible on this form.</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">            <span style="color: #008000;">//Display a message box instead of notification.</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">            alert(message);</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        }</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        <span style="color: #0000ff;">return</span>;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    }</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    <span style="color: #0000ff;">var</span> notificationDIV = document.getElementById(<span style="color: #006080;">'NotificationDiv_'</span> + notificationId);</pre>
<p><!--CRLF--></p>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    <span style="color: #008000;">//Delete the notification</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    <span style="color: #0000ff;">if</span> (messageType == 4)</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    {</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        <span style="color: #0000ff;">if</span> (notificationDIV != <span style="color: #0000ff;">null</span>)</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        {</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">            <span style="color: #008000;">//Remove the notification</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">            notificationsArea.removeChild(notificationDIV);</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        }</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        <span style="color: #0000ff;">return</span>;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    }</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    <span style="color: #008000;">//Get the notification image. The default is info image.</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    <span style="color: #0000ff;">var</span> notificationImage;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    <span style="color: #0000ff;">switch</span> (messageType)</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    {</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        <span style="color: #0000ff;">case</span> 1:</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">            notificationImage = <span style="color: #006080;">'/_imgs/error/notif_icn_crit16.png'</span>;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">            <span style="color: #0000ff;">break</span>;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        <span style="color: #0000ff;">case</span> 2:</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">            notificationImage = <span style="color: #006080;">'/_imgs/error/notif_icn_info16.png'</span>;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">            <span style="color: #0000ff;">break</span>;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        <span style="color: #0000ff;">case</span> 3:</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">            notificationImage = <span style="color: #006080;">'/_imgs/error/notif_icn_warn16.png'</span>;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">            <span style="color: #0000ff;">break</span>;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        <span style="color: #0000ff;">default</span>:</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">            notificationImage = <span style="color: #006080;">'/_imgs/error/notif_icn_info16.png'</span>;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    }</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    <span style="color: #008000;">//Create notification</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    <span style="color: #0000ff;">var</span> notificationTable = <span style="color: #006080;">'&lt;TABLE cellSpacing="0" cellPadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD vAlign="top"&gt;
&lt;IMG class="ms-crm-Lookup-Item" alt="" src="'</span> + notificationImage + <span style="color: #006080;">'" /&gt;&lt;/TD&gt;&lt;TD&gt;
&lt;SPAN&gt;'</span> + message +<span style="color: #006080;">'&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;'</span>;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    <span style="color: #008000;">//Check if the notification with same ID already exists</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    <span style="color: #0000ff;">if</span> (notificationDIV == <span style="color: #0000ff;">null</span>)</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    {</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        <span style="color: #008000;">//Create a new notification</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        <span style="color: #0000ff;">var</span> notificationHTML = <span style="color: #006080;">'&lt;DIV class="Notification" ID="NotificationDiv_'</span> + notificationId + <span style="color: #006080;">'"&gt;'</span> + notificationTable + <span style="color: #006080;">'&lt;/DIV&gt;'</span>;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        notificationsArea.innerHTML += notificationHTML;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        notificationsArea.style.display = <span style="color: #006080;">'block'</span>;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    }</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    <span style="color: #0000ff;">else</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    {</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        <span style="color: #008000;">//Update the notification.</span></pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">        notificationDIV.innerHTML = notificationTable;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">    }</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: white; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;">}</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"><span style="color: #008000;">/*============= END addNotification function ===========*/
</span></pre>
<p>Эта функция добавляется на событие Onload, а ее вызов можно делать там, где вам нужно.</p>
<pre id="codeSnippet" style="border-style: none; margin: 0em; padding: 0px; overflow: visible; text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New',courier,monospace; direction: ltr; color: black; font-size: 8pt;"><strong>addNotification(<span style="color: #0000ff;">string</span> message, <span style="color: #0000ff;">int</span> messageType, <span style="color: #0000ff;">string</span> notificationId)</strong></pre>
<p>Параметры:</p>
<p>message -Текст уведомления</p>
<p>messageType &#8211; Тип уведомления (1-critical, 2-info, 3- warning, 4-delete the notification)</p>
<p>notificationId &#8211; строка с информацией. Если фунция будет вызвана позже с существующим notificationId, уведомление будет обновлено.</p>
<p><img class="aligncenter size-full wp-image-1022" title="ms-crm-dif-custom-case-example-of-notification" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/08/ms-crm-dif-custom-case-example-of-notification.png" alt="ms-crm-dif-custom-case-example-of-notification" width="380" height="201" /></p>
]]></content:encoded>
			<wfw:commentRss>http://ms-dynamics-crm.com.ua/2009/08/07/ms-crm-custom-notifications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Фильтрация записей в lookup. FetchXML на основе расширенного поиска</title>
		<link>http://ms-dynamics-crm.com.ua/2009/07/23/filtered-records-in-lookup-fetchxml/</link>
		<comments>http://ms-dynamics-crm.com.ua/2009/07/23/filtered-records-in-lookup-fetchxml/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 06:18:43 +0000</pubDate>
		<dc:creator>Костя Афендиков</dc:creator>
				<category><![CDATA[ms crm 4.0]]></category>
		<category><![CDATA[javascript in ms crm]]></category>
		<category><![CDATA[lookup]]></category>
		<category><![CDATA[unsupported]]></category>

		<guid isPermaLink="false">http://ms-dynamics-crm.com.ua/?p=859</guid>
		<description><![CDATA[Очень часто возникает необходимость сделать так, чтобы лукап представлял нам уже отфильтрованные данные. Например такие, которые мы можем составить с помощью встроенного инструмента в MS CRM &#8211; &#171;Расширенного поиска&#187;. Один из методов фильтрации я уже описывал здесь &#171;Фильтрация в Microsoft Dynamics CRM 4.0&#171;. На основе такого метода не получится выполнить сложную фильтрацию.
В данном посте я [...]]]></description>
			<content:encoded><![CDATA[<p>Очень часто возникает необходимость сделать так, чтобы лукап представлял нам уже отфильтрованные данные. Например такие, которые мы можем составить с помощью встроенного инструмента в MS CRM &#8211; &laquo;Расширенного поиска&raquo;. Один из методов фильтрации я уже описывал здесь &laquo;<a title="Фильтрация записей в ms crm 4" href="http://ms-dynamics-crm.com.ua/2009/02/16/filter-in-microsoft-dynamics-crm-40/">Фильтрация в Microsoft Dynamics CRM 4.0</a>&laquo;. На основе такого метода не получится выполнить сложную фильтрацию.</p>
<p>В данном посте я расскажу вам как осуществить такую фильтрации для лукапа с помощью <strong>FetchXml</strong>, сформировав fetch-запрос с помощью &laquo;Расширенного поиска&raquo;.</p>
<p><span id="more-859"></span></p>
<h3>Меняем файл lookupsingle.aspx (unsupported) <strong><br />
</strong></h3>
<p>Первое, что необходимо сделать это изменить файл <strong>lookupsingle.aspx</strong>. Обычно он находится здесь <strong>CRMWeb\_controls\lookup\lookupsingle.aspx</strong> и в самом начале файла вставляем этот код:</p>
<pre>&lt;script type="text/javascript"&gt;
protected override void OnLoad( EventArgs e )
{
      base.OnLoad(e);
      crmGrid.PreRender += new EventHandler( crmgrid_PreRender );
}

void crmgrid_PreRender( object sender , EventArgs e )
{
    // As we don’t want to break any other lookups, ensure that we use workaround only if
    // search parameter set to fetch xml.
    if (crmGrid.Parameters["search"] != null &amp;&amp; crmGrid.Parameters["search"].StartsWith("&lt;fetch"))
   {
        crmGrid.Parameters.Add("fetchxml", crmGrid.Parameters["search"]);
       // searchvalue needs to be removed as it’s typically set to a wildcard ‘*’
        crmGrid.Parameters.Remove("searchvalue");
        // Icing on a cake - ensure that user cannot create new contact outside of the account
        // and then select it.
        this._showNewButton = false;
    }
}
&lt;/script&gt;</pre>
<p><em>Примечание:</em> это неподдерживая кастомизация, не забудьте сделать копию оригинального файла lookupsingle.aspx</p>
<h3>Используем расширенный поиск для составления нужного нам фильтра</h3>
<p>Составляем необходимый фильтр с помощью &laquo;Расширенного поиска&raquo;, фильтр может быть сколь угодно сложным. Я же рассмотрю пока что простой пример.</p>
<p><em>Например: </em>Найти все контакты конкретной организации</p>
<p><img class="alignnone size-full wp-image-935" title="Фильтр расширенного поиска" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/07/fetchxml1.jpg" alt="Фильтр расширенного поиска" width="500" height="145" /></p>
<p>Фильтр готов! Жмем <strong>Найти. </strong>Если результат вас устраивает жмем <strong>F11 </strong>и в строку адреса вставляем следующий код:</p>
<p><strong>javascript:alert(resultRender.FetchXml.value);</strong></p>
<p>или этот</p>
<p><strong>javascript:alert(document.all.FetchXml.value);</strong></p>
<p>Получаем:</p>
<p><strong><img class="alignnone size-full wp-image-936" title="F11+popup" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/07/fetchxml2.jpg" alt="F11+popup" width="500" height="325" /><br />
</strong></p>
<p>Прямо на этом окне (popup) жмете <strong>ctrl+c</strong> и весь код будет скопирован в буфер, после чего вставьте его в текстовый редактор, блокнот например.</p>
<p><em>Такой результат:</em></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Сообщение с веб-страницы</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>&lt;fetch version=&raquo;1.0&#8243; output-format=&raquo;xml-platform&raquo; mapping=&raquo;logical&raquo; distinct=&raquo;false&raquo;&gt;&lt;entity name=&raquo;contact&raquo;&gt;&lt;attribute name=&raquo;do_accountbusinessunit&raquo;/&gt;&lt;attribute name=&raquo;parentcustomerid&raquo;/&gt;&lt;attribute name=&raquo;department&raquo;/&gt;&lt;attribute name=&raquo;ownerid&raquo;/&gt;&lt;attribute name=&raquo;jobtitle&raquo;/&gt;&lt;attribute name=&raquo;do_city&raquo;/&gt;&lt;attribute name=&raquo;fullname&raquo;/&gt;&lt;attribute name=&raquo;emailaddress1&#8243;/&gt;&lt;attribute name=&raquo;contactid&raquo;/&gt;&lt;order attribute=&raquo;fullname&raquo; descending=&raquo;false&raquo;/&gt;&lt;filter type=&raquo;and&raquo;&gt;&lt;condition attribute=&raquo;parentcustomerid&raquo; operator=&raquo;eq&raquo; uiname=&raquo;11&#8243; uitype=&raquo;account&raquo; value=&raquo;{CF5D35B3-C91E-DE11-B4A6-001517817114}&raquo;/&gt;&lt;/filter&gt;&lt;/entity&gt;&lt;/fetch&gt;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>ОК</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Здесь присутствует очень много лишнего, оставляем только главное для нас. А именно: условия фильтрации: &lt;filter type=&raquo;and&raquo;&gt;&lt;condition attribute=&raquo;parentcustomerid&raquo; operator=&raquo;eq&raquo; uiname=&raquo;11&#8243; uitype=&raquo;account&raquo; value=&raquo;<strong>{CF5D35B3-C91E-DE11-B4A6-001517817114}</strong>&laquo;/&gt;, в котором наш гуид организации заменим на <strong>crmForm.all.do_accountid.DataValue[0].id  &#8211; </strong>это гуид, полученный из лукапа организации.</p>
<h3>Вставляем следующий код с переработанным нашим фильтром.</h3>
<pre>var field1 = crmForm.all.do_contactid;
 field1.Disabled = false;
    // Ensure that search box is not visible in a lookup dialog
    field1.lookupbrowse = 1;

    field1.AddParam("search",
"&lt;fetch mapping='logical'&gt;&lt;entity name='contact'&gt;"
+"&lt;filter type='and'&gt;&lt;condition attribute='parentcustomerid' operator='eq' uitype='account'  value='"
+crmForm.all.do_accountid.DataValue[0].id
+"'/&gt;&lt;/filter&gt;&lt;/entity&gt;&lt;/fetch&gt;");</pre>
<p>Минус данного метода:</p>
<ul>
<li>приходится править оригинальный системный файл</li>
<li>исчезает окно поиска по отфильтрованным записям, поэтому если записей возвращается очень много будет неудобно искать нужную</li>
</ul>
<p>Плюсы:</p>
<ul>
<li>Фильтрация очень проста в реализации. Основная часть &laquo;ложится на плечи&raquo; Расширенного поиска, который, по сути, формирует нужный нам Fetch-запрос.</li>
<li>Метод покрывает бОльшую часть задач по фильтрованным лукапам</li>
</ul>
<p><em>Использовались эти материалы: </em></p>
<p>http://crm.georged.id.au/post/2008/02/16/Filtering-lookup-data-in-CRM-4.aspx</p>
<p>http://ronaldlemmen.blogspot.com/2009/02/using-advanced-find-for-fetchxml.html</p>
]]></content:encoded>
			<wfw:commentRss>http://ms-dynamics-crm.com.ua/2009/07/23/filtered-records-in-lookup-fetchxml/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Вспомогательные классы для работы с веб-службами MS CRM 4.0 из JavaScript</title>
		<link>http://ms-dynamics-crm.com.ua/2009/07/21/ms-crm-4-javascript-web-service-helper-object/</link>
		<comments>http://ms-dynamics-crm.com.ua/2009/07/21/ms-crm-4-javascript-web-service-helper-object/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 08:12:49 +0000</pubDate>
		<dc:creator>Костя Афендиков</dc:creator>
				<category><![CDATA[ms crm 4.0]]></category>
		<category><![CDATA[javascript in ms crm]]></category>
		<category><![CDATA[работа с веб-службой]]></category>

		<guid isPermaLink="false">http://ms-dynamics-crm.com.ua/?p=890</guid>
		<description><![CDATA[Хочу поделиться с Вами замечательной подборкой вспомогательных классов для работы с веб-службами в MS CRM 4.0, написанную Andrew Zimmer. Он попытался составить свои классы как можно более похожими на .NET SDK API для Microsoft Dynamics CRM 4.0.
Что же из этого вышло&#8230;

Когда мы вызываем методы веб-служб из JavaScript мы пишем код, который содержит XML-строки и в [...]]]></description>
			<content:encoded><![CDATA[<p>Хочу поделиться с Вами замечательной подборкой вспомогательных классов для работы с веб-службами в MS CRM 4.0, написанную <a href="http://blogs.inetium.com/blogs/azimmer/archive/2009/02/01/crm-4-0-javascript-web-service-helper-objects.aspx"><strong>Andrew Zimmer</strong></a>. Он попытался составить свои классы как можно более похожими на .NET SDK API для Microsoft Dynamics CRM 4.0.</p>
<p>Что же из этого вышло&#8230;</p>
<p><span id="more-890"></span></p>
<p>Когда мы вызываем методы веб-служб из JavaScript мы пишем код, который содержит XML-строки и в ручном режиме формируем HTTP запрос для CRM. Пример из SDK как может выглядеть такой код</p>
<h3><strong>Традиционный вызов веб-службы. Web Service Soap Request</strong></h3>
<pre>var xml = "&lt;?xml version='1.0' encoding='utf-8'?&gt;"+
"&lt;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'&gt;"+
authenticationHeader+
"&lt;soap:Body&gt;"+
"&lt;RetrieveMultiple xmlns='http://schemas.microsoft.com/crm/2007/WebServices'&gt;"+
"&lt;query xmlns:q1='http://schemas.microsoft.com/crm/2006/Query'"+
" xsi:type='q1:QueryExpression'&gt;"+
"&lt;q1:EntityName&gt;contact&lt;/q1:EntityName&gt;"+
"&lt;q1:ColumnSet xsi:type='q1:ColumnSet'&gt;"+
"&lt;q1:Attributes&gt;"+
"&lt;q1:Attribute&gt;fullname&lt;/q1:Attribute&gt;"+
"&lt;q1:Attribute&gt;contactid&lt;/q1:Attribute&gt;"+
"&lt;/q1:Attributes&gt;"+
"&lt;/q1:ColumnSet&gt;"+
"&lt;q1:Distinct&gt;false&lt;/q1:Distinct&gt;"+
"&lt;q1:Criteria&gt;"+
"&lt;q1:FilterOperator&gt;And&lt;/q1:FilterOperator&gt;"+
"&lt;q1:Conditions&gt;"+
"&lt;q1:Condition&gt;"+
"&lt;q1:AttributeName&gt;address1_city&lt;/q1:AttributeName&gt;"+
"&lt;q1:Operator&gt;Like&lt;/q1:Operator&gt;"+
"&lt;q1:Values&gt;"+
"&lt;q1:Value xsi:type='xsd:string'&gt;"+searchCity+"&lt;/q1:Value&gt;"+
"&lt;/q1:Values&gt;"+
"&lt;/q1:Condition&gt;"+
"&lt;/q1:Conditions&gt;"+
"&lt;/q1:Criteria&gt;"+
"&lt;/query&gt;"+
"&lt;/RetrieveMultiple&gt;"+
"&lt;/soap:Body&gt;"+
"&lt;/soap:Envelope&gt;";</pre>
<p>Этот код формирует тело SOAP запроса. Он не содержит HTTP-запроса или вывод данных.</p>
<h3><strong>Helper Objects</strong></h3>
<p><strong>Andrew Zimmer </strong>написал пару вспомогательных классов, которые действительно делают жизнь разработчика легче. Они не поддерживают все возможные методы (например условия фильтрации или группировки), однако, большую часть повседневных задач решают замечательно.</p>
<p>Примечание: т.к. движок блога иногда интерпретирует код по-своему, то вы можете скачать исходники <a title="ObjectHelperSample for ms crm 4.0" href="http://ms-dynamics-crm.com.ua/download/ObjectHelperSample.txt">здесь </a>или <a href="http://blogs.inetium.com/cfs-filesystemfile.ashx/__key/CommunityServer.Components.PostAttachments/00.00.02.07.57/ObjectHelperSample.txt">здесь</a></p>
<h3>Пример запроса для одной сущности</h3>
<pre>        var LOGICAL_OPERATOR_OR = "Or";</pre>
<pre>        var CONDITION_OPERATOR_EQUAL = "Equal";</pre>
<pre>        // Создаем объект и передаем параметры</pre>
<pre>        var crmService = new CrmService("contact", LOGICAL_OPERATOR_OR);</pre>
<pre>        crmService.AddColumn("jobtitle"); //хочу получить должность</pre>
<pre>        crmService.AddColumn("telephone1"); // и рабочий телефон</pre>
<pre>        // Задаю условия выборки</pre>
<pre>        crmService.AddFilterCondition("contactid", crmForm.all.do_contactid.DataValue[0].id, CONDITION_OPERATOR_EQUAL);</pre>
<pre>        // Возвращаю результат</pre>
<pre>        var result = crmService.RetrieveMultiple();</pre>
<pre>        // Пробегаю по строкам и получаю результат</pre>
<pre>        for (rowsNumber in result.Rows) {</pre>
<pre>            var row = result.Rows[rowsNumber];</pre>
<pre>            // Получаю столбец по имени</pre>
<pre>         crmForm.all.do_jobtitle.value = row.GetValue("jobtitle");</pre>
<pre>        crmForm.all.do_workphone.value = row.GetValue("telephone1");</pre>
<pre>        }</pre>
<p><a title="ObjectHelperSample for ms crm 4.0" href="http://ms-dynamics-crm.com.ua/download/ObjectHelperSample.txt ">Загрузить код вспомогательных классов</a></p>
<p><a href="http://blogs.inetium.com/blogs/azimmer/archive/2009/02/01/crm-4-0-javascript-web-service-helper-objects.aspx"><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ms-dynamics-crm.com.ua/2009/07/21/ms-crm-4-javascript-web-service-helper-object/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CrmService.Create через JScript при клике на кнопку CRM-формы</title>
		<link>http://ms-dynamics-crm.com.ua/2009/06/05/ms-crm-create-new-record-jscript/</link>
		<comments>http://ms-dynamics-crm.com.ua/2009/06/05/ms-crm-create-new-record-jscript/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 13:16:24 +0000</pubDate>
		<dc:creator>Катерина Головчан</dc:creator>
				<category><![CDATA[ms crm 4.0]]></category>
		<category><![CDATA[CRM-форма]]></category>
		<category><![CDATA[ISV]]></category>
		<category><![CDATA[javascript in ms crm]]></category>

		<guid isPermaLink="false">http://ms-dynamics-crm.com.ua/?p=795</guid>
		<description><![CDATA[Как создавать кнопку на CRM-форме рассказано в предыдущем посте, теперь рассмотрим как создать новую запись кликом по кнопке и используя javascript.
Создавать будем новый объект сущности Account.


Обработаем функцию TestTheButton(), которая отвечает за событие на клик кнопки:
///////создание и обработка кнопки
//Надпись на  кнопке
crmForm.all.new_button.DataValue = &#171;Button&#187;;
crmForm.all.new_button.style.textAlign = &#171;center&#187;;
crmForm.all.new_button.vAlign = &#171;middle&#187;;
//стили
crmForm.all.new_button.style.cursor = &#171;hand&#187;;
crmForm.all.new_button.style.backgroundColor = &#171;#CADFFC&#187;;
crmForm.all.new_button.style.color = &#171;#000000&#8243;;
crmForm.all.new_button.style.borderColor = &#171;#330066&#8243;;
crmForm.all.new_button.style.fontWeight = [...]]]></description>
			<content:encoded><![CDATA[<p>Как создавать кнопку на CRM-форме рассказано <a href="http://ms-dynamics-crm.com.ua/2009/06/05/ms-crm-create-button-on-crmform/">в предыдущем посте</a>, теперь рассмотрим как создать новую запись кликом по кнопке и используя javascript.</p>
<p>Создавать будем новый объект сущности Account.</p>
<p><img class="aligncenter size-full wp-image-800" title="ms-crm-create-new-record-jscript" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/06/ms-crm-create-new-record-jscript.png" alt="ms-crm-create-new-record-jscript" width="576" height="507" /></p>
<p><span id="more-795"></span></p>
<p>Обработаем функцию <strong>TestTheButton()</strong>, которая отвечает за событие на клик кнопки:</p>
<blockquote><p>///////создание и обработка кнопки</p>
<p>//Надпись на  кнопке<br />
crmForm.all.new_button.DataValue = &laquo;Button&raquo;;<br />
crmForm.all.new_button.style.textAlign = &laquo;center&raquo;;<br />
crmForm.all.new_button.vAlign = &laquo;middle&raquo;;<br />
//стили<br />
crmForm.all.new_button.style.cursor = &laquo;hand&raquo;;<br />
crmForm.all.new_button.style.backgroundColor = &laquo;#CADFFC&raquo;;<br />
crmForm.all.new_button.style.color = &laquo;#000000&#8243;;<br />
crmForm.all.new_button.style.borderColor = &laquo;#330066&#8243;;<br />
crmForm.all.new_button.style.fontWeight = &laquo;bold&raquo;;<br />
crmForm.all.new_button.contentEditable = false;<br />
//меняем цвет при наведении курсора<br />
crmForm.all.new_button.attachEvent(&laquo;onmousedown&raquo;,changeC1);<br />
crmForm.all.new_button.attachEvent(&laquo;onmouseup&raquo;,changeC2);<br />
crmForm.all.new_button.attachEvent(&laquo;onmouseover&raquo;,changeC3);<br />
crmForm.all.new_button.attachEvent(&laquo;onmouseleave&raquo;,changeC4);<br />
function changeC1() {<br />
crmForm.all.new_button.style.color = &laquo;000099&#8243;;<br />
}<br />
function changeC2() {<br />
crmForm.all.new_button.style.color = &laquo;000000&#8243;;<br />
}<br />
function changeC3() {<br />
crmForm.all.new_button.style.backgroundColor = &laquo;#6699FF&raquo;;<br />
}<br />
function changeC4() {<br />
crmForm.all.new_button.style.backgroundColor = &laquo;CADFFC&raquo;;<br />
}</p>
<p>//при клике на кнопке вызываем функцию TestTheButton<br />
crmForm.all.new_button.attachEvent(&laquo;onclick&raquo;,TestTheButton);</p>
<p><strong> function TestTheButton()<br />
{</strong><br />
// Значения для новой Организации</p>
<p>var name = &laquo;Account_Name&raquo;;<br />
var accountnumber=&raquo;Acc1234567&#8243;;<br />
var telephone1=&raquo;8-050-1234567&#8243;;</p>
<p>var authenticationHeader = GenerateAuthenticationHeader();</p>
<p>// Подготовка SOAP сообщения<br />
var xml = &laquo;&lt;?xml version=&#8217;1.0&#8242; encoding=&#8217;utf-8&#8242;?&gt;&raquo; +<br />
&laquo;&lt;soap:Envelope xmlns:soap=&#8217;http://schemas.xmlsoap.org/soap/envelope/&#8217;&raquo;+<br />
&raquo; xmlns:xsi=&#8217;http://www.w3.org/2001/XMLSchema-instance&#8217;&raquo;+<br />
&raquo; xmlns:xsd=&#8217;http://www.w3.org/2001/XMLSchema&#8217;&gt;&raquo;+<br />
authenticationHeader+<br />
&laquo;&lt;soap:Body&gt;&raquo;+<br />
&laquo;&lt;Create xmlns=&#8217;http://schemas.microsoft.com/crm/2007/WebServices&#8217;&gt;&raquo;+<br />
&laquo;&lt;entity xsi:type=&#8217;account&#8217;&gt;&raquo;+<br />
&laquo;&lt;name&gt;&raquo;+name+&raquo;&lt;/name&gt;&raquo;+<br />
&laquo;&lt;accountnumber&gt;&raquo;+accountnumber+&raquo;&lt;/accountnumber&gt;&raquo;+<br />
&laquo;&lt;telephone1&gt;&raquo;+telephone1+&raquo;&lt;/telephone1&gt;&raquo;+<br />
&laquo;&lt;/entity&gt;&raquo;+<br />
&laquo;&lt;/Create&gt;&raquo;+<br />
&laquo;&lt;/soap:Body&gt;&raquo;+<br />
&laquo;&lt;/soap:Envelope&gt;&raquo;;</p>
<p>// Подготовка xmlHttpObject и отправка запроса<br />
var xHReq = new ActiveXObject(&laquo;Msxml2.XMLHTTP&raquo;);<br />
xHReq.Open(&laquo;POST&raquo;, &laquo;/mscrmservices/2007/CrmService.asmx&raquo;, false);<br />
xHReq.setRequestHeader(&laquo;SOAPAction&raquo;,&raquo;http://schemas.microsoft.com/crm/2007/WebServices/Create&raquo;);<br />
xHReq.setRequestHeader(&laquo;Content-Type&raquo;, &laquo;text/xml; charset=utf-8&#8243;);<br />
xHReq.setRequestHeader(&laquo;Content-Length&raquo;, xml.length);<br />
xHReq.send(xml);<br />
// Результат<br />
var resultXml = xHReq.responseXML;</p>
<p>// Проверим на ошибки<br />
var errorCount = resultXml.selectNodes(&#8216;//error&#8217;).length;<br />
if (errorCount != 0)<br />
{<br />
var msg = resultXml.selectSingleNode(&#8216;//description&#8217;).nodeTypedValue;<br />
alert(msg);<br />
}<br />
// Если нет ошибок, то открываем созданную запись<br />
else<br />
{<br />
var accountid = resultXml.selectSingleNode(&laquo;//CreateResult&raquo;);<br />
window.open(&laquo;/sfa/accts/edit.aspx?id={&laquo;+accountid.nodeTypedValue+&raquo;}&raquo;);<br />
<strong>}</strong><br />
}</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ms-dynamics-crm.com.ua/2009/06/05/ms-crm-create-new-record-jscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Создание кнопки на CRM-форме</title>
		<link>http://ms-dynamics-crm.com.ua/2009/06/05/ms-crm-create-button-on-crmform/</link>
		<comments>http://ms-dynamics-crm.com.ua/2009/06/05/ms-crm-create-button-on-crmform/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 12:19:01 +0000</pubDate>
		<dc:creator>Катерина Головчан</dc:creator>
				<category><![CDATA[ms crm 4.0]]></category>
		<category><![CDATA[CRM-форма]]></category>
		<category><![CDATA[ISV]]></category>
		<category><![CDATA[javascript in ms crm]]></category>

		<guid isPermaLink="false">http://ms-dynamics-crm.com.ua/?p=786</guid>
		<description><![CDATA[Стандартными средствами MS CRM нельзя создать кнопку на форме, хотя это было бы очень удобно.
Я покажу на примере Обращения (Case-incident) как создать на форме кнопку и повесить на клик функцию.

Добавляем в сущность Case новый атрибут с именем new_button, выносим его на форму, в свойствах поля new_button убираем галочку Display label on the form, сохраняем и [...]]]></description>
			<content:encoded><![CDATA[<p>Стандартными средствами MS CRM нельзя создать кнопку на форме, хотя это было бы очень удобно.</p>
<p>Я покажу на примере Обращения (Case-incident) как создать на форме кнопку и повесить на клик функцию.</p>
<div id="attachment_791" class="wp-caption aligncenter" style="width: 589px"><img class="size-full wp-image-791" title="ms-crm-create-button-alert" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/06/ms-crm-create-button-alert.png" alt="ms-crm-create-button-alert" width="579" height="419" /><p class="wp-caption-text">кнопка на CRM-форме</p></div>
<p style="text-align: center;"><span id="more-786"></span></p>
<p>Добавляем в сущность Case новый атрибут с именем new_button, выносим его на форму, в свойствах поля new_button убираем галочку Display label on the form, сохраняем и публикуем.</p>
<p>Открываем событие OnLoad формы и вставляем следующий скрипт:</p>
<blockquote><p>//Надпись на  кнопке<br />
crmForm.all.new_button.DataValue = &laquo;Button&raquo;;</p>
<p>crmForm.all.new_button.style.textAlign = &laquo;center&raquo;;<br />
crmForm.all.new_button.vAlign = &laquo;middle&raquo;;<br />
//стили<br />
crmForm.all.new_button.style.cursor = &laquo;hand&raquo;;<br />
crmForm.all.new_button.style.backgroundColor = &laquo;#CADFFC&raquo;;<br />
crmForm.all.new_button.style.color = &laquo;#000000&#8243;;<br />
crmForm.all.new_button.style.borderColor = &laquo;#330066&#8243;;<br />
crmForm.all.new_button.style.fontWeight = &laquo;bold&raquo;;<br />
crmForm.all.new_button.contentEditable = false;<br />
//меняем цвет при наведении курсора<br />
crmForm.all.new_button.attachEvent(&laquo;onmousedown&raquo;,changeC1);<br />
crmForm.all.new_button.attachEvent(&laquo;onmouseup&raquo;,changeC2);<br />
crmForm.all.new_button.attachEvent(&laquo;onmouseover&raquo;,changeC3);<br />
crmForm.all.new_button.attachEvent(&laquo;onmouseleave&raquo;,changeC4);</p>
<p>function changeC1() {<br />
crmForm.all.new_button.style.color = &laquo;000099&#8243;;<br />
}<br />
function changeC2() {<br />
crmForm.all.new_button.style.color = &laquo;000000&#8243;;<br />
}</p>
<p>function changeC3() {<br />
crmForm.all.new_button.style.backgroundColor = &laquo;#6699FF&raquo;;<br />
}<br />
function changeC4() {<br />
crmForm.all.new_button.style.backgroundColor = &laquo;CADFFC&raquo;;<br />
}</p>
<p><strong>//</strong><strong>при клике на кнопке вызываем функцию TestTheButton</strong><br />
crmForm.all.new_button.attachEvent(&laquo;onclick&raquo;,TestTheButton);</p>
<p>function TestTheButton()</p>
<p>{ alert(&laquo;:)&raquo;);<br />
}</p></blockquote>
<p>Включаем событие, сохраняем и публикуем.</p>
<div id="attachment_790" class="wp-caption aligncenter" style="width: 548px"><img class="size-full wp-image-790" title="ms-crm-create-button-onload" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/06/ms-crm-create-button-onload.png" alt="ms-crm-create-button-onload" width="538" height="551" /><p class="wp-caption-text">событие OnLoad</p></div>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://ms-dynamics-crm.com.ua/2009/06/05/ms-crm-create-button-on-crmform/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Скрыть секцию на CRM-форме в MS Dynamics CRM</title>
		<link>http://ms-dynamics-crm.com.ua/2009/04/13/ms-crm-hide-show-section-crmform/</link>
		<comments>http://ms-dynamics-crm.com.ua/2009/04/13/ms-crm-hide-show-section-crmform/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 14:24:41 +0000</pubDate>
		<dc:creator>Катерина Головчан</dc:creator>
				<category><![CDATA[ms crm 4.0]]></category>
		<category><![CDATA[CRM-форма]]></category>
		<category><![CDATA[javascript in ms crm]]></category>

		<guid isPermaLink="false">http://ms-dynamics-crm.com.ua/?p=734</guid>
		<description><![CDATA[Рассмотрим такой пример: есть crm-форма с несколькими секциями. По определенному условию нужно скрыть, к примеру, вторую секцию.
Сделать это можно с помощью куска кода на javascript, прописанного в событии OnLoad формы:


function OnCrmPageLoad()
{
//Прячем вторую секцию на первой вкладке
HSSection( 0 , 1 , &#171;none&#187; /* &#171;inline&#187; */);
}
function HSSection( tabIndex , sectionIndex , displayType )
{
var s = document.getElementById( &#171;tab&#187; [...]]]></description>
			<content:encoded><![CDATA[<p>Рассмотрим такой пример: есть crm-форма с несколькими секциями. По определенному условию нужно скрыть, к примеру, вторую секцию.</p>
<div id="attachment_737" class="wp-caption aligncenter" style="width: 573px"><img class="size-full wp-image-737" title="ms-crm-show-section-crmform" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/04/ms-crm-show-section-crmform.png" alt="ms-crm-show-section-crmform" width="563" height="473" /><p class="wp-caption-text">Исходный вид формы. Секцию,выделенную красным, мы скроем</p></div>
<p style="text-align: left;">Сделать это можно с помощью куска кода на javascript, прописанного в событии OnLoad формы:</p>
<p style="text-align: left;"><span id="more-734"></span></p>
<blockquote>
<p style="text-align: left;">function OnCrmPageLoad()<br />
{<br />
//Прячем вторую секцию на первой вкладке<br />
HSSection( 0 , 1 , &laquo;none&raquo; /* &laquo;inline&raquo; */);<br />
}</p>
<p>function HSSection( tabIndex , sectionIndex , displayType )<br />
{<br />
var s = document.getElementById( &laquo;tab&raquo; + tabIndex );<br />
s.childNodes[0].rows[ sectionIndex ].style.display = displayType;<br />
}</p>
<p>//вызываем функцию<br />
OnCrmPageLoad();</p></blockquote>
<div id="attachment_736" class="wp-caption aligncenter" style="width: 605px"><img class="size-full wp-image-736" title="ms-crm-hide-section-crmform" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/04/ms-crm-hide-section-crmform.png" alt="ms-crm-hide-section-crmform" width="595" height="448" /><p class="wp-caption-text">Так выглядит форма после изменений</p></div>
<p style="text-align: left;">Этот пример может оказаться удобным, когда, в зависимости от условия, нужно спрятать некоторые части формы.</p>
]]></content:encoded>
			<wfw:commentRss>http://ms-dynamics-crm.com.ua/2009/04/13/ms-crm-hide-show-section-crmform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Решение проблемы нагруженности CRM-формы с помощью сворачивания разделов</title>
		<link>http://ms-dynamics-crm.com.ua/2009/03/31/ms-crm-collapsible-sections/</link>
		<comments>http://ms-dynamics-crm.com.ua/2009/03/31/ms-crm-collapsible-sections/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 06:13:22 +0000</pubDate>
		<dc:creator>Катерина Головчан</dc:creator>
				<category><![CDATA[ms crm 4.0]]></category>
		<category><![CDATA[crm tree]]></category>
		<category><![CDATA[javascript in ms crm]]></category>

		<guid isPermaLink="false">http://ms-dynamics-crm.com.ua/?p=644</guid>
		<description><![CDATA[Наткнулась на интересное решение проблемы с нагруженностью crm-формы. Можно добавить элементы дерева на форму, чтобы скрыть &#171;под катом&#187; некоторые разделы. Код скрипта довольно прост, скрипт выполняется по OnLoad формы.  Приведем пример для Account, скроем на вкладке General первый раздел и раскроем второй раздел, примерно так:

Событие OnLoad сущности Account:
function OnCrmPageLoad() {
/* false &#8211; collapsed, true &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>Наткнулась на интересное <strong>решение проблемы с нагруженностью crm-формы</strong>. Можно добавить элементы дерева на форму, чтобы скрыть &laquo;под катом&raquo; некоторые разделы. Код скрипта довольно прост, скрипт выполняется по <strong>OnLoad </strong>формы.  Приведем пример для Account, скроем на вкладке <strong>General </strong>первый раздел и раскроем второй раздел, примерно так:</p>
<p><img class="aligncenter size-full wp-image-646" title="ms-crm-collapsible-sections-account" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/03/ms-crm-collapsible-sections-account.png" alt="ms-crm-collapsible-sections-account" width="595" height="460" /></p>
<p><span id="more-644"></span>Событие OnLoad сущности Account:</p>
<blockquote><p>function OnCrmPageLoad() {<br />
/* false &#8211; collapsed, true &#8211; expanded */<br />
//First Tab, Second Section, Expanded<br />
ConvertSection(0,1,true);<br />
//First Tab, First Section, Collapsed<br />
ConvertSection(0,0,false);<br />
}</p>
<p>function ConvertSection( tabIndex , sectionIndex , state ) {<br />
var sec = document.getElementById( &laquo;tab&raquo; + tabIndex );<br />
var td = sec.childNodes[0].rows[ sectionIndex ].cells[0].childNodes[0].rows[0].cells[0];<br />
var secHTML = td.innerHTML;<br />
state = (typeof(state) == &laquo;undefined&raquo;)? false:!state;<br />
var src = (state == false)? &laquo;/_imgs/tree/dashPlus.gif&raquo;:&raquo;/_imgs/tree/dashMinus.gif&raquo;;<br />
td.innerHTML = &laquo;&lt;NOBR style=&#8217;VERTICAL-ALIGN: middle;cursor:hand&#8217; onclick=&#8217;excoSection(this)&#8217;&gt;&lt;IMG src=&#8217;&raquo; + src + &laquo;&#8216; align=&#8217;middle&#8217; /&gt; &raquo; + td.innerHTML + &laquo;&lt;/NOBR&gt;&raquo;;<br />
td.childNodes[0].childNodes[0].state = state;<br />
excoSection(td.childNodes[0]);<br />
}</p>
<p>/* Toggle SectionState */<br />
function excoSection( sec ) {<br />
sec = sec.childNodes[0];<br />
sec.state = !sec.state;<br />
sec.src = (sec.state)? &laquo;/_imgs/tree/dashMinus.gif&raquo;:&raquo;/_imgs/tree/dashPlus.gif&raquo;;<br />
var display = (sec.state)? &laquo;inline&raquo; :&raquo;none&raquo;;<br />
var tblsec = sec.parentElement.parentElement.parentElement.parentElement;<br />
for( var i =1 ; i &lt; tblsec.rows.length ; i++ )<br />
tblsec.rows[i].style.display = display;<br />
}<br />
//Expose the toggling function at the window level<br />
this.excoSection = excoSection;</p>
<p>OnCrmPageLoad();</p>
</blockquote>
<p>Это весьма гибкое и интересное решение взято отсюда <a href="http://mscrm4ever.blogspot.com/2008/08/creating-collapsable-sections.html">Creating Collapsible Sections</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ms-dynamics-crm.com.ua/2009/03/31/ms-crm-collapsible-sections/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Изменяем размеры формы в Microsoft Dynamics CRM</title>
		<link>http://ms-dynamics-crm.com.ua/2009/03/29/ms-crm-resize-crmform/</link>
		<comments>http://ms-dynamics-crm.com.ua/2009/03/29/ms-crm-resize-crmform/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 08:37:17 +0000</pubDate>
		<dc:creator>Катерина Головчан</dc:creator>
				<category><![CDATA[ms crm 3.0]]></category>
		<category><![CDATA[ms crm 4.0]]></category>
		<category><![CDATA[CRM-форма]]></category>
		<category><![CDATA[javascript in ms crm]]></category>

		<guid isPermaLink="false">http://ms-dynamics-crm.com.ua/?p=679</guid>
		<description><![CDATA[Когда Вы открываете CRM-форму, она имеет стандартный размер  и не всем удобно работать. Но в зависимости от Ваших нужд, можно задать размеры формы или же растянуть форму на весь экран.
Когда грузится CRM-форма, она имеет стандартный размер, потом только начинает работать событие OnLoad и размер изменяется.
Приведенный код добавьте в событие OnLoad нужной сущности:
function OnCrmPageLoad()
{
ResizeForm( 600 , [...]]]></description>
			<content:encoded><![CDATA[<p>Когда Вы открываете CRM-форму, она имеет стандартный размер  и не всем удобно работать. Но в зависимости от Ваших нужд, можно задать размеры формы или же растянуть форму на весь экран.</p>
<p>Когда грузится CRM-форма, она имеет стандартный размер, потом только начинает работать событие OnLoad и размер изменяется.</p>
<p>Приведенный код добавьте в событие OnLoad нужной сущности:</p>
<blockquote><p>function OnCrmPageLoad()<br />
{<br />
ResizeForm( 600 , 400 , true );<br />
}</p>
<p>function ResizeForm( width , height , center , X , Y )<br />
{<br />
if(center==true)<br />
{<br />
X=(screen.width-width)/2;<br />
Y=(screen.height-height)/2;<br />
}<br />
window.resizeTo(width,height);<br />
window.moveTo(X,Y);<br />
}<br />
OnCrmPageLoad();</p></blockquote>
<p><span id="more-679"></span></p>
<div id="attachment_682" class="wp-caption aligncenter" style="width: 611px"><img class="size-full wp-image-682" title="ms-crm-resizeform-600-400" src="http://ms-dynamics-crm.com.ua/wp-content/uploads/2009/03/ms-crm-resizeform-600-400.png" alt="ms-crm-resizeform-600-400" width="601" height="400" /><p class="wp-caption-text">CRM-форма сущности сontact</p></div>
<p style="text-align: left;">Если Вам нужно открыть CRM-форму на весь экран, добавьте следующий скрипт в начало события OnLoad:</p>
<blockquote>
<p style="text-align: left;">window.resizeTo (screen.availWidth, screen.availHeight);<br />
window.moveTo (0,0);</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ms-dynamics-crm.com.ua/2009/03/29/ms-crm-resize-crmform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
