Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Управление доступом к полям базыСодержание книги
Поиск на нашем сайте FIELDS <список полей> - перечень предъявляемых полей. По умолчанию отображаются все поля базы данных. Имя каждого поля может сопровождаться ключами, определяющими режим доступа к нему: [:<вырМ>] [:V = <вырL1> [:F] [:E = <вырС1>]] [:P = <вырС2>] [:H = <вырС3>] [:B = <выр1>,<выр2> [:F]] [:W = <вырL2>] Здесь символ ": " может быть заменен на тождественный ему символ " / ", если последний не будет интерпретироваться как знак деления (это возможно для параметра:<вырN>). Мы далее всегда будем использовать знак ": ". Перечисленные ключи имеют следующие значения: -r - разрешен только просмотр поля (Read-Only), однако курсор в поле допускается и, следовательно, в нем, например, могут быть обработаны нажатия заданных клавиш, а также задействованы ключи :V и :W. <вырN> - видимый размер поля в BROWSE-окне. Если фактический размер поля больше, предусмотрен скроллинг. :V=<вырL1> - контроль выхода из поля. Проверка вводимых данных выполняется по <вырN> после изменения содержимого поля. Если <вырL>=.T., ввод считается правильным и курсор переходит в следующее поле. Если <вырL>=.F., выдается стандартное сообщение "Invalid input" ("Неверный ввод"), которое может быть заменено на собственное, заданное с параметром :Е. Допустимы ПФ. Ключ V соответствует опции VALID команды ввода @...GET, которая будет рассмотрена позже. :F - проверка не только вводимых, но и уже существующих данных независимо от способа выхода из поля. :Е=<вырС1> - выдача собственного <вырС1> сообщения на неправильный ввод данных. Если <вырLl> вычисляется как числовое и в результате получено значение 0, сообщение не выдается и выхода из поля не происходит. Это дает возможность создавать собственные подпрограммы сообщений об ошибках из процедур обработки ошибок. По действию ключ аналогичен опции ERROR команды @...GET. :Р=<вырС2> - задание формата отображения данных с помощью шаблона Picture или символов форматной функции ввода-вывода (кроме кода "М"). Шаблоны и коды форматных функций описаны в команде @...SAY...GET при рассмотрении опций PICTURE и FUNCTION. :В~<выр1>,<выр2> - указание границ чисел или дат. Не допускаются ПФ. Возможно указать только одну из границ, но запятая должна присутствовать обязательно. Может быть усилена параметром:F. Ключ В соответствует опции RANGE команды @...GET. :Н:=<вырС3> - указание собственного заголовка поля. Разрешены ПФ. По умолчанию в качестве заголовков выводятся имена полей. Если заголовок не нужен вообще, следует в качестве <вырС3> использовать пробел (''). :W=<вырL2> - контроль входа в поле. Запрещены вход и редактирование, если <вырL2>=.F., и разрешены, если <вырL2>=.T.. Допустимы ПФ. Входом в поле считается перемещение в него курсора любым способом, в том числе и мышью. Ключ W соответствует опции WHEN команды @...GET. Отбор данных Следующие исключительно важные опции позволяют ограничить доступ в базе только к определенному множеству записей. FOR <условие1> - устанавливает фильтр записей для базы. В BROWSE-окне предъявляются только записи, удовлетворяющие заданному <условию>. Пример: USE tadr BROWSE FOR szar>=530000.AND.szar<=750000 Здесь команда BROWSE предъявляет только те записи базы KADR.DBF, в которых значения поля SZAR (средняя зарплата) от 530000 до 750000 руб. Если имеются соответствующие индексные файлы, фильтрация данных будет выполняться с их участием и использованием оптимизирующей технологии Rushmore, т.е. гораздо быстрее. Такой индекс, естественно, должен быть открыт. Опция NOOPTIMIZE отключает оптимизацию. REST - удобно использовать совместно с FOR-условием. Это предотвращает повторный поиск в базе с самого ее начала записей, отвечающих <условию> при повторном вызове BROWSE-окна. Курсор остается на текущей записи, если, конечно, она удовлетворяет <условию>. KEY <выр1> [,<выр>2>] - ограничение действия команды диапазоном ключевого выражения <выр1> и <выр2> активного индексного файла. Пример: USE kadr INDEX ON szar TO kadrzar BROWSE KEY 530000,750000 Пример по целям аналогичен предыдущему, но для функционирования такого режима доступа к данным уже обязательно наличие предварительно созданного индексного файла KADRZAR.IDX по полю SZAR. По возможности следует использовать быструю фильтрацию с применением индексных файлов непосредственно (опция KEY) или по технологии Rushmore (опция FOR). Индексирование и технология Rushmore будут рассмотрены далее. Вычисляемые поля В <список полей> могут включаться вычисляемые поля. Эти поля являются функциями других полей, переменных и т.д. Такие поля не могут редактироваться и не запоминаются в базе данных. Вычисляемые поля сами могут содержать пользовательские, функции что делает их важным средством отображения и управления данными. Например, в команде BROWSE для базы KADR.DBF введем вычисляемое поле РОМ для определения материальной помощи Считаем, что помощь устанавливается на одного ребенка в размеру 70% средней зарплаты, но не более 90000 руб. и только тем, у когс средняя зарплата не превышает 300000 руб. Таким образом POM=IIF(szar>300000, 0, MIN(0.7*szar*det, 90000)). Здесь, забегая вперед, мы использовали две новые функции) MIN() и IIF() - Функция MIN() возвращает минимальное значение из 0.7*szar*det и 90000. Функция IIF() возвращает 0, если szar>300000, или MIN() в противном случае. Видимый размер вычисляемого поля РОМ будет определяться принятыми умолчаниями на размер числовых выводов. Этим процессом можно (и лучше) управлять с помощью параметра ограничения длины поля:<вырN>. Еще удобнее применение шаблонов (ключ :Р), которыми может быть установлена не только длина, но и формат выдачи. Разделение окна В режиме разделения Browse-окно разбивается на два смежных окна, в которых отображаются данные из базы/баз, возможно, в разной форме. Это может быть удобно, например, если надо сделать неподвижной какую-то часть данных в одном окне при горизонтальном и вертикальном перемещении в другом. LOCK <вырN> - BROWSE-окно делится на две части, где первые <вырN> полей всей базы или из списка FIELDS (если есть) дублируются в левой части окна. Перебрасывается курсор в другую половину окна нажатием клавиш Ctrl-H или мышью. PARTITION <вырN> - то же, но граница будет проходить по колонке номер <вырN>. LEDIT/REDIT - опции действуют только в разделенном окне. Они указывают, будут ли слева/справа (LeftEDIT/RightEDIT) от линии разделения данные показаны, как в CHANGE-окне (EDIT -другое имя команды CHANGE). В противоположной части окна поля останутся расположенными горизонтально. LPARTITION - курсор устанавливается в левой половине разделенного окна (по умолчанию - в правой половине). NOLINK - несинхронное перемещение видимых записей в разделенных окнах. При движении курсора в одной половине окна записи в другой половине остаются неподвижными. Это удобно, например, в случае, если нужно получить доступ сразу к двум записям одной базы данных или если установлена связь между базами типа один-ко-многим для перемещения в подчиненной базе при неподвижной записи из старшей базы. По умолчанию записи синхронно перемещаются в обеих половинах окна. NOLGRID/NORGRID - удаляет вертикальные линии-разделители полей в левой/правой части разделенного окна. По умолчанию разделители есть. Если окно не разделено, вертикальные линии удаляются опцией NORGRID.
|
||
|
Последнее изменение этой страницы: 2017-01-25; просмотров: 247; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.01 с.) |