Разработка отчетов выполняется в окне Reports УЦ. Форма отчетов создается на экране. В нее можно включать следующие элементы: поля из текущего файла БД или выборки, вычисляемые поля, которые создаются специально для отчетов, текстовый материал, рамки и линии. Текст длинных символьных полей можно размещать и разворачивать в колонках заданной ширины.
В число стандартных частей отчета входят: заголовок страницы, введение (заголовок) отчета, собственно отчет (тело отчета), итоги (заключение) отчета и подножие страницы.
Описанный УЦ позволяет выполнять многие операции без знания командного языка dBASE IV с помощью режима управляемого меню, однако основной режим работы СУБД основан на использовании командного языка.
5. Командный язык СУБД
Операции СУБД реализованы в виде команд, которые, как правило, можно использовать независимо, вводя их с помощью клавиатуры - это, так называемый, командный режим СУБД. Из этих команд можно составлять прикладные программы, создавая таким образом системы «под ключ», ориентированные на неподготовленного пользователя. Это, так называемый, программный (пакетный) режим работы в СУБД.
В состав элементов командного языка входят команды, SET-команды, функции, переменные и массивы.
Команда записывается в виде строки слов, в которую входит глагол - основное слово, определяющее содержание операции, выполняемой командой, список выражений и ключевые слова с аргументами. Структура командной строки называется синтаксисом команды. Многие команды обработки файлов строятся по следующей форме:
<глагол> [<список выражений>] [<границы>] [FOR<ycnoBMe>] [ИН1ЬЕ<условие>] [ТО FILE <имя файла> /ТО PRINTER
/ТО ARRAY <имя массива>
/ТО <переменные> [ALL [LIKE/EXCEPT <шаблон>]] [IN <алиас>]
Квадратные скобки означают использование заключенных в них элементов синтаксиса по выбору. В угловых скобках, следующих после ключевого слова, записываются его аргументы. Косая черта, наклоненная влево (/), обозначает, что может быть записано только одно из разделенных этим знаком ключевых слов. Угловые, квадратные скобки и косая черта в записи команды для ее выполнения не указываются и служат только для пояснения синтаксиса.
<Список выражений> представляет собой комбинацию имен полей файлов БД, переменных, элементов массивов, констант, функций, системных переменных и операторов. Все данные в выражении должны быть одного типа. Если в выражении требуется использовать данные разных типов, их надо преобразовать в один тип специальными функциями. Выражения в списке могут быть различного типа.
Операторы в выражениях обозначают операции с данными и обозначаются специальными символами. В dBASE используются четыре типа операторов: математические, операторы отношений, логические и строковые.
Границы в приведенном выше синтаксисе команды указывают те записи файла БД, которые будут доступны при его обработке. В качестве ключевых слов границ могут быть: RECORD <n> - доступна только одна запись с заданным номером; NEXT <n> - доступны все записи, начиная с номера n; ALL - доступны все записи файла БД; REST - доступны записи, начиная с текущей до конца файла.
Опции FOR и WHILE определяют условия отбора записей для обработки. Эти опции имеют приоритет перед границами при определении доступа к записям. Опция FOR определяет доступ к обработке, начиная с первой записи и до конца файла БД, a WHILE - начиная с текущей записи и до тех пор, пока условие имеет логическое значение «Истина» (True или .Т.).
Опция ТО управляет выводом информации, обработанной командой. В ряде команд выходной поток можно направить в файл на диске, на принтер, в массив (или переменную).
Опция ALL LIKE позволяет отобрать или, наоборот, исключить среди имен файлов, полей файлов БД и переменных те, которые соответствуют заданному шаблону.
Особой разновидностью команд являются SET-команды, устанавливающие параметры среды, в которой выполняются обычные команды. Применяются две формы этих команд:
SET <параметр> ТО <выражение> и
SET <параметр> ON/OFF
Первая форма устанавливает значение параметра, а вторая включает (ON) или выключает (OFF) его действие, т.е. устанавливает состояние. Эти команды можно выполнять в программах, в командном режиме, можно также занести их в специальный файл с именем Config.db, определяющий параметры среды на весь сеанс работы с пакетом dBASE.
Создание файла БД осуществляется командой CREATE <имя файла>. Для модификации созданной структуры файла используется команда MODIFY STRUCTURE.
Для открытия файла БД используется команда
USE [<имя файла БД>/?] [IN <номер рабочей области>]
[INDEX <список .ndx и .mdx файлов>]
[ORDER [TAG] <имя .ndx файла>/<указатель .mdx файла> [OF <имя .mdx файла>]] [АЫАЗ<алиас>] [EXCLUSIVE] [NOUPDATE] ,
которая открывает существующий файл БД и связанные с ним файлы .mdx и .ndx в текущей рабочей области.
Для создания индексных файлов типа .ndx и .mdx используется команда
INDEX ON <индексное выражение> ТО <имя .ndx файла>/
TAG <имя указателя индекса .mdx файла> [OF <имя .mdx файла>] [UNIQUE] [DESCENDING]
Для открытия индексных файлов используется команда
SET INDEX TO [/?<список имен файлов> [ORDER [TAG] <имя .ndx файла>/ <имя указателя индекса> [OF <имя .mdx файла>]]]
Помимо широкого набора команд типичный язык СУБД типа dBASE персонального компьютера включает несколько десятков или даже сотен встроенных функций. Функции могут использоваться на месте переменных и констант в командах. После указания имени функции обязательно идут круглые скобки, даже если функция не требует никаких параметров.
Некоторые функции СУБД типа dBASE
Функция | Назначение |
RECNO() | Возвращает номер текущей записи открытого файла БД |
BOF() EOF() | Возвращают логический признак начала и конца открытого файла БД |
RECCOUNT() | Возвращает число, записей в открытом файле БД |
FOUND() | Возвращает логический признак успешности поиска в БД командой SEEK |
ЦКЕ(<образец>, <выр.С>) | Сравнивает строку <образец> с символьным выражением <выр.С> |
UPPER (<выр.С>) | Преобразует символьную строку в верхний регистр |
INKEY() | Возвращает код нажатой клавиши |
ERROR() | Возвращает номер ошибки |
CHR(<Bbip.N>) | Возвращает букву по коду |
DATE() | Возвращает текущую дату |
ROW() COL() | Возвращает номер текущей строки и столбца экрана |
В языке dBASE IV используются также функции, которые (наряду с командами) позволяют обрабатывать данные (в том числе, выполнять вычисления), а также определять состояния, например, находится ли указатель записей в конце файла: 7EOF0- После имени функции обычно стоят круглые скобки, в которых могут помещаться аргументы. Функции нельзя использовать самостоятельно, а только вместе с какой-либо командой.
Кроме системных функций в dBASE IV можно использовать функции, созданные самим пользователем.
В языке dBASE используются переменные, тип которых автоматически определяется первым в данной программе присвоением им значения. Возможные типы: символьный, логический, числовой, дата.
Кроме простых переменных, в программах и процедурах можно использовать одно- или двумерные массивы. Каждый элемент массива представляет собой обычную переменную. Представление переменных в виде массива позволяет значительно расширить диапазон применения переменных, а также, в ряде случаев, облегчить реализацию функций, присущих переменным. Перед использованием массивов сначала их надо объявить командой
DECLARE <имя массива 1>
[{<количество строк>,
{,<имя массива 2>
[{<количество строк>,
{<количество колонок>}] {<количество колонок>}]
В синтаксисе этой команды опции указываются фигурными скобками вместо обычно принятых квадратных. При записи команды в программе в квадратные скобки заключаются параметры (размерность) массива - число строк и столбцов. Если указано одно число, то массив одномерный. Формально двумерный массив с одним из параметров, равным единице, фактически является одномерным: DECLARE [12,1] или DECLARE [1,25].
Примеры.
DECLARE Mas [8,4] DECLARE Masi [10] STORE {15/10/89} TO Datl
[4,4] •]
&& Двумерный массив && Одномерный массив
Для ввода данных в переменную или элементы массива в программе используется команда
STORE <выражение> ТО <список переменных>/<список элементов массива> или альтернативная форма .
<переменная>/<элемент массива> = <выражение>.
6. Ввод данных в базу и редактирование
После того как создана структура файла БД, можно вводить данные. Существуют две стандартные экранные формы ввода (и вывода) информации в файлы БД: BROWSE и EDIT. Первая форма вызывается командой
BROWSE [NOINIT] [NOFOLLOW] fNOAPPEND] [NOMENU]
[NOEDIT] [NODELETE] [NOCLEAR] [COMPRESS] [FORMAT] [LOCK <Bbip.N>] [WIDTH <Bbip.N>] [FREEZE <имя поля>] [WINDOW <имя окна>] [FIELDS <имя поля 1> [/R] [/<ширина колонки>] /<вычисл. имя поля 1> = <выражение 1> [ ,<имя поля 2> [/R] [/<ширина колонки>] /<вычисл. имя поля 2> = <выражение 2>]...]
В команде имеется ряд опций, позволяющих устанавливать различные режимы ее использования. В число этих опций входит группа опций, позволяющих назначить режимы работы с полями, и группа опций по размещению полей на экране. В состав первой группы входят следующие опции: NOEDIT , позволяющая установить режим только чтения для всех полей, NOAPPEND, не разрешающая добавлять новые записи, и NODELETE, не разрешающая помечать записи для удаления. Опция FREEZE назначает для обновления только одно указанное поле. Другие поля высвечиваются, но остаются недоступными для редактирования. Если для указанного в опции FREEZE поля командой PROTECT открыто только чтение, то обновление не разрешается. Опция FREEZE без имени поля отменяет ранее назначенную установку.
Поля высвечиваются в том порядке, который определен структурой файла БД или указан в команде опцией FIELDS, входящей в состав второй группы. Эта опция позволяет выбрать поле и определить порядок его расположения в таблице Browse.