главная -> статьи -> уроки -> Интерфейс. Контроль ввода
 
Переехал на ased.dtn.ru

 
  Ввод исходных данных          Расчет на год. Ошибка при вводе исходных данных Включены пояснения
Количество реализованного откормочного молодняка в течение года, голов 203
203
Цикл воспроизводства, дней;
  в составе:
Величина технологической группы в подсосный период, голов   - Фаза холостого содержания, дней
Многоплодие свиноматок, голов   - Фаза условно-супоросного содержания, дней
Число опоросов от одной свиноматки в год   - Фаза супоросного содержания, дней
Процент браковки свиноматок, %   - Фаза тяжелосупоросного содержания, дней
Процент перегулов свиноматок, %   - Подсосный период, дней
 
Итак, перед нами фрагмент приложения. Для уменьшения "веса кода" отключено большинство функций, даже часть контроля ввода (ограничения по физиологическим параметрам). Измените, например, фазу холостого содержания и посмотрите на реакцию приложения.
  Разберем только две функции:
  -контроль в процессе ввода;
  -контроль непротиворечивости исходных данных.
  Обе функции обеспечиваются одним механизмом - пересчет по таймеру, который запускается при загрузке приложения

<script language="JavaScript1.2">
var time;

function onLoaded(){
setInterval("onTick()",500); //запускаем таймер с периодом повторения 500 мс и вызовом функции onTick()
}
function onTick() { // на срабатывание таймера вызываем функции пересчета
cycl_s();
cycl_d();
molod_ot();
cycl_ras.innerHTML=Math.round(365/parseFloat(n_oporos_god.value)); // а здесь в SPAN область
} // (см. урок1 первой части) заносим результат расчета цикла через число опоросов

function cycl_s(){ //цикл воспроизводства через сумму составляющих его фаз
var tmp = 0; tmp = Math.round(365/parseFloat(n_oporos_god.value));
cycl= parseInt(faz_holost.value)+ parseInt(faz_usup.value)+parseInt(faz_sup.value)+ parseInt(faz_tsup.value)+parseInt(podsos.value); cycl_sum.innerHTML=cycl; // во вторую SPAN область заносим результат расчета цикла через сумму if (tmp == cycl){ //если нет рассоглосования, снимаем признак ошибки document.all["voskl"].style.visibility="hidden"; document.all["cycl_sum"].style.color="#000000"; isError = 0; } else{ // иначе устанавливаем признак ошибки (знак! и красный цвет числа) document.all["voskl"].style.visibility="visible"; document.all["cycl_sum"].style.color="red"; isError = 1; //ошибка по циклу } }
  Вот и вся идея контроля в процессе ввода. Конечно, при разработке собственного приложения в первую очередь необходимо определить перечень параметров, набор ограничений, обезопасить себя от некорректного ввода (например буквы вместо цифр) и способ индикации ошибки.
   
  © 2002-2004   Сединко А.М.
  © 2004 design by   kir
Hosted by uCoz