А. Шевелёв - DbfWebServer. Способ эффективной работы с таблицами DBFв среде Интернет стр 8.

Шрифт
Фон

 получение фокуса формой onfocus=kS ();
 нажатие клавиши в поле ввода onkeydown=kD(event.keyCode);
 отжатие клавиши в поле ввода onkeydown=kU(event.keyCode).

При нажатии клавиши <ENTER> вызывается форма rezzak00.html и осуществляется переход к другому списку со всеми вытекающими отсюда последствиями.

Форма содержит вспомогательное поле R. С помощью этого поля регулируется скорость нажатия клавиш управления списком. Это поле, например, блокирует бесконечное нажатие одной клавиши без перевывода информации на экране.

Поле karbeg является активным, в нем принимаются нажатия всех клавиш и затем соответствующим образом обрабатываются.

Активное поле ввода нужно, в первую очередь, для отслеживания нажатия клавиш с целью:

 передвижения по списку;

 ввода ключевого слова поиска;

 выполнения команды.

Обработка нажатия клавиш осуществляется с помощью кода, написанного на языке JavaScript.

Блок этого скрипта следующий:


<script> F.karbeg.focus ();

function kD (kC) {

kV=F.karbeg.value;

if(F.R.value==l) {return;}

F.R.value=l;

if(kC==38){parent.parent.A.location.href='karbeg001]+O_karbeg+[.html? R_karbeg  ';}
else if(kC==40){parent.parent.A.location.href='karbeg001]+O_karbeg+[.html? R_karbeg++';}
else if(kC==33){parent.parent.A.location.href='karbeg001]+O_karbeg+[.html? kC:='+kC;}
else if(kC==34){parent.parent.A.location.href='karbeg001]+O_karbeg+[.html? kC:='+kC;}
else if(kC==35){parent.parent.A.location.href='karbeg001]+O_karbeg+[.html? kC:='+kC;}
else if(kC==36){parent.parent.A.location.href='karbeg001]+O_karbeg+[.html? R_karbeg:=1»; }
else if(kC==27){parent.parent.location.href='index.html;}
}

function kU(kC){window.status=kC;

kV=F.karbeg.value;

if(kC==120){location.href='imagix0021.html;}
else if(kC>40){parent.parent.A.location.href='karbeg001]+O_karbeg+[.html? kC:='+kC+», V_karbeg:=«»+kV+«"»; }
else if(kC==8){parent.parent.A.location.href='karbeg001]+O_karbeg+[.html? V_karbeg:=«»+kV+«"»; }
}
function kS () {parent.parent.A.location.href='karbeg001]+O_karbeg+[.html;}

</script>


Здесь представлена функция обработки нажатия клавиши kD (), отжатия клавиши kU () и получения фокуса kS ().

После того, как данная форма будет выведена на экран, активное поле ввода получит фокус с помощью команды

F.karbeg.focus ();

где F  имя формы ввода значений;

karbeg  имя активного поля формы.


Семейство файлов karbeg001*.html

Семейство файлов karbeg001]+O_karbeg+[.html представляет собой набор файлов, с помощью которых строится главный список.

Главный список имеет несколько ключей сортировок.

Номер ключа определяется переменной O_karbeg.

Построение списка

Рассмотрим построение списка на примере файла karbeg0012.html:


Файл karbeg0012.html


<eval>

,if (kC=35,R_karbeg:=maxele)

,if (kC=34,V_karbeg:=E_karbeg)

,if (kC=33,karbeg00-> (ordSetFocus (2),dbGoto (U_karbeg),dbSkip (-20),V_karbeg:=FieldGet (1)))

,if (kC=45,karbeg00-> (apprec (),scater ({V_karbeg,»», dtos (date ()),time ()})))

,if (R_karbeg <1,R_karbeg:=L_karbeg)

,if (R_karbeg> maxele, R_karbeg:=1)

,if (R_karbeg> L_karbeg, R_karbeg:=1)

,if ((maxele-R_karbeg) ==0, (R_karbeg  ,V_karbeg:=N_karbeg))

,i:=1

,cb:= [

<table width=100%> <tr bgcolor=d0d0a0>

<th> <a target=M href=karbeg0021.html? ord:=«1»> Дата

<th> ixBase

<th> <a target=M href=karbeg0021.html? ord:=«4»> medlan

<td> <a target=M href=karbeg0021.html? ord:=«3»> <b> ФИО

],

karbeg00-> (ordSetFocus (2),dbfout (

{||cB+= [<tr bgcolor=] +if (R_karbeg=i, (K_K:=FieldGet (1), [e0b0b0]), [e0e0d0])

+ [> <td>] +substr (fieldget (2),1,10)

+ [<td align=center> <a href=karbeg001.html? R_karbeg:=] +ltrim (str (i)) + [>] +FieldGet (1)

+ [<td>] +fieldget (3)

+ [<td width=100%> <nobr>] +HB_OemToAnsi (fieldget (5))

,if (i==1,U_karbeg:=RecNo ())

,if (i==2,N_karbeg:=Fieldget (1))

,i++

}, [»»], [], [FieldGet (1)],V_karbeg, [.t.],.f.,maxele+1)

,E_karbeg:=fieldget (1)),kC:=0,L_karbeg:=i-1,

cb+= [<script>

parent.B.M.F.karbeg.focus ();

parent.B.M.F.R.value=r;

parent.B.K.location.href='karbeg0022.html;

</script>]

+ [<tr bgcolor=c0c0f0> <td height=3> <td> <td> <td> <tr bgcolor =d0d0a0> <th> Дата <td> Номер <td> Цена <td> Документ]

,REZZAK00-> (dbSeek (K_K)

,cb+ [<tr bgcolor=e0e0d0> <td>] +substr (FieldGet (3),1,10) + [<td>] +FieldGet (2) + [<td>] +FieldGet (4) + [<td>] +FieldGet (5)

)


Отображение списка состоит из частей:

 блок обработки управления списком и элемент позиционирования в списке;

 вывод основного списка;

 стабилизация процессов;

 вывод дополнительной информации.


Блок обработки управления списком и элемент позиционирования в списке проводит дополнительную обработку информации о нажатых клавишах.

Если есть необходимость, то проводится новое позиционирование в списке.

Основные операции со списком следующие:

 перемещение в начало (код клавиши kC=36) R_karbeg:=1;

 перемещение в конец (код клавиши kC=35) R_karbeg:=maxele;

КОНЕЦ ОЗНАКОМИТЕЛЬНОГО ОТРЫВКА

 перемещение вниз по списку R_karbeg++;

 перемещение вверх по списку R_karbeg  .


На этом пример реализации спецификаций заканчивается в надежде на то, что читатель сам попробует изменить данный или добавить новый фрагмент информационной системы, расширив таким образом функциональность информационной системы в целом себе на пользу.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

Скачать книгу

Если нет возможности читать онлайн, скачайте книгу файлом для электронной книжки и читайте офлайн.

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub ios.epub fb3