Разработка
29
Июл
3

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

Диалоги лукапа можно использовать в произвольном коде (отдельных веб-страниц или в Веб-ресурсах) для выбора записей. Для примера рассмотрим как этот сделать с помощью Веб-ресурсов…

Создайте HTML Веб-ресурс с таким кодом:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Использование лукапа</title>
    <script type="text/javascript">
        function getAccount() {
            // Открытие диалога лукапа для выбора одной записи
            var lkp = window.showModalDialog("http://crm2011:5555/superfirma/_controls/lookup/lookupinfo.aspx?LookupStyle=single&objecttypes=1#");
            if (lkp.items != null) {
                document.getElementById("guid").innerHTML = "Текст: " + lkp.items[0].id;
                document.getElementById("text").innerHTML = "GUID: " + lkp.items[0].name;
            }
        };
        function getAccounts() {
            // Открытие диалога лукапа для выбора нескольких записей
            var mlkp = window.showModalDialog("http://crm2011:5555//superfirma/_controls/lookup/lookupinfo.aspx?LookupStyle=multi&objecttypes=1#");
            if (mlkp.items != null) {
                var text = "";
                for (var key in mlkp.items) {
                    var val = mlkp.items[key];
                    text = text + "GUID: " + val.id + "; Текст: " + val.name + "<br />";
                }
                document.getElementById("result").innerHTML = text;
            }
        };
    </script>
</head>
<body>
    <input type="button" value="Открыть лукап" onclick="javascript: getAccount();" /><br /><br />
    <div id="text"></div>
    <div id="guid"></div>

    <br /><br />

    <input type="button" value="Открыть мульти-лукап" onclick="javascript: getAccounts();" /><br /><br />
    <div id="result"></div>
</body>
</html>

Код состоит из двух основных вещей:

  • Двух кнопок, которые вызывают две JS-функции;
  • Две JS-функции. Первая открывает лукап для выбора одной запись, а вторая лукап для выбора нескольких запись. После выбора, текстовые значения выбранных записей выводятся в HTML-документе.

Откройте HTML Веб-ресурс (кликнув по ссылке в Веб-ресурсе) и жмите кнопки.

З.Ы. Единственный замеченный касяк – клик на основном атрибуте в диалоге лукапа. В стандартном CRM это действие приводит к выбору записи и автоматическому закрытию диалогового окна. В данном же случае браузер пытается при клике открыть запись и прочие пакости… В общем чтобы избежать подобных веще выделяйте запись по чекбоксу и жмите ОК.



Комментарии (3)
  • Fs 29.07.2012

    А как то можно, писать фильтр к лукапу?

  • Fs 29.07.2012

    Разобрался.

    Можно создать нужное представление и добавить в параметры строки DefaultViewId=GUID этого представления.

  • Fs 29.07.2012

    Ещё можно подрубить Lookup.js, и вызвать функцию LookupObjects передав необходимые параметры.
    Этот метод позволит задать фильтрацию, по определенному условию, если необходимо.

*

code