<?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; picklist</title>
	<atom:link href="http://ms-dynamics-crm.com.ua/tag/picklist/feed/" rel="self" type="application/rss+xml" />
	<link>http://ms-dynamics-crm.com.ua</link>
	<description>Все о Microsoft Dynamics CRM</description>
	<lastBuildDate>Wed, 25 Jan 2012 21:20:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Выбор всех значений из picklist</title>
		<link>http://ms-dynamics-crm.com.ua/2010/08/17/select-all-values-from-picklist/</link>
		<comments>http://ms-dynamics-crm.com.ua/2010/08/17/select-all-values-from-picklist/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 15:11:36 +0000</pubDate>
		<dc:creator>Костя Афендиков</dc:creator>
				<category><![CDATA[ms crm 4.0]]></category>
		<category><![CDATA[javascript in ms crm]]></category>
		<category><![CDATA[picklist]]></category>
		<category><![CDATA[tips and tricks]]></category>
		<category><![CDATA[unsupported]]></category>

		<guid isPermaLink="false">http://ms-dynamics-crm.com.ua/?p=1196</guid>
		<description><![CDATA[Наверняка вы уже знакомы с решением от Jim Wang для выбора нескольких значений из picklist MS CRM, а стиль самого picklist был изменен с добавлением чекбоксов. Отличное решение, но, иногда, возникает необходимость выбирать все элементы из списка и если значений много, то будет неудобно выбирать каждое по отдельности. Поэтому вот небольшой javascript сниппет, который позволяет [...]]]></description>
			<content:encoded><![CDATA[<p>Наверняка вы уже знакомы с<a title="multi select" href="http://jianwang.blogspot.com/2009/01/crm-40-checkbox-style-multi-select.html" target="_blank"> решением от Jim Wang</a> для выбора нескольких значений из picklist MS CRM, а стиль самого picklist был изменен с добавлением чекбоксов.</p>
<p><img class="alignnone" title="multiple picklist chekbox" src="http://2.bp.blogspot.com/_-lOIedxo3AA/SXBymQg6L7I/AAAAAAAAAMw/Wfb2U3bwdWU/s400/checkboxpicklist.png" alt="" width="345" height="95" /></p>
<p>Отличное решение, но, иногда, возникает необходимость выбирать все элементы из списка и если значений много, то будет неудобно выбирать каждое по отдельности. Поэтому вот небольшой javascript сниппет, который позволяет решить данную задачу.<br />
<span id="more-1196"></span><br />
1. Необходимо добавить новое значение <strong>Select all </strong>в ваш picklist</p>
<p>2. В событие <strong>OnSave()</strong> вставляем следующий код:</p>
<pre class="brush: jscript; title: ;">
var PL = crmForm.all.new_fundingsource;
var PLV = crmForm.all.new_fundingsourcevalue;
    if(PLV.value != &quot;&quot;)
    {
	  var PLVT = PLV.value.split(&quot;||&quot;);

	  for( var i = 0; i &lt; PLVT.length; i++ )
		{
			if( PLVT[i] == &quot;Select All&quot;)
			{
                        PLV.value = &quot;&quot;;
			for( var i = 1; i &lt; PL.options.length; i++ )
				{
                                      PLV.value += PL.options[i].text+ &quot;||&quot;;
				}
			}
		}
    }
</pre>
<p>Все. Теперь достаточно выбрать пункт Select all и нажать сохранить, после чего будут выбраны все значения данного picklist</p>
<p>Код для создания multi picklist (чтобы не забыть):</p>
<pre class="brush: jscript; title: ;">
var PL = crmForm.all.new_fundingsource;
var PLV = crmForm.all.new_fundingsourcevalue;

if( PL != null &amp;&amp; PLV != null )
{
  PL.style.display = &quot;none&quot;;
  PLV.style.display = &quot;none&quot;;

  // Create a DIV container
  var addDiv = document.createElement(&quot;&lt;div style='overflow-y:auto; height:80px; border:1px #6699cc solid; background-color:#ffffff;' /&gt;&quot;);
  PL.parentNode.appendChild(addDiv);

  // Initialise checkbox controls
  for( var i = 1; i &lt; PL.options.length; i++ )
  {
    var pOption = PL.options[i];
    if( !IsChecked( pOption.text ) )
      var addInput = document.createElement(&quot;&lt;input type='checkbox' style='border:none; width:25px; align:left;' /&gt;&quot; );
    else
      var addInput = document.createElement(&quot;&lt;input type='checkbox' checked='checked' style='border:none; width:25px; align:left;' /&gt;&quot; );

    var addLabel = document.createElement( &quot;&lt;label /&gt;&quot;);
    addLabel.innerText = pOption.text;

    var addBr = document.createElement( &quot;&lt;br/&gt;&quot;); //it's a 'br' flag

    PL.nextSibling.appendChild(addInput);
    PL.nextSibling.appendChild(addLabel);
    PL.nextSibling.appendChild(addBr);
  }

  // Check if it is selected
  function IsChecked( pText )
  {

    if(PLV.value != &quot;&quot;)
    {
      var PLVT = PLV.value.split(&quot;||&quot;);
      for( var i = 0; i &lt; PLVT.length; i++ )
      {
        if( PLVT[i] == pText )
          return true;
      }
    }
    return false;
  }

  // Save the selected text, this filed can also be used in Advanced Find
  crmForm.attachEvent( &quot;onsave&quot; , OnSave);
//debugger
  function OnSave()
  {
    PLV.value = &quot;&quot;;
    var getInput = PL.nextSibling.getElementsByTagName(&quot;input&quot;);

    for( var i = 0; i &lt; getInput.length; i++ )
    {
      if( getInput[i].checked)
      {

        PLV.value += getInput[i].nextSibling.innerText + &quot;||&quot;;

      }
    }
  }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://ms-dynamics-crm.com.ua/2010/08/17/select-all-values-from-picklist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Значение picklist в отчете для MS CRM</title>
		<link>http://ms-dynamics-crm.com.ua/2010/01/21/picklist-value-in-reports-for-ms-crm/</link>
		<comments>http://ms-dynamics-crm.com.ua/2010/01/21/picklist-value-in-reports-for-ms-crm/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 09:55:20 +0000</pubDate>
		<dc:creator>Костя Афендиков</dc:creator>
				<category><![CDATA[ms crm 4.0]]></category>
		<category><![CDATA[picklist]]></category>
		<category><![CDATA[report]]></category>

		<guid isPermaLink="false">http://ms-dynamics-crm.com.ua/?p=1120</guid>
		<description><![CDATA[Давно задумывался о том, как получить значение picklist в отчет. Сразу решения не нашел и пользовался очень громоздкой и не гибкой конструкцией типа: SELECT CASE picklist WHEN '1' THEN 'Перезвонить' WHEN '2' THEN 'Первая встреча' WHEN '3' THEN 'Встреча' END AS NextTask Оказывается все гораздо проще &#8211; к имени пиклиста достаточно добавить name, как и [...]]]></description>
			<content:encoded><![CDATA[<p>Давно задумывался о том, как получить значение picklist в отчет. Сразу решения не нашел и пользовался очень громоздкой и не гибкой конструкцией типа: </p>
<pre class="brush: sql; title: ;">
SELECT CASE picklist
    WHEN '1' THEN 'Перезвонить'
    WHEN '2' THEN 'Первая встреча'
    WHEN '3' THEN 'Встреча'
    END AS NextTask
</pre>
<p>Оказывается все гораздо проще &#8211; к имени пиклиста достаточно добавить <strong>name</strong>, как и с lookup. Т.е. вместо piclist написать picklistname<br />
Плюс значения пиклистов хранятся в таблице <strong>StringMap</strong>, поэтому возможен и такой вариант </p>
<pre class="brush: sql; title: ;">
SELECT s.value
FROM AccountBase a
JOIN StringMap s
ON s.objecttypecode = 1
AND a.customertypecode = s.attributevalue
AND s.attributename = 'customertypecode'
WHERE a.accountid = &lt;GUID&gt;
</pre>
<p>Найдено здесь: http://axforum.info/forums/showthread.php?p=217586#post217586</p>
]]></content:encoded>
			<wfw:commentRss>http://ms-dynamics-crm.com.ua/2010/01/21/picklist-value-in-reports-for-ms-crm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

