Аддоны
04
Май
0

tuneMultiCheckBox

tuneMultiCheckBox – решение, которое заменяет собой привычный способ связывания между собой двух записей N:N путем простого проставления галки на форме записи. Допустим у Вас есть связь N:N между текущим объектом и каким-либо другим. Вы выносите этот контрол на форму текущего объекта и он динамически формирует столько галок на форме, сколько записей другого объекта имеется в системе (по одной галке на запись). При проставновке гакли в бэкграунде происходит обычное связывание двух записей N:N.

Возможности:

  • Работает с любой кастомной N:N связью;
  • Работает и при создании, и при обновлении записи;
  • Вы можете использовать различные визуальные HTML/CSS шаблоны, для отображения чекбоксов;
  • Гибкий отбор «чекбоксов» на основе FetchXml.

Использование

  • Импортируйте в CRM Решение tuneMultiCheckBox (при этом галка активации шагов SDK должна быть установлена);
  • Создайте вспомогательное текстовое поле и вынесите его на форму объекта (и скройте). Оно необходимо чтобы галки работали и при создании записей (как известно, связь N:N можно установить только после создания записи);
  • Откройте решение tuneMultiCheckBox, перейдите к странице настройки. Щелкните по ссылке конфигурационного файла – откроется XML Веб-ресурс, который необходимо отредактировать:
    • Необходимо внутрь узла <crmentities> добавить узел <crmentity logicalName=»objLogicalName»> для каждого объект, для которого мы хотим задействовать функциональность флажков;
    • Внутри <crmentity> необходимо разместить узел <checkboxset> для каждого набора флажков на форме. В узле <checkboxset> имеются следующие атрибуты:
      • name: название набора флажков, которое используется при обращении к нему;
      • description: просто описание;
      • fakeSavingField: имя вспомогательного поля, которое мы создали ранее;
      • relationshipName: название связи N:N;
      • labelFieldName: название поля, определенного в FetchXml (см. ниже). Значения из этого поля будут использоваться в качестве метки для флажков.
        Примечание: Вы можете определить многократные узлы <checkboxset> внутри <crmentity>. Но для каждого из них должно быть свое вспомогательное поле;
    • Внутри узла <checkboxset>необходимо определить дочерний узел <fetchxml>, в котором необходимо отобрать записи, которые необходимо отобразить в качестве флажков на форме;

    Предположим у нас есть объект Страна (new_country) с двумя полями:

    • Название (new_name);
    • Сортировка (new_order).

    И мы хотим вынести его на форму объекта Контакт. Тогда XML будет такой:

    <?xml version="1.0" encoding="utf-8" ?>
    <config>
      <crmEntities>
        <crmEntity logicalName="contact">
          <checkboxSet name="contactcountry" description="Provides a set of categories to associate with a contact"
                       fakeSavingField="new_temp"
                       relationshipName="new_country_contact"
                       labelFieldName="new_name">
            <fetchXml>
              <fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
                <entity name="new_country">
                  <attribute name="new_countryid"/>
                  <attribute name="new_name"/>
                  <order attribute="new_order" descending="true"/>
                </entity>
              </fetch>
            </fetchXml>
          </checkboxSet>
        </crmEntity>
      </crmEntities>
    </config>
    
  • Вынесите Веб-ресурс на форму и задайте для него следующие свойства:
    • В качестве Веб-ресурса укажите один из четырех готовых шаблонов tunecrm_TuneCrmTools/html/tuneMultiCheckBox/templates/—-.html
      • default2011.html: один столбец флажков с фоном CRM 2011
      • default2013.html: один столбец флажков с фоном CRM 2013
      • template01.html: три столбца флажков с фоном CRM 2011
      • template02.html: три столбца флажков с фоном CRM 2013

      Примечание: количество столбцов можно изменить в HTML шаблоне в переменной columnCount. Также Вы можете запилить свои собственные шаблоны.

    • Пользовательский параметр: нужно передать имя набора флажков из конфигурационного XML файла в виде checkboxSetName=contactcountry;
    • Передайте в Веб-ресурс имя объекта и уникальный идентификатор.



Комментарии (0)

*

code