Смекни!
smekni.com

Разработка отчетов выполняется в окне 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.