Кастомизация
12
Дек
0

Открытие Диалога с помощь JavaScript

Прежде чем мы сможем вызывать Диалог, нам необходимо узнать его ID. Сделать это можно двумя способами:

  1. Найди ID в выгруженном Решении (в файле Customizations.xml), содержащем нужный Диалог. Строчка с ID будет выглядеть примерно так:
    <Workflow WorkflowId="{a13ad982-d812-40a0-ab67-f314cdabbd2b}" Name="MyDialog">
    </Workflow>
    
  2. Более простои и классический способ: открыть форму настройки Диалога и нажать либо F11, либо Ctrl + N, после чего скопировать ID из строки URL.

JavaScript код для вызова Диалога будет таким:

if (typeof (Sample) == "undefined") { Sample = {}; }

Sample.MyFunctions = {
    callDialog: function () {
        var dialogId = "7e73459f-d7bc-4480-a9ec-b80120d316f9"; // ID Диалога
        var entityName = "account"; // Имя объекта для которого вызывается Диалог
        var returnValue = showModalDialog("/" +
            Xrm.Page.context.getOrgUniqueName() +
            "/cs/dialog/rundialog.aspx?DialogId=%7b" + dialogId +
            "%7d&EntityName=" + entityName +
            "&ObjectId=" + Xrm.Page.data.entity.getId(),
            "",
            "dialogWidth:700px; dialogHeight:600px; center:yes"
        );
    }
}

Функция Sample.MyFunctions.callDialog просто вызывает стандартный метод showModalDialog, который открывает новое модальное окно с URL Диалога CRM. При этом Диалогу передается ряд параметров, среди которых Вы должны изменить (в коде) ID Диалога и имя объекта для которого он вызывается.

А чтобы вызвать Диалог по кнопке, мы должны создать из вышеупомянутого кода JS Веб-ресурс и вызвать его по кнопке:

<RibbonDiffXml>
  <CustomActions>
    <CustomAction Id="DialogCall.CustomAction"
                  Sequence="1"
                  Location="Mscrm.Form.account.MainTab.Workflow.Controls._children">
      <CommandUIDefinition>
        <Button Id="DialogCall.Button"
                Command="DialogCall.javascriptCommand"
                Sequence="1"
                LabelText="Запуск Диалога"
                ToolTipTitle="Запуск Диалога"
                ToolTipDescription="Запуск Диалога"
                TemplateAlias="o1"
                Image16by16="$webresource:new_phone16.png"
                Image32by32="$webresource:new_phone32.png" />
      </CommandUIDefinition>
    </CustomAction>
  </CustomActions>
  <Templates>
    <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
  </Templates>
  <CommandDefinitions>
    <CommandDefinition Id="DialogCall.javascriptCommand">
      <EnableRules>
        <EnableRule Id="Mscrm.Enabled"/>
      </EnableRules>
      <DisplayRules />
      <Actions>
        <JavaScriptFunction
            Library="$webresource:new_calldialog.js"
            FunctionName="Sample.MyFunctions.callDialog">
        </JavaScriptFunction>
      </Actions>
    </CommandDefinition>
  </CommandDefinitions>
  <RuleDefinitions>
    <TabDisplayRules />
    <DisplayRules />
    <EnableRules />
  </RuleDefinitions>
  <LocLabels />
</RibbonDiffXml>



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

*

code