Разработка
28
Июл
0

Кастомный диалог лукапа

Продолжаем задействовать стандартные (не поддерживаемые) JS функции CRM на благо общественности. Сегодня мы приручим диалоговое окно лукапа для выбора записей. Использовать его можно как на карточках CRM, так и на Веб-ресурсах.

В данном примере разместим iFrame’е HTML Веб-ресурс, откуда по кнопке откроем диалог лукапа и выберем запись. После закрытия диалога выведем в алерте GUID и основной атрибут выбранной записи. Приступим:

  • Создайте HTML Веб-ресурс с таким кодом:
    <html>
    <head>
        <meta charset="utf-8">
        <script src="/WebResources/ClientGlobalContext.js.aspx" type="text/javascript"></script>
        <script>
            function OpenLookup() {
                // MS-CRM Lookup
                var objectCode = "2";
    
                // URL стандартного диалога лукапа CRM
                var url = "/_controls/lookup/lookupsingle.aspx?objecttypes=" + objectCode;
    
                // Задаем параметры диалога
                var DialogOptions = new Xrm.DialogOptions();
                DialogOptions.width = 500;
                DialogOptions.height = 500;
    
                // Открываем диалог
                Xrm.Internal.openDialog(Mscrm.CrmUri.create(url).toString(), DialogOptions, null, null, CallbackFunction);
            }
    
            // Обрабатываем ответ лукапа
            function CallbackFunction(returnValue) {
                if (returnValue) {
                    // Set the Name in the textbox
                    alert(returnValue.items[0].id + " - " + returnValue.items[0].name);
                }
            }
        </script>
    </head>
    <body>
        <h1>My First Heading</h1>
        <p>My first paragraph.</p>
        <input id="OpenLookup" type="button" value="OpenLookup" onclick="OpenLookup();" />
    </body>
    </html>
    

    Здесь у нас два основных компонента:

    • JS-код состоящий из двух функций:
      • Первая – OpenLookup – формирует параметры диалогового окна лукапа и, собственно, открывает его. Обратите внимание на переменную objectCode – в ней задается код объекта, который нужно отобразить в лукапе;
      • Вторая – CallbackFunction – обрабатывает ответ диалога лукапа.
    • Кнопка вызова функции (которая открывает диалог лукапа).
  • Добавьте созданный Веб-ресурс на форму записи.

Можно тестировать…


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

*

code