Показать сообщение отдельно
Старый 16.03.2009, 19:14   #6  
Гуревич Денис is offline
Гуревич Денис
Участник
Лучший по профессии 2009
 
228 / 67 (3) ++++
Регистрация: 04.08.2008
Адрес: Москва
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Я думаю надо использовать Java Script. Контрол времени - обычный пиклист. Надо просто удалить из него соответствующие опции в событии OnLoad формы.
Ну там не совсем обычный пиклист...
Вообщем, взяв за основу код отсюда http://www.stunnware.com/crm2/topic.aspx?id=JS7, можно состряпать вот такой код для поля "Дата начала" в Задаче (вставляется в OnLoad):
Код:
var timeField = crmForm.all.scheduledstart.all.time;
timeField.allowValueEdit = false;
var tables = timeField.getElementsByTagName("table");
if ((tables != null) && (tables.length > 0)) {
            var table = tables[1];
            while (table.firstChild != null) {
                table.removeChild(table.firstChild);
            }
            for (hour = 9; hour <= 18; hour++) {
                var row = table.insertRow();
                var cell = row.insertCell();
                var time = hour + ":00";
                cell.setAttribute("val", time);
                cell.innerText = time;
            }
}

Останется маленькая неприятность - когда значение в поле не указано, то после выбора даты время будет указано "0:00". Но это можно вылечить, вставив в OnChange нашего поля такой код:
Код:
if(crmForm.all.scheduledstart.DataValue != null) {
  if(crmForm.all.scheduledstart.DataValue.getHours() == 0) {
    crmForm.all.scheduledstart.DataValue = crmForm.all.scheduledstart.DataValue.setHours(9);
  }
}
За это сообщение автора поблагодарили: Dissident (1), Артем Enot Грунин (4).