Скачать 356.86 Kb.
|
SET FILTER TO[<условие>]Команда позволяет установить FOR - условие для всех без исключения команд обработки данных. Здесь условие указывает на то, какие именно записи могут быть доступны для обработки. Пример SET FILTER TO GOROD=’Москва’ Сделает доступными для обработки только записи о слушателях курсов, приехавших из Москвы. Команда SET FILTER TO без параметров снимает все ограничения на предьявление записей из текущей базы. Последовательный поиск. Формат команды: LOCATE[<диапазон>][FOR<логич.усл1>] [WHILE<логич.усл2>] <команды FoxPro> [CONTINUE] Пример Найти всех сотрудниц по имени Татьяна в файле Kadr USE Kadr LOCATE FOR Name=’Татьяна’ DO WHILE.NOT.EOF() ? Famil,Name CONTINUE ENDDO Команда LOCATE ищет первую запись в БД по заданному условию, остальные записи ищет команда CONTINUE (её следует поместить в цикл). Быстрый поиск в индексированной БД. SEEK<выражение> Команда разыскивает только одну первую запись, в которой в индексном поле наблюдается <выражение>, т.е. когда < поле>=<выражение>, и устанавливает на неё указатель записи. Пример Найдём в БД Kadr сотрудника с табельным номером 217.Тип поля TAB –числовой. USE Kadr INDEX KadrTab SEEK 217 DISP FIELDS Tab,Famil Функция поиска LOOKUP(<поле1>,<выр>,<поле2>) Будет возвращено содержание <поле1>,условие поиска записи в БД –– вхождение <выр> в <поле2>. Пример Найти и вывести на экран фамилию сотрудника БД , начинающуюся на букву «П» и табельный номер, соответствующий этому сотруднику. ? LOOKUP(tab, ‘П’, Famil),‘ ‘, Famil Выполнить самостоятельно. 1.Вывести на экран список женщин, приехавших на курсы,продолжитель- ностью 10 дней? 2. Найти слушателя курсов – женщину с фамилией Зуб,сменить фамилию на Фролова. Контрольные вопросы: 1.Команда LOCATE… предполагает работу с неупорядоченной базой данных, а если перед использованием команды базу проиндексиро- вать по полю,которое фигурирует в условии поиска LOCATE…? Каков будет результат? 2.Почему команда SEEK называется командой быстрого поиска? Ваши соображения ? Лабораторная работа № 10.Создание меню. Цель: Познакомиться со всеми командами создания меню и научиться создавать dBASE –– меню. Перечислим существующие команды создания меню: 1.Простейшее меню можно создать с помощью команд: @ x,y prompt “1…” –– описывает форму и содержание. мenu to m –– помещает в переменную m номер выбранной с помощью курсора строки меню Выявление выбора пользователя в программе осуществляется путём анализа переменной m, обычно в структуре: DO CASE…ENDCASE. 2.Вертикальное меню можно создать с помощью команд: @ y,x MENU<массив> <вырN1>[,<вырN2>][TITLE <вырС>] –– описывает форму и содержание. READ MENU TO <перем.> [SAVE] –– активизирует меню. Выявление выбора пользователя в программе осуществляется путём анализа <переменной>, обычно в структуре: DO CASE … ENDCASE. 3.Двухуроневое PULLDOWN –– меню: MENU BAR <массив>,<вырN> –– определение главного горизонтального меню. MENU <вырN1>,<массив>,<вырN2>[,<вырN3>] –– определение вспомогательного POPUP – меню и его привязка к соответствующему пункту главного меню. READ MENU BAR TO <перем1>,<перем2>[SAVE] –– активизация меню. Для всех трёх видов описанных меню, в случае неоднократного обращения в программе необходима организация цикла по его регенерации. Указанного недостатка лишено dBASE - меню. DBASE – меню имеет два типа элементарных меню: вертикальное (“всплывающее”, или POPUP- меню) и горизонтальное (BAR – меню). Вот схема dBASE – меню: __________________________ BAR – меню _________________________ PAD - меню PAD - меню … PAD – меню I ____ POPUP – меню ___ BAR – пункт BAR – пункт … BAR – пункт ______________________ Пример dBASE – меню: Горизонтальное BAR–меню будет иметь три пункта : названия времён года –– Зима и Весна, и третий пункт - Выход.При выборе одного из пунктов, называющих время года, будет появляться вертикальное POPUP-меню, предъявляющее названия трёх месяцев этого времени года, а при выборе каждого из названий месяцев будет выполняться команда или процедура, выводящая на экран текст –– строчку из стихотворения, относящуюся к этому времени года. Такое содержание меню делает прозрачным его структуру и позволяет полностью сосредоточиться на усвоении команд, её организующих, что для начала и требуется. Текст программы: DEFINE MENU mainmenu SHADOW,COLOR,RB/W DEFINE PAD zima OF mainmenu PROMPT ‘\<Зима’ DEFINE PAD wesna OF mainmenu PROMPT ‘\<Весна’ DEFINE PAD wichod OF mainmenu PROMPT '\<Выход' *вызов вспомогательного POPUP – меню mzima к pad- пункту zima on pad zima of mainmenu activate popup mzima * вызов вспомогательного POPUP – меню mwesna к pad – пункту wesna on pad wesna of mainmenu activate popup mwesna * выход из прграммы по выборе pad – пункта wichod on selection pad wichod of mainmenu cancel * определение POPUP – меню mzima define popup mzima *описание элементов POPUP - меню define bar 1 of mzima prompt ‘Декабрь’ define bar 2 of mzima prompt ‘Январь’ define bar 3 of mzima prompt ‘Февраль’ *определение реакции меню при выборе BAR- пункта on selection bar 1 of mzima ? 'Снег на крыше,на крылечке.' on selection bar 2 of mzima ?'В январе,в январе много снегу на дворе' on selection bar 3 of mzima ? 'Дуют ветры в феврале.Воют в трубах громко' *определение POPUP – меню mwesna define popup mwesna * описание элементов POPUP- меню define bar 1 of mwesna prompt 'Март' define bar 2 of mwesna prompt '\-' define bar 3 of mwesna prompt 'Апрель' define bar 4 of mwesna prompt '\-' define bar 5 of mwesna prompt 'Май' on selection bar 1 of mwesna do w1 on selection bar 3 of mwesna do w2 on selection bar 5 of mwesna do w3 ACTIVATE MENU mainmenu ON SELECTION PAD zima OF mainmenu ACTIVATE POPUP mzima ON SELECTION PAD wesna OF mainmenu ACTIVATE POPUP mwesna PROCEDURE W1 &&---------------------------------Mart PUSH KEY CLEAR DEFINE WINDOW Mart FROM 5,11 to 15,47 IN SCREEN DOUBLE ACTIVATE WINDOW Mart @ 1,2 SAY '' @ 2,2 SAY '' @ 3,2 SAY '' @ 4,2 SAY '' WAIT 'Нажмите клавишу пробела' DEACTIVATE WINDOW Mart POP KEY PROCEDURE W2 &&---------------------------------Aprel PUSH KEY CLEAR DEFINE WINDOW Aprel FROM 5,11 to 15,47 IN SCREEN DOUBLE ACTIVATE WINDOW Aprel @ 1,2 SAY '' @ 2,2 SAY '' @ 3,2 SAY '' @ 4,2 SAY '' WAIT 'Нажмите клавишу пробела' DEACTIVATE WINDOW Aprel POP KEY RETURN PROCEDURE W3 &&---------------------------------Mai PUSH KEY CLEAR DEFINE WINDOW Mai FROM 5,11 to 15,47 IN SCREEN DOUBLE ACTIVATE WINDOW Mai @ 1,2 SAY 'Люблю грозу в начале мая,' @ 2,2 SAY 'Когда весенний первый гром,' @ 3,2 SAY 'Как бы резвяся и играя,' @ 4,2 SAY 'Грохочет в небе голубом.' WAIT 'Нажмите клавишу пробела' DEACTIVATE WINDOW Mai POP KEY RETURN CANCEL Выполнить самостоятельно 1. Создать dBASE-меню для задачи:"Рабочее место сотрудника отдела кадров". 2. Создать dBASE-меню для задачи: "Телефонный справочник"(телефоны частных лиц и учреждений). Контрольные вопросы. 1. В чём главное примущество dBASE-меню перед всеми остальными? 2. Назовите основные группы команд для работы с dBASE-меню. Лабораторная работа № 11. Работа с несколькими БД. Цель: Научиться работать с несколькими базами данных. В FoxPro можно обрабатывать сразу несколько баз данных. Каждый такой файл типа .DBF и все вспомагательные файлы (например, индексные) открываются в своей отдельной рабочей области.Переход из области в область осуществляется командой: SELECT <номер рабочей области/буквенное обозначение области> Псевдонимом области по умолчанию является само имя находящегося в ней файла базы данных.В качестве псевдонима можно указать и любое другое слово в команде USE. Использование псевдонима позволяет при работе с разными базами называть их одним именем (псевдонимом).Это делает программу независимой от имени конкретной базы. Область в которой мы находимся в данный момент, называется активной рабочей областью. Одновременно можно обратиться из активной рабочей области к полям других баз. В этом случае имя поля из неактивной области должно быть составным: <рабочая область>< псевдоним>< имя поля> или <рабочая область>< псевдоним>< имя поля> <Рабочая область> в составном имени может указываться буквой, именем её базы данных, псевдонимом, но не номером. Номер может быть указан в команде SELEKT и в функциях. Ни одно из полей записи базы данных KOLLEK.DBF не идентифицирует слушателя курсов вполне однозначно, т.е. могут быть совпадающие фамилии, специальности и т.п. Введём в структуру записи ещё одно поле – идентификационный номер слушателя(IDENT). Рассмотрим задачу организации отъезда слушателей по окончании курсов. База данных будет со держать информацию о заказанных билетах и выполненных заказах. Структура этой БД, назовём её ZAKAZ.DBF, следующая:
Установим связь между БД вида одна-запись-с-одной.Для этого файл, с которым устанавливается связь, должен быть проиндексирован по общему полю-ключу. Формат команды: SET RELATION TO <ключ> INTO <область> [,<ключ> INTO<область>…] [ADDITIV] Пример.По идентификационному номеру слушателя найти его фамилию и информацию о наличии билета. В нашем случае поле-ключ –– это идентификационный номер слушателя.В основной базе-KOLLEK.DBF ищем по номеру фамилию. База, с которой устанавливается связь –– ZAKAZ.DBF. SELE A USE KOLLEK && открытие старшей базы в обл. А SELE B USE ZAKAZ && открытие младшей базы в обл. В INDEX ON IDENT TO ZAKAZ * установление связи одна-с- одной базы KOLLEK.DBF с базой ZAKAZ.DBF SELE A SET RELATION TO IDENT INTO B BROWSE FIELDS A.FAMIL:H = 'Фамилия ', A.IDENT : H = 'Номер ', B.IDENT :; H = 'Номер/Заказ ', B.YESNO : H = ' Взят билет',B.DATAV : H = 'Дата_отъезда ' SET RELATION TO && отмена всех связей В FoxPro можно устанавливать связи с несколькими базами одновременно. Если со старшим файлом, который уже связан с другим, необходимо связать некоторый третий (четвёртый и т. д.), следует во все последующие команды SET RELATION включать слово ADDITIVE , которое обеспечит сохранение связей, установленных ранее. Связь вида одна-запись-со-многими. Следующая команда устанавливает связь такого типа между двумя или несколькими базами данных:
При этом с каждой записью из старшей базы могут быть сцеплены несколько записей из младшей базы.Связь м.б. установлена сразу с несколькими младшими базами, находящимися в указанных областях. Прежде чем использовать команду SET SKIP, необходимо выполнить начальное сцепление вида одна-запись-с-одной командой SET RELATION. Для рассмотрения организации связи одной базы с несколькими по схеме одна-запись-со-многими, создадим ещё одну базу данных, которая будет содержать результаты тестирования слушателей курсов по трем различным направлениям, и поэтому в такой БД одному и тому же идентификационному номеру будет соответствовать несколько записей. Структура базы данных, назовём её TEST.DBF, следующая
Пример Требуется для заданного (введённого с клавиатуры) идентификационного номера и фамилии из базы данных KOLLEK.DBF предъявить результаты по всем трём тестам из базы TEST.DBF, которая проиндексирована по полю IDENT. SELE A USE KOLLEK.DBF INDEX ON IDENT TO KOLLEK SELE B USE TEST.DBF INDEX ON IDENT TO TEST SELE A SET RELATION TO IDENT INTO B && Установление связи одна-с-одной SET SKIP TO B && Установление связи одна-со-многими NOM=00000 @ 2,2 SAY "Введите нужный идентиф.номер" GET NOM READ SEEK NOM BROWSE FIELDS A.FAMIL:H='Фамилия', A.IDENT:H='Идентифик.', B.TEST:H='Рез-ат 1-го теста', B.TEST:H='Рез-ат 2-го теста'.; B.TEST:H='Рез-ат 3-го теста' SET RELATION TO && Отмена всех связей Выполнить самостоятельно 1.Использовать БД Kadr.dbf и БД Sprav.dbf для расчёта почасовой оплаты труда работника, табельный номер которого и количество отработанных часов вводятся с клавиатуры.Запись БД Sprav.dbf содержит два поля – разряд (Razr) и тариф (Tarif), всего 16 записей (по числу разрядов).На экран вывести фамилию работника, рассчитанную зарплату и тарифную ставку. 2.Написать программу поиска по введённому табельному номеру сотрудника в БД Kadr.dbf и вывода из связанной с ней БД Adress.dbf информации об адресе, по которому проживает сотрудник. Контрольные вопросы. 1. Объясните понятие –– “Рабочая область”. 2. Какие связи могут быть установлены между файлами баз данных? Литература При работе над практикумом была изучена следующая литература: 1. Попов А.А. Создание приложений для FoxPro 2.5/2.6 в DOS и WINDOWS.– М.:Издательство “Калашников и К°”,1997.
|
Охватывает интересы иностранных граждан и национальных меньшинств, временно или постоянно пребывающих на территории Ростовской области.... | ... | ||
Конфликтология — относительно молодая наука. В завершенном виде она появилась лишь к середине XX в. Но конфликты существовали всегда,... | Пенсионный фонд, а также проверка файлов актуальными проверочными программами. Все данные по организации сохранятся и могут быть... | ||
В середине 60-х годов очень была распространена метода послойного передирания успешных импортных образцов различной техники | ФЗ, а также Федерального Закона «О персональных данных» от 27. 07. 2006 №152-фз информация о гражданах (их персональные данные) относятся... | ||
Тем не менее по-прежнему широкое распространение имеют трудоемкие ручные или слабо автоматизированные способы обработки информации,... | Рассказывая о функциях государства, студентка Зайцева сказала, что к внешним функциям относятся обеспечение мира на земле, а также... | ||
Фз "О животном мире", постановлением Правительства Нижегородской области от 22 ноября 2007 года n 430 "О порядке разработки и утверждения... | Фз "О животном мире", постановлением Правительства Нижегородской области от 22 ноября 2007 года n 430 "О порядке разработки и утверждения... |
Поиск Главная страница   Заполнение бланков   Бланки   Договоры   Документы    |