Кастомизация
23
Май
1

Отображение результатов расширенного поиска в IFrame

Расширенный поиск очень мощный инструмент поиска данных в CRM системе. И неплохо было бы использовать эту мощь и в других местах системы, помимо собственно формы расширенного поиска. В данном примере сделаем так, чтобы на карточке пользователя отображались его заказы (естественно с помощью расширенного поиска).

  1. Создайте запрос с помощью Расширенного поиска на объект Заказ (в Вашем случаи, естественно, может быть любой другой). Выберите представление представление и отредактируйте его если хотите изменить отображаемые поля. Далее сохраните созданные шаблон расширенного поиска и скопируйте в буфер обмена ссылку на него.



  1. Поместите элемент IFrame на форму Пользователя (я для удобства поместил его на отдельную вкладку). В качестве URL’а задайте about:blank (т.е. пустую страницу). Обязательно снимите флажок Ограничить использовать сценариев между кадрами. Я также подредактировал способ отображения айфрейма: растянул его на весь экран и убрал отображение границ.
  2. Далее поместите следующий код на событие OnLoad формы. Не забудьте только поменять имя айфрема, если оно у Вас отличается, а также обязательно замените ссылку на расширенный поиск (ту что скопировали в буфер обмена).
    var iFrame = crmForm.all.IFRAME_view;
    //Задаем новую урлу для айфрема, равную скопированной в буфер обмена ссылки (за исключением имени сервера и организации) на сохраненный расширенный поиск.
    iFrame.src = SERVER_URL + "/advancedfind/advfind.aspx?etn=salesorder&QueryId=%7bFEDCE0DC-F946-DE11-B127-000C2943320B%7d&ViewType=4230&AutoRun=True";
    //ждем пока загрузится iFrame и выполняем функцию Ready, которая скрывает лишние элементы
    iFrame.attachEvent( "onreadystatechange" , Ready);
    
    function Ready()
    {
     var iDoc = iFrame.contentWindow.document;
     if(iDoc.getElementById("crmMenuBar") != null && iDoc.getElementById("btnBack") != null)
     {
     iDoc.getElementById("crmMenuBar").style.display = "none"; // скрываем верхнее меню расширенного поиска
     iDoc.getElementById("btnBack").style.display = "none"; // скрываем кнопку Назад (расположенную внизу формы расширенного поиска)
     }
    }
    
  3. Сохраняем, закрываем и публикуем. Вот и все, можете любоваться Вашим творением 🙂




P.S. Мне так и не удалось заставить работать этот скрипта на IE6, но на IE8 он прекрасно работает (и на IE7 тоже должен 🙂 ).

Комментарии (1)
  • Макс 23.05.2009

    Добрый день,

    Функция Ready не работает(( вызывает ошибки на странице, без неё всё отлично)

*

code