Metodichka (Билеты, решения и методичка по Информатике (2.0))
Описание файла
Документ из архива "Билеты, решения и методичка по Информатике (2.0)", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "Metodichka"
Текст из документа "Metodichka"
1. СУБД FOXPRO: ОЗНАКОМЛЕНИЕ С СИСТЕМОЙ
РАБОТА В МЕНЮ-ОРИЕНТИРОВАННОМ РЕЖИМЕ 2
2.ОСНОВНЫЕ КОМАНДЫ FOXPRO 5
ДИАЛОГОВЫЕ КОМАНДЫ 5
КОМАНДЫ РЕДАКТИРОВАНИЯ 6
ФИЛЬТРАЦИЯ ДАННЫХ Ошибка! Закладка не определена.
ИЗМЕНЕНИЕ ДАННЫХ Ошибка! Закладка не определена.
3. СОЗДАНИЕ КОМАНДНЫХ ФАЙЛОВ 7
4.КОМАНДА ПОЛНОЭКРАННОГО РЕДАКТИРОВАНИЯ BROWSE Ошибка! Закладка не определена.
5.КОМАНДЫ ВВОДА-ВЫВОДА 8
6.СРЕДСТВА ПРОГРАММИРОВАНИЯ 10
7.ОРГАНИЗАЦИЯ МЕНЮ Ошибка! Закладка не определена.
8.ИЗОБРАЗИТЕЛЬНЫЕ СРЕДСТВА 15
&&&&
10. РАБОТА С НЕСКОЛЬКИМИ БАЗАМИ ДАННЫХ 15
11. РАБОТА С ОКНАМИ 18
12.ПРИЛОЖЕНИЯ 19
12.1. СТАНДАРТНЫЕ ФУНКЦИИ FOXPRO 19
12.2. SET - КОМАНДЫ 21
12.3. ТЕКСТЫ ПРОГРАММ 22
13. ЗАДАНИЯ. 27
РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА 28
ВВЕДЕНИЕ
Методические указания предназначены для проведения практических и лабораторных занятий по дисциплине «Информатика и компьютерная техника» для всех форм обучения. В них кратко изложены технологии реляционных СУБД, реализация их средствами СУБД FoxPro, а также даны практические приемы их реализации. Основное внимание уделено изложению команд языка программирования среды FoxPro с пояснениями на конкретных примерах и заданиях по основным темам.
РЕЛЯЦИОННАЯ МОДЕЛЬ
По способу установления связей между данными различают реляционную, иерархическую и сетевую модели.
Реляционная модель является удобной и наиболее привычной формой представления данных в виде таблицы. В математических дисциплинах таблице соответствует термин отношение (relation). Отсюда и произошло название модели – реляционная.
Одним из основных преимуществ реляционной модели является ее однородность. Все данные рассматриваются как хранимые в таблицах, в которых каждая строка имеет один и тот же формат. Каждая строка в таблице представляет некоторый объект реального мира или соотношение между объектами. Пользователь модели сам должен для себя решить вопрос, обладают ли соответствующие сущности реального мира однородностью. Этим самым решается проблема пригодности модели для предполагаемого применения.
Реляционная модель имеет два главных свойства:
-
базовые порции данных представляют собой отношения (relations);
-
операции над таблицами затрагивают только соотношения (relation closure).
Соотношение – это математическая концепция, описывающая, как соотносятся между собой элементы двух множеств.
Модель предъявляет к таблицам следующие требования:
-
данные в ячейках таблицы должны быть структурно неделимыми. Каждая ячейка может содержать только одну порцию данных. Это свойство часто определяется как принцип информационной неделимости. Недопустимо, чтобы в ячейке таблицы реляционной модели содержалось более одной порции данных, что иногда называется информационным кодированием. Примером служит идентификационный номер автомобиля. Если записать его в одну ячейку, то будет нарушен принцип неделимости информации, поскольку в ячейке окажутся разделяемые данные такие, как наименование производителя, модели, сведение о нахождении предприятия и т.д.;
-
данные в одном столбце должны быть одного типа;
-
каждый столбец должен быть уникальным (недопустимы дублирования столбцов);
-
столбцы размещаются в произвольном порядке;
-
строки размещаются в таблице также в произвольном порядке;
-
столбцы имеют уникальные наименования.
Два фундаментальных правила: правило целостности объектов (entity integrity rule) и правило ссылочной целостности (referential integrity rule).
Первичный ключ – это столбец или некоторое подмножество столбцов, которые уникально, т.е. единственным образом определяет строки. Первичный ключ, который включает более одного столбца, называется множественным или комбинированным или составным. Остальные ключи, которые можно также использовать в качестве первичных, называются потенциальными или альтернативными ключами.
Внешний ключ – это столбец или подмножество одной таблицы, который может служит в качестве первичного ключа для другой таблицы. Внешний ключ таблицы является ссылкой на первичный ключ другой таблицы. Правило целостности объектов утверждает, что первичный ключ не может быть полностью или частично пустым, т.е. иметь значение null. Правило ссылочной целостности гласит, что внешний ключ может быть либо пустым, либо соответствовать значению первичного ключа, на который он ссылается.
Формальное определение следующее:
Схемой отношения R называется конечное множество имен атрибутов {A ,A ,…,A }. Каждому имени атрибута A ставится в соответствие множество D , называемое доменом атрибута A , 1<=i<=n. Домен атрибута A обозначается также dom(A ). Имена атрибутов иногда называются символами атрибутов или просто атрибутами. Домены являются произвольными непустыми конечными или счетными множествами. Пусть D=D D … D .
Отношение r со схемой R – это конечное множество отображений {t ,t ,…,t } из R в D; причем каждое отображение t r должно удовлетворять следующему ограничению: t(A ) принадлежит D , 1<=i<=n. Эти отображения называются кортежами.
Семейство систем управления базами данных FoxPro, является продуктом известной фирмы Fox Software и имеет широкую популярность во всем мире. В настоящем пособии рассматривается версия FoxPro2.6 (нерусифицированная), работающая под управлением Windows.
ТИПЫ ДАННЫХ
Visual FoxPro 6.0 типы данных
Тип | Описание | Размер | Диапозон |
Character | Любой текст | 1 byte per character to 254 | Любой символ |
Currency | Monetary amounts (денежно-кредитные количества) | 8 bytes | - 922337203685477.5807 to 922337203685477.5807 |
Date | Хронологические данные, состоящие из месяца, года, и дня | 8 bytes | When using strict date formats, {^0001-01-01}, January 1st, 1 A.D to {^9999-12-31}, December 31st, 9999 A.D. |
DateTime | Хронологические данные, состоящие из месяца, года, дня, и времени | 8 bytes | When using strict date formats, {^0001-01-01}, January 1st, 1 A.D to {^9999-12-31}, December 31st, 9999 A.D., plus 00:00:00 a.m. to 11:59:59 p.m. |
Logical | Boolean значения true или false | 1 byte | True (.T.) or False (.F.) |
Numeric | Integers or fractions(Целые числа или фракции(доли)) | 8 bytes in memory; | - .9999999999E+19 to .9999999999E+20 |
Variant | A variant can contain any of the Visual FoxPro data types and the null value. Once a value is stored to a variant, the variant asosumes the data type of the data it contains. Variants are designated with an e prefix in language syntax (Вариант может содержать любой из Визуальных FoxPro типов данных и нулевое(пустое) значение). | See data types above. См. типы данных выше. | See data types above. См. типы данных выше. |
В среде FoxPro установлены следующие стандартные типы файлов (всего свыше 60, приводятся лишь некоторые):
.dbf - файл базы данных;
.fpt - файл для хранения текстов memo- полей;
.idx - индексный файл;
.cdx - мультииндексный файл;
.prg - командный, программный файл;
.mem - файл для хранения временных переменных;
.fxp - откомпилированный комадный prg- файл;
.pjx - файл проекта.
1. СУБД FOXPRO: ОЗНАКОМЛЕНИЕ С СИСТЕМОЙ РАБОТА В МЕНЮ-ОРИЕНТИРОВАННОМ РЕЖИМЕ
Работа в среде FoxPro выполняется в одном из следующих режимов:
- непосредственная интерпретация команд;
- меню - ориентированный режим;
-
выполнение программ.
При работе в первом режиме пользователь вводит текст команды в командном окне. Среда осуществляет синтаксический контроль и выполняет команду. Некоторые команды в процессе выполнения проводят собственный диалог с пользователем, другие могут выдавать лишь краткие сообщения об итогах работы. Второй режим предназначен для начинающего пользователя, который не освоил еще языка команд. Наконец, режим выполнения программ подразумевает, что пользователь будет писать программы, используя язык команд xBase, дополненный специальными командами программирования. Весь цикл по написанию, отладке и выполнению программ можно осуществлять в среде системы.
МЕНЮ - ОРИЕНТИРОВАННЫЙ РЕЖИМ.
Рабочее пространство FoxPro представлено окном, верхняя строка которого является строкой главного меню системы. Под ней - рабочая зона пользователя. В рабочем пространстве открыто также командное окно, размер и положение которого можно изменять либо удалить.
Активизация строки меню F10
Выбор заголовка меню клавиши управления курсором
Вход в меню следующего уровня Enter
Отмена Esc
За клавишами F1-F10 закреплены стандартные директивы, назначение клавиш можно переопределить.
Горячие клавиши (например, CTRL+F2 - активизация командного окна, CTRL+D - выполнение программ)
Главное меню состоит из заголовков групп операций и команд:
Для FoxPro 2.6 системное меню выглядит следующим образом
SYSTEM FILE EDIT DATABASE RECORD PROGRAM WINDOW
Каждой группе соответствует меню второго уровня - меню операций и директив, некоторые из них открывают свои диалоговые окна. Перемещения внутри окон – клавишами управления курсором, по полям окон - Tab. В диалогах используются командные "кнопки", изображенные на экране. К ним относятся, например. Ok (подтверждение установок). Cancel (отмена установок). Save (сохранение) и многие другие. Недоступные пункты главного меню и директивы имеют пониженную яркость.
Рассмотрим некоторые пункты главного меню.
System-меню – вспомогательные средства FoxPro,
в том числе:
About FoxPro - предъявление фирменного знака.
Help - помощь. Просмотр и выбор варианта помощи –
клавиши управления курсором.
Вход в следующее меню - Enter. Перемещение –
клавиши управления курсором.
Контекстная помощь вызывается из любого
режима - F1.
Macros - закрепление макрокоманд за клавишами F1 - F10.
Filer - менеджер файлов - выполняет функции управления
файлами.
Выбор полей - Tab. Левое поле - просмотр файлов
(скроллинг).
Правое поле - выбор накопителя, каталога,
маркировка. Нижнее поле -манипуляция файлами.
Calculator - вызов калькулятора.
Calendar-Diary - вызов календаря для внесения записей. Левое поле –
выбор дня (по стрелкам), месяца (PgUp, PgDn), года
(Shift +PgUp, Shift+PgDn), текущая дата - Т. Правое
поле - для записей (Вход - Tab, Выход -Shift Tab).
Special Characters - таблица символов псевдографики.
ASCII Chart - таблица ASCII-кодов.
Capture - взятие в буфер заданной области экрана.
Puzzle - игра
File-меню:
New - создание
Open - открытие
Close - закрытие
Save - сохранение
Save as - сохранение с новым именем
Revert - возврат предыдущей версии файла
Printer Setup - установки принтера
Print - печать файла
Quit - выход
При создании нового файла (New) пользователю предлагается выбрать тип создаваемого файла: базы данных, программный, текстовый, индексный, генератора отчетов или др. Выбранный тип получает пометку (•) .
Edit – меню – встроенный текстовый редактор системы.
Undo - отмена последнего действия,
Redo - повторение отмененного действия,
Cut - вырезка части текста в буфер,
Сoру - копирование части текста в буфер,
Paste - вывод содержимого буфера в текст,
Clear - очистка части текста,
Select All - выделение всего текста окна,
Goto Line - переход к строке,
Find - поиск заданного фрагмента текста,
Find Again - поиск следующего вхождения,
Replace and Find Again - последовательный поиск с заменой,
Replace All - полная замена всех вхождений,
Preference - настройка редактора.
Database – меню – работа с данными, хранимыми в БД
Setup - модификация баз данных, индексов, фильтров,
Browse - вызов команды полноэкранного редактирования,
Append From - добавление записей из других БД или файлов,
Copy То - копирование в другие БД или файлы,
Sort - сортировка записей,
Total - создание БД с суммами по заданному признаку,
Average - среднее арифметическое числовых полей,
Count - подсчет записей с указанным признаком,
Sum - суммирование числовых полей,
Calculate - вычисления в БД,
Report - подключение ранее созданной формы отчета,
Pack - физическое удаление помеченных полей,
Reindex - переиндексирование базы.
Record-меню – работа с записями файлов БД
Append - вызов окна дополнения БД новыми записями,
Change - вызов окна редактирования записей,
Goto - переход к указанной записи,
Locate - последовательный поиск записи по ключу,
Continue - продолжение поиска,
Seek - ускоренный индексный поиск по ключу,
Replace - изменения (вычисления) в БД,
Delete - пометка записей для удаления,
Recall - снятие пометок для удаления.
Program – меню – средства работы с программами
Do - выбор командного файла и исполнение,
Cancel - прерывание программы,
Resume - продолжение программы,
Compile - переход в окно компиляции,
Generate - вызов генератора приложений,
FoxDoc - вызов документатора программ,
FoxGraph - вызов графического пакета.
Window-меню – работа с окнами
Hide - удаление командного окна с экрана,
Clear - очистка рабочего поля,
Move - перемещение командного окна,
Size, Zoom - изменение размера командного окна,
Cycle - циклическое переключение активных окон,
Color - выбор цветовой схемы,
Command - активизация командного окна,
Debug - вызов отладочного окна,
Trace - трассировка программ,
View - переход в View
Подробную информацию о работе в меню - ориентированном режиме можно получить из контекстной помощи (Help - F1).
Ввод, редактирование, удаление, поиск, просмотр данных можно выполнить для открытой в View-окне базы данных с помощью команд Record-меню из главного меню:
- добавление, ввод данных;
- изменение, корректировка полей записей;
- пометка записей к удалению;
- отмена пометки к удалению;
- замена значений полей;
- переход к записи, положение которой указывается в
диалоговом окне с помощью селекторных кнопок:
- к первой записи,
- к последней записи
- по указанию номера записи,
- смещение от активной записи по указанию шага
- поиск данных путем указания в окне критериев поиска:
- область поиска выбирается из альтернатив:
- все записи файла;
- следующая за активной записью;
- по указанию номера записи;
- оставшиеся, начиная с активной;
- указание логических условий отбора по значениям полей в
окне редактора выражений;
- отбор данных, пока истинно логическое условие ;
- быстрый поиск для индексированного файла данных
Команды Record-меню не затрагивают физической структуры базы данных. Замечание: В открытом Browse-окне удобно использовать комбинации клавиш:
^ N - дополнение, ^Т - пометка к удалению, ^W- выход с сохранением изменений.
Команды Database-меню дают следующие возможности:
- аналоги одноименных команд из меню Window/View;
- сжатие данных, удаление помеченных записей.
- сортировка записей по заданному ключу с перезаписью в
другой файл данных.
Дополнительные возможности работы с данными в меню — ориентированном режиме можно освоить с помощью Help-меню.
Более широкий круг возможностей работы с созданной базой данных, удовлетворяющих всем информационным потребностям пользователя, обеспечивает покомандный режим работы (набор команд в Command-окне) либо программный режим (создание командных prg-файлов).
2.ОСНОВНЫЕ КОМАНДЫ FOXPRO
В настоящем разделе приводится краткое описание основных команд языка программирования среды FoxPro, которые можно задавать непосредственно в Command- окне либо использовать в тексте программ. Получение командные файлы выполняются в режиме интерпретации. Продуктивное освоение языка возможно только при практической проработке материала на компьютере.
Формат команды FOXPRO:
ИМЯ_КОМАНДЫ [] [<список выражений»]
[ FОR] [WHILE]
Здесь - границы действия команды:
ALL - все записи;
REST - все записи от текущей до конца;
NEXT - следующие N записей;
RECORD - запись с номером N;
FОR - выполнение команды только для записей,
удовлетворяющих условию;
WHILE - выполнение команды только до тех пор, пока не
перестанет выполняться условие.
Пример:
LIST ALL FIELDS num, name FOR name = 'A'
Для длинных записей команд используется символ переноса на следующую строку - ";".
КОМАНДЫ УСТАНОВКИ
Кроме приведенных выше команд в FOXPRO имеется большой класс команд, называемых командами установки. Они не выполняют каких-либо действий, но влияют на работу других команд.
Имеется два типа команд установки:
SET ON|OFF
SET TO
ON|OFF – означает, что установка либо включена, т.е. работает,
либо выключена.
Примеры:
SET TALK OFF – погашения вывода служебных
сообщений о работе команд на экран;
SET PROCEDURE TO a:\proc1 – назначение процедурного файла.
Перечень наиболее часто используемых команд установки приведена в Приложении 2.
Перейдем к рассмотрению конкретных команд.
ДИАЛОГОВЫЕ КОМАНДЫ
Создание и изменение структуры файла базы данных.
СRЕАТЕ - создание структуры БД в диалоге.
Пример
Название поля Тип Пояснение
TAB numeric табельный номер
FIO character ФИО
POL character пол
DATA date дата рождения
OBR logical наличие высшего образования
LANG numeric кол-во ин. языков, кот-ми влад. Работник
STAG numeric стаж работы на фирме
DETI numeric количество детей
SRZAR numeric среднемесячная зарплата
COMP logical знание ПК
MODIFY STRUCTURE - изменение структуры открытой БД.
При вызове этих команд среда открывает диалог, предоставляя экран-форму для ввода данных о структуре создаваемого файла базы данных.
КОМАНДЫ РЕДАКТИРОВАНИЯ
APPEND [BLANK] - добавление записи в конец открытой БД
([BLANK] -пустая запись).
INSERT [BLANK] [BEFORE] - вставка записи до [BEFORE] или после
текущей записи.
CHANGE [] [FIELDS] [WHILE ]
[ FOR ] - редактирование значений полей.
DELETE [зона действия] [WHILE ][FОR] пометка
записей признаком удаления.
BROWSE... - команда доступа пользователя к данным.
При вызове этих команд и наличии открытой базы данных среда развертывает для пользователя окно редактирования. Команда BROWSE будет рассмотрена несколько позже.
ПРОСМОТР ДАННЫХ.
Команды DISPLAY и LIST
DISPLAY [][]FOR[]WHILE[]
[OFF] [TO PRINT / TO FILE<файл>]
Команда LIST с похожими функциями не делает остановок при выдаче данных и по умолчанию область ее действия - весь файл, а команды DISPLAY- одна текущая запись.
Примеры:
DISPLAY REST FOF fio= ’И’
LIST 'фамилия', fio FOR dolg = "инженер"
Удаление данных
ERASE - удаление закрытого файла;
ZAP - удаление всех записей с сохранением структуры;
DELETE [] [WHILE] [FOR] - пометка к удалению или логическое удаление записей;
PACK - физическое удаление, помеченных к удалению записей;
RECALL [] [WHILE] [FOR] - снятие пометок к удалению;
Замечание. помеченные к удалению записи остаются в БД, однако они могут не обрабатываться другими командами, если была выполнена установка
SET DELETE ON.
Выполнение команды PACK приводит к физическому уничтожению записей,
БД при этом сжимается.
Фильтрация данных
SET FILTER ТО [] - установка FOR-условия для всех команд обработки данных (остальные данные недоступны).
SET FILTER TO без параметра - отменяет ограничения.
Пример:
Изменение данных
REPLACE [] [WHILE] [FОR]
WITH[, WITH …] [ADDITIVE]
- множественное изменение полей в соответствии с выражениями.
Пример: REPLACE zarp with zarp* 1.25 for dolg=”инженер”
Последовательный поиск
LOCATE FОR [] [WHILE] - поиск первой
удовлетворяющей FOR-условию записи, При успешном поиске
указатель записей устанавливается на найденную запись.
CONTINUE - продолжение поиска
Пример:
USE KADR
LOCATE FOR stag > 12
DO WHILE ! EOF() && пока не достигнут конец файла данных
? FIO
CONTINUE
ENDDO
Перечисленные команды могут быть выполнены путем выбора из в системном меню или непосредственным набором в Command-окне. Наряду с другими командами и средствами программирования, приводимыми далее, они могут использоваться также в текстах программ.
3. СОЗДАНИЕ КОМАНДНЫХ ФАЙЛОВ
Командные файлы представляют собой исходные тексты программ и имеют тип .prg. Они создаются с помощью встроенного редактора FoxPro , вызываемого командой
MODIFY COMMAND <имя файла >
По команде MODI COMM (допустимое сокращение) без указания имени по умолчанию создается prg-файл без имени. Присвоить имя следует при первом сохранении текста программы. Удобно использовать комбинацию клавиш ^W для сохранения текста программы. Для редактирования ранее созданной программы используют команду
MODI СОММ .
Для запуска программ используется команда
DO
Созданная программа выполняется в режиме интерпретации . При обнаружении ошибки выполнение прерывается и комментируется сообщением.
Пример. Приводится текст программы, предназначенной для отображения всех записей БД, содержащих информацию о сотрудниках, получающих зарплату меньше 200.
SET TALK OFF
SET DATE BRITISH
USE KADR
LOCATE FOR Zarp < 200
DO WHILE !EOF() && пока не достигнут конец файла данных
DISPL
CONTINUE
ENDDO
4.Команда полноэкранного редактирования BROWSE
Команда BROWSE представляет собой целую среду редактирования. Она имеет более 20 различных параметров. Рассмотрим наиболее часто используемые из них.
Формат команды.
BROWSE
[FIELDS<пoля>] [FОR<условие1>]
[FORMAT] [FREEZE]
[КЕУ,[,]] [LAST]
[LEDIT / REDIT] [LOCK]
[LPARTITION] [NOAPPEND]
[NOCLEAR] [NODELETE]
[NOEDIT/NOMODIFY] [NOLGROD / NORGRIG]
[NOLINK] [NOMENU]
[NOOPTIMIZE] [NORMAL]
[NOWAIT] [PARTITION]
[REST] [PREFERENCE]
[TIMEOUT] [ТITLЕ]
[NOOPTIMIZE] [WHEN]
[window] [NOWAIT]
[VALID[F:] [ERROR]
[COLOR SCHEME<вырN5> / COLOR]
Действие некоторых опции команды.
1. Выбор полей
FIELDS - перечень полей (по умолчанию - все).
Ключи:
:R - разрешен только просмотр поля;
:<выр N> - видимый размер поля;
:У=<выр L1> - контроль выхода из поля;
:F - проверка вводимых и существующих данных;
:Е= - выдача собственного сообщения;
:Р= - задание формата отображения данных по шаблону;
:Н= - указание собственного заголовка поля;
:В=,[:Е] - указание границ чисел или дат;
:W=<вырL2> - контроль входа в поле.
В список полей могут включаться так называемые вычисляемые поля, которые являются функциями других полей или переменных.
2. Отбор данных
FОR - устанавливает фильтр для записей; выводятся только
записи, удовлетворяющие ;
REST - предотвращает повторный поиск сначала;
КЕУ[,] - ограничение действия команды диапазоном
ключевого выражения активного индексного файла
З. Разделение окна
LOCK<вырN1> BROWSE - окно делится на две части, где первые <вырN1> полей
дублируются в левой части окна (переход ^Н);
PARTITION<вырN2> - то же, но граница проходит по полю
LEDIT/REDIT - действуют только в разделенном окне и задают
форму представления данных (формуляр);
LPARTITION - курсор устанавливается в левой половине окна;
NOLINK - несинхронное перемещение видимых записей;
NOLGRID/NORGRID - удаляет вертикальные линии разделители полей.
4. Контроль редактирования записей
VALID[ERROR<вырC3>] - анализирует условия для текущей записи;
WHEN - определяет возможность доступа к записи;
NOAPPEND - дополнение по Ctrl-N невозможно;
NOEDIT/NOMODIFY - редактирование невозможно;
NODELETE - редактирование невозможно;
FREEZE - единственное доступное поле.
5. Конфигурирование BROWSE-окна
LAST - сохранение конфигурации;
PREFERENCE FORMAT - использование форматного файла;
NOCLEAR - после выхода окно не удаляется;
NOMENU - подавляет вывод системного меню;
TIMEOUT - время работы с окном;
TITLE<вырC3> - заголовок окна;
WINDOW - позволяет открыть другое окно.
Пример:
Set talk off
set date British
use kadr.dbf
browse ;
title '^t-удаление ^n-добавление ^w-выход';
fields ;
fio :h='ФИО' :20, ;
dolg :h='должность', ;
zarp :h='зарплата ' ,;
birth :h='день рождения' ,;
pol :h='рол' ,;
adress :h='адрес' ,;
godzarp = zarp*12 :h='год.зарплата' :p='#####,##'
pack
close all
5.КОМАНДЫ ВВОДА-ВЫВОДА
Средства неформатированного ввода/вывода
Команда вывода ? / ??
? / ?? [] [АТ][,...]
Команда ? выводит выражения [] …[,] с новой строки,
?? - в текущей строке; AT -номер столбца в строке вывода.
Команда вывода TEXT
TEXT
<текст >
ENDTEXT
Эта команда удобна для вывода больших объемов текста, текст выводится в том виде, как он выглядит в команде.
Команды вывода \ и \\
\ - вывод строки и перевод курсора в начало следующей строки.
\\ - вывод без перевода курсора.
Другие команды ввода-вывода
INPUT ТО
ACCEPT ТО
WAIT [] [ТО]
[TIMEOUT<вырN>] [WINDOW] [CLEAR]
Подробные комментарии и примеры можно найти в соответствующем разделе HELP среды FoxPro.
СРЕДСТВА ФОРМАТНОГО ВВОДА/ВЫВОДА
Команда @ ... SAY ... GET
Формат команды :
@
[SAY<вырl>
[PICTURE<вырCl>] [COLOR SCHEME<вырN1> /
COLOR]]
[GET
[PICTURE<вырC2>]
[DEFAULT<выр2>] [ENABLE / DISABLE]
[MESSAGE<вырC3>] [[OPEN] WINDOW ]
[RANGE [][]]
[SIZE<вырN2>,<вырN3>]
[VALID<вырLl>/<вырN4>[ERROR<вырC4>]]
[WHEN<вырL2>]
[COLOR SCHEME<вырN5>/COLOR<список цветовых пар>]]
Здесь Y,X - пара чисел или переменных, определяющих номер строки и столбца. Команда @ без других параметров устанавливает курсор в заданную позицию и очищает строку Y вправо от X.
Параметры команды
@ Y,X SAY - выдает с заданной позиции любого
типа (поля БД, переменные и пр.); в сложном
выражении элементы соединяются знаком "+";
@ Y,X GET - с заданной позиции выдается переменная или
поле записи с возможностью редактирования
(переменная уже должна существовать);
DEFAULT - действует только при работе с переменными;
задает выражение по умолчанию и предъявляет к
редактированию;
ENABLE/DISABLE - разрешает/запрещает доступ к get-полю;
MESSAGE - для данного поля выдает пояснение в строке
вывода сообщений;
RANGE - контролирует диапазон значений;
SIZE - определяет область, отводимую под
редактирование;
VALID... - логический контроль ввода;
WHEN - вход в редактируемое поле допускается только при
истинности выражения;
[OPEN] WINDOW - используется с memo-полями;
COLOR SCHEME /COLOR- определяет
раскраску полей ввода-вывода.
Возможно соединение фраз SAY и GET в одной команде. При этом GET осуществляет предъявление и возможность редактирования. После команды или группы команд GET должна обязательно следовать команда READ. Эта команда приостанавливает выполнение программы до заполнения всех GET -полей и присваивает соответствующие значения переменным или полям базы данных.
Примеры:
1) В 10 строке, 15 колонке вывести текст 'ЗАРПЛАТА - ', в этой же строке обеспечить поле ввода для переменной и контроль за правильностью ввода (введенное значение должно находится в интервале [100.00,1778.00] ).
X = 100.00
@ 10,15 SAY 'ЗАРПЛАТА - ' GET X RANGE 100.00,1778.00
READ
2) Обеспечить ввод значений зарплат только кратным 10
@ 10,15 SAY 'ЗАРПЛАТА - ' GET X VALID MOD(X/10) = 0
READ
Шаблон PICTURE разрешает ввод только определенных символов данных:
А - ввод только букв;
L - ввод только логических данных T / F;
N - ввод только букв и цифр;
Х - ввод любых символов;
Y - ввод только логических данных Y/N;
9 - ввод только цифр в символьных данных, цифр и знаков "+","-" - в числовых
данных;
# - ввод цифр, пробелов и знаков "+","-";
! - преобразует строчные буквы в прописные;
* - перед числами;
. - задает позицию десятичной точки.
Пример:
@ 10,8 SAY 'ЗАРПЛАТА - ' PICTURE ###.##'
3) Пример создания форматного файла CADR.FMT, для редактирования данных в отношении CADR.DBF. Вид экранной формы:
Д АННЫЕ О СОТРУДНИКЕ
Текст файла CARD.FMT
@ 4, 30 SAY 'ДАННЫЕ О СОТРУДНИКЕ'
@ 5, 9 ТО 11, 70 DOUBLE
@ 5, 41 SAY ‘Сегодня '+DТОС(DАТЕ( )) + ' '
@ 6, 18 SAY 'Фамилия, инициалы: ' GET fio
@ 7, 18 SAY ‘Табельный номер: ' GET tab
@ 7, 40 SAY Должность: ' GET Dolg
@ 10, 12 SAY 'Выход с сохранением изменений - ^End, без - Esc'
Созданный форматный файл может быть использован в программе с помощью команды SET FORMAT ТО .
Фрагмент программы:
SET FORMAT TO CARD.FMT
CHANGE
SET FORMAT TO
6.СРЕДСТВА ПРОГРАММИРОВАНИЯ
Приведенные выше команды относятся к языковым средствам определения данных и манипулирования данными. Наряду с ними язык программирования среды FoxPro обладает присущими языкам высокого уровня возможностями, такими как использование переменных и массивов, организация ветвлений и циклов, создание процедур и другими.
ПЕРЕМЕННЫЕ
В FoxPro разрешается иметь переменные тех же типов, что и поля таблиц БД (кроме мемо). Тип переменной определяется типом последнего присваиваемого ей выражения.
Команда присваивания:
= или
STORE ТО <имена переменных:».
Примеры:
a = b^2 + 2*c – 3*a
STORE 0 ТО a,b,c – присвоение нулевого значения переменным a,b,c
МАССИВЫ ПЕРЕМЕННЫХ
Разрешена работа с одномерными и двумерными массивами переменных.
Описание массивов выполняет команда:
DECLARE / DIMENSION < переменная >([,]) .
Пример:
DIMENSION а(3,4), b(4)
Максимальное количество и максимальная размерность массивов 3600. Значения элементов массива формируются присваиванием им значений выражений либо в результате обмена с БД посредством следующих команд:
Команды управления
Команда IF : Команда DO CASE:
IF <условие> DO CASE
CASE
[ELSE
] CASE
ENDIF
[OTHERWIZE
]
ENDCASE
Кроме этих команд имеется очень полезная функция IIF ( ) (см. приложение)
Примеры:
1. Найти максимальное значение из двух величин.
CLEAR
INPUT “ Введите X” TO X
INPUT “ Введите Y” TO Y
IF X > Y
max = X
ELSE
max = Y
ENDIF
? “ Максимальное значение равно: ”, max
WAIT
CLEAR
INPUT “Введите X” TO X
DO CASE
CASE X < 0
Y = -2*X^2 +5*X
CASE X>=0 AND X < 5
Y = 15 – 2*X^2
CASE X>=5
Y = ABS(12*X – SIN(12))
ENDCASE
? "Y = " ,Y
CLOSE ALL
ОРГАНИЗАЦИЯ ЦИКЛОВ
Цикл с условием
DO WHILE Выход из цикла - EXIT
Возврат к началу цикла - LOOP
ENDDO
Цикл вида DO WHILE .T. ENDDO применяется как операторные скобки.
Цикл с параметром
FOR = ТО [STEP ]
ENDFOR
ЦИКЛ СКАНИРОВАНИЯ
SCAN [] [FOR] [WHILE] ENDSCAN - применяется для перемещения в базе данных и выполнения команд
для каждой записи, отвечающей условиям.
Примеры:
Приводятся фрагменты программ поиска в БД Kadr всех записей
с фамилией на букву 'И'.
1) USE Kadr 2) USE Kadr
LOCATE FOR fio = 'И' SCAN FOR fio= 'И'
DO WHILE ! EOF( ) <команды>
<команды> ENDSCAN
CONTINUE
ENDDO
ПРОЦЕДУРЫ
В FoxPro используются процедуры как внутренние так и внешние, а также процедуры-функции. Внутренняя процедура должна начинаться командой PROCEDURE и заканчиваться командой RETURN. Внешние процедуры могут быть объединены в prg-файл и подключаются командой SET PROCEDURE TO .
Обращение к процедуре :
DO [WITH ] [IN FILE ], где - список фактических параметров. Все входные фактические параметры перед вызовом процедуры должны быть определены.
Формальные параметры описываются в процедуре командой PARAMETERS.
Процедура-функция начинается командой FUNCTION , вырабатывает в результате своей работы единственное значение и может непосредственно использоваться в других командах. Процедура-функция завершается командой
RETURN , где выражение есть результат функции.
Процедуры
В FoxPro используются процедуры как внутренние так и внешние, а также процедуры - функции. Внутренняя процедура должна начинаться командой PROCEDURE и заканчиваться командой RETURN. Внешние процедуры могут быть объединены в prg-файл и подключаются командой SET PROCEDURE TO . Обращение к процедуре :
DO [WITH ] [IN FILE ]
Параметры описываются в процедуре командой PARAMETERS.
Процедура-функция начинается командой FUNCTION, вырабатывает в результате единственное значение и может непосредственно использоваться в других командах. Завершается командой RETURN, где выражение есть результат функции.
Параметры процедур и функций могут изменяться внутри них, но для передачи этих изменений в вызывающую программу требуется использовать команду
Использование процедур рассмотрим далее в разделе организации меню.
ЗАДАНИЕ
1. Приведенную выше Программу 1, представьте в виде ряда процедур:
р21 - просмотр данных по штатному расписанию (отношение STATE)
р22 - поиск данных по штатному расписанию
р31 - просмотр данных по списку сотрудников (отношение SOTR)
р32 - поиск данных по списку сотрудников
р4 - совместный просмотр двух таблиц (состояние)
info - заставка с краткой информацией (дополнительная процедура).
Пример 1.
*********** поиск в таблице Kadr ***********
PROCEDURE p21
SELECT a
CLEAR
с = 0
@ 5, 10 SAY 'Введите табельный номер: ' GET с PICTURE '###'
READ
@ 6, 2 SAY 'Результат поиска '
LOCATE ALL FOR tab = c
DO WHILE ! EOF( )
? 'должность - ', dolg, ' оклад - ', zarp
CONTINUE
ENDDO
WAIT 'Продолжение – Enter ' WINDOW
CLEAR
RETURN
Пример 2.
********* заставка **************
PROCEDURE info
CLEAR
@ 8, 15 ТО 20, 60 DOUBLE && изображение рамки
@ 9, 25 SAY 'ШТАТНОЕ РАСПИСАНИЕ' && вывод текста
@ 12, 20 SAY 'Модель информационной системы'
WAIT 'Продолжение – Enter ' WINDOW && пауза
CLEAR
RETURN
7.ОРГАНИЗАЦИЯ МЕНЮ
Меню являются основной формой поддержания диалога в информационных системах. Среда FoxPro обладает большим набором средств организации световых и клавишных меню. Выделим две основных технологии построения меню, которые порождают «меню - программы» и «меню - объекты».
Меню-программа является частью программы, где оно создается, используется и удаляется. При этом вырабатываются числовые переменные, фиксирующие выбор из меню, которые анализируются командами DO CASE, требуют использования циклов DO WHILE и т.д. Рассмотрим два типа таких меню. Будем использовать приведенную выше программу, которую предварительно разобьем на ряд процедур.
LIGHTBAR - меню строится с использованием команд:
@ Y, X PROMPT [MESSAGE] - выдает в