четверг, 30 мая 2013 г.

Установка фокуса в поле при переходе на View (Set Focus on Control)

Задача: при переходе на определенный экран в таске ставить курсов в поле "Страна".
По умолчанию,  при отображении апплета Siebel не ставит курсор ни в одно поле пока пользователь не тыкнет мышью в область апплета.

Чтобы установить курсор ввода в конкретное поле, нам понадобиться написать небольшой браузерный скрипт.

var oApplet;  //тут будет храниться инстанс текущего апплета
var bFocus;   //признак того что фокус уже проставлен
//стандартное событие на апплете
function Applet_Load ()
{
oApplet=this; //не для этого скрипта, но все равно пусть будет
bFocus=false;//отмечаем, что фокус еще не установлен
//проверка, что данный апплет находится на интересующем нас экране:
if (theApplication().ActiveViewName()=="JET Contact Input 2 Task View Test 2") 
{
setTimeout ("DoSetFocus()", 100); //запустить в фоновом режиме установку фокуса
}
}

function DoSetFocus()
{
//ищем наш апплет на странице:
var appFocus = theApplication().FindApplet("JET Contact Entry Task Form Applet"); 
//ищем контрол, в который будет проставлен фокус:
var objControl = appFocus.FindActiveXControl("Addr Country");
 //простой или сложный контрол:
if (objControl.canHaveHTML == false) {

         objControl.focus(); //установить фокус
}
else {
         objFocus = objControl.getElementsByTagName("Input");//получить поля ввода
         objFocus = objFocus[0];//получить первое поле ввода
         objFocus.focus();//установить фокус
}
if (bFocus==false) //если фокус не проставлен, повторить процедуру
{          
setTimeout ("DoSetFocus()", 100);//рекурсия
}
}

function Edit__0__Control__Addr_SCountry__onfocus (applet, id)
{//это стандартный эвент на контроле
bFocus=true;//отмечаем, что фокус был проставлен
}

2 комментария:

  1. Как вариант:
    Applet User Property DefaultFocus
    http://siebel-essentials.blogspot.ru/2008/12/using-defaultfocus-applet-user-property.html
    + View User Property DefaultAppletFocus

    ОтветитьУдалить
  2. В TASK UI (Applet User Property DefaultFocus + View User Property DefaultAppletFocus) не прокатывает, видимо потому, что на экране две вьюхи

    ОтветитьУдалить