главная -> Формирование многоуровневых списков.
 
Структура рациона
 
Корма
%
Вид и наименование корма
Принято
  Сено
7
Ю
  Солома
1
Ю
  Травяная резка
1
Ю


Указатель на запись (база + индекс)  
  Здесь представлен фрагмент приложения предназначенного для составления рационов кормления. Суть интерфейса приложения:
  - выбираем животное и его параметры (не показано);
  - следствием этого является определение строки норм в таблице MSExcel;
  - выбираем тип, вид и наименование конкретного корма;
  - следствием этого является определение строки для выбранного корма в таблице показателей содержания питательных веществ (база + индекс)
  - нажатием на зеленую стрелку запускаем расчет потребного количества корма с учетом структуры (относительное количество данного типа в рационе), норм кормления, содержания питательных веществ в данном корме и учетом возможного выбора нескольких кормов одного типа.
  В фрагменте приведен код, относящийся к выбору корма, т.е. демонстрируется работа со списками. Исключен код взаимодействия с MSExcel (мы этому уже научились), но показан механизм определения записи в таблице, показана строка для отладки приложения (Указатель на запись). Поэкспериментируйте со списками, проверьте изменения во втором списке и в указателе на запись при выборе того или иного вида корма.
  Не будем подробно разбирать скрипты, изучите самостоятельно (в виде HTML), однако рассмотрим некоторые тонкости:
  1. Все необходимые для интерфейса списки (отображаемые при загрузке) изначально формируются в HTML коде.
  2. Фиксируются имена (идентификаторы) списков.
  3. Формируется массив списков, предназначенных для подстановки на место второго списка, при этом каждый подставляемый список имеет то же имя, что и заменяемый.
  4. Варианты списков могут быть оформлены в виде отдельного текстового файла.
  5. Не забываем включить в массив (текстовый файл) и исходный список.
  6. Атрибут value первого списка представляет базу (начало) группы кормов одного вида в таблице показателей содержания питательных веществ.
  7. Атрибут value второго списка - смещение конкретного корма; однако, более целесообразно использовать this.selectedIndex в качестве передаваемого параметра.
  Поясним эти тонкости кодом:

- подключаем текстовый файл с набором списков
<SCRIPT LANGUAGE="JavaScript1.1" src = "n_korm.txt" ></SCRIPT>

- фрагмент файла, который представляет развернутый в строку SELECT с правленными кавычками
var txt1 = "<select name='select71' style=' width : 180'> <option value='1' selected>Ежи сборной</option> <option value='2'>Житняковое</option> <option value='3'>Злаковое</option> <option value='4'>Злаково-разнотравное</option> <option value='5'>Луга культурного и т.д.
var txt2 = "<select name='select71' style=' width : 180'> <option value='1' selected>Житняковое</option> <option value='2'>Злаковое</option> <option value='3'>Злаковое смешанное</option> <option value='4'>Кострецовое</ option> и т.д.

в качестве примечания: никто не мешает оформить строковые переменные непосредственно в HTML файле, но это будет нечитаемо, не очень удобно

- после выбора в первом списке, формируем массив списков и выбираем требуемый по индексу в качестве второго
function select_seno(ind){
arr_nam = new Array (txt1,txt2,txt3,txt4, txt5);
seno.innerHTML=arr_nam[ind];
}
  Итак, в процессе выбора корма мы постоянно подставляем требуемые списки, получаем номер "записи в базе данных", в качестве которой используется MSExcel, далее организуем обработку данных, подготовку отчетов и т.д., и т.п.

   
  © 2002-2004   Сединко А.М.
  © 2004 design by   kir