Презентация на тему: 9. Разработка программ ввода данных 9.1. Постановка задачи Задача –

9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача – 9. Разработка программ ввода данных 9.1. Постановка задачи Задача –
1/33
Средняя оценка: 4.2/5 (всего оценок: 9)
Скачать (137 Кб)
Код скопирован в буфер обмена
1

Первый слайд презентации

9. Разработка программ ввода данных 9.1. Постановка задачи Задача – обеспечениие операций, связанных с элементом главного меню Ввод данных. Файлы базы данных “Uroven” Данные могут вводится в три разнотипных файла Post. dbf, Spis _ KG 1. dbf, Priv. dbf и в однотипную группу файлов KG 1< PorN >. dbf Таблица 9.1. Атрибуты отношения post KodPost Post Stan UGMS Reka с (6) С(20) С(20) С(20) С(20) Таблица 9.2. Атрибуты отношения spis _ kg 1 KodPost God Mesjc PorN C(6) N(4) N (2) N (5) 1

2

Слайд 2

Таблица 9.3. Атрибуты отношения priv NSv Priv N (2) N (4) В каждом из группы файлов KG 1< PorN >. dbf хранится таблица с данными наблюдений за уровнями воды за 1 месяц по одному водомерному посту. Таблица 9.4. Атрибуты отношения KG 1< PorN > Data Vremj NSv OTSCH N(2) N(2) N (2) N (2) 2

3

Слайд 3

Возможные ситуации при вводе данных : 1. Данные вводятся в новый файл. Файла и его структуры еще нет в БД. Задача : создать файл с указанной структурой 2. Данные вводятся в новый файл. Файла еще нет в БД. Структура нового файла уже имеется в БД. Задача: скопировать структуру имеющегося файла в новый файл 3. Имеющийся в памяти файл с заданной структурой должен быть пополнен новыми данными. В первой ситуации необходимо в начале создать структуру нового файла, а затем уже перейти к вводу данных. Во второй ситуации необходимо в создаваемый файл скопировать структуру уже имеющегося файла и затем начать его заполнение имеющимися данными. В третьей ситуации необходимо открыть (вызвать) дополняемый файл и затем ввести в него новые данные и снова записать файл. Способы создания таблиц и ввода данных: - в тексте программы программными способами, - с помощью мастера, - с помощью конструктора с помощью командного окна. Для обеспечения ввода данных в каждый из перечисленных файлов (табл.9.1 – 9.3), необходимо в соответствии с меню “Ввод данных”, создать специальные подпрограммы, обращения к которым осуществляется с помощью соответствующих элементов этого меню. 3

4

Слайд 4

9.2.Создание структуры и открытие файлов Команды создания и изменения структуры файлов Структура файлов – перечень атрибутов в порядке их следования в исходном отношении и их описание (тип и размерность). 1. Команда, обеспечивающая создание структуры записей файла типа. dbf, CREATE < имя файла >. При выполнении этой команды на экране представляется окно-форма Table Designer для ввода сведений о структуре создаваемого файла БД (рис. 9.1.), где для каждого вводимого поля указывается: имя ( Name ), тип ( Type ) и длина ( Width ). Для числового поля указывается также число знаков после запятой ( Dec ). 2. Команда копирования структуры открытого файла в новый файл COPY STRUCTURE TO < имя нового файла > [ FIELDS < список полей >]. По этой команде структура открытого (активного) файла, полностью или частично в виде совокупности, указанных в списке полей, копируется в новый файл. 3. Команда изменения структуры открытого файла MODIFY STRUCTURE < имя файла >. По этой команде на экране появится описанное выше окно-форма, представ-ляющее структуру открытого файла. В этом окне можно менять и вид и набор полей. 4. Команды вывода информации о структуре открытого файла на принтер или терминал или в конкретный файл DISPLAY STRUCTURE [ TO PRINT/ TO FILE < имя файла > ], LIST STRUCTURE [TO PRINT / TO FILE < имя файла > ]. 4

5

Слайд 5

Команды манипулирования файлами 1. Команда открытия файла. По этой команде происходит активация (открытие) или деактивация (закрытие) файла, что делает его доступным для ввода, просмотра и изменения. USE [ <имя файла> /? ] [ IN < область>] [ ALIAS < псевдоним > ] [ INDEX < список индексных файлов > ] [ NOUPDATE ] ; Если команда вводится без указания имени файла, то происходит закрытие актив-ного файла. Здесь IN < область> - обеспечивает открытие файла не в текущей, а в указанной рабочей области, ALIAS < псевдоним > - устанавливает для файла, кроме собственного, еще и другое имя. INDEX < список индексных файлов > -указывает перечень открываемых индексных файлов ; NOUPDATE – запрещает любые изменения в открытом файле данных. 2. Команда закрытия всех открытых файлов. dbf CLOSE DATABASES ; 3. Команда закрытия всех файлов CLOSE ALL ; 4. Команда удаления файла ERASE < имя файла>; 5. Команда вывода на терминал списка файлов, если нет уточнений, то файлов. dbf. DIR [ < дисковод >] [< путь >] [< маска >]. 5

6

Слайд 6

9. 3. Создание файла данных Создание файла с новой структурой 1. Ввести команду CREATE (см. выше). На экране появиться окно CREATE. 2. Набрать на клавиатуре имя создаваемого файла. На экран выводится окно-форма Table Designer ). Курсор (засветка) находится в первой колонке первой строки формы – Name. 3. Указать имя первого поля файла. Нажать клавишу ‘ Ввод ‘. Курсор перейдет во вторую колонку первой строки – Type. 4. Определить один из пяти возможных типов полей. Выбор производится с помощью клавиши ‘ Пробел ’. При появлении правильного названия типа поля, нажимается клавиша ‘ Ввод ’. Курсор перейдет в третью колонку – Width. 5. Ввести необходимую длину поля(число символов). Нажать клавишу ‘ Ввод ‘. Курсор перейдет в четвертую колонку первой строки – Decimal. 6. При необходимости ввести число цифр после десятичной точки. В результате выполнения пунктов 3 – 5 будет создано структурное описание первого поля вводимой информации Нажать клавишу ‘ Ввод ‘. Курсор перейдет на первое поле второй строки формы структуры. Здесь, точно также как и в первой строке, необходимо ввести сведения о втором поле создаваемого файла и т.д. 7. По окончании ввода данных о всех полях файла необходимо записать новый файл на диск. Для этого перевести курсор в позицию < OK > или < Cancel >. На экране появляется запись: Будете ли Вы вводить данные? ( Y / N ). При ответе Y на экране появляется соответствующая заданной структуре форма для занесения данных в созданный файл, в противном случае форма структуры на экране закрывается и записывается в файл. 6

7

Слайд 7

Пример : составить программу создания файла данных Post. dbf и вывода на экран данных о его структуре. Атрибуты файла представлены в табл. 9.1. В соответствии с этой таблицей характеристика полей файла. выглядит следующим образом Имена полей: KodPost – код водомерного поста, Post – название поста, Stan – название станции, к которой относится пост, Ugms – название УГМС к которой относится станция, Reka – название реки на которой стоит водомерный пост; Вид этих полей: C (6), C (20), C (20), C (20), C (20); После подготовки ответов на эти вопросы вводится последовательность команд CREATE C:\Stan.dbf USE C:\Stan.dbf LIST STRUCTURE TO PRINT Здесь первая команда (см. выше) обеспечивает создание файла. При этом на экран монитора выводится окно-форма Table Designer. В эту форму последовательно для каждого поля вводится имя, тип, ширина и, при необходимости, число знаков после запятой. В данном случае все поля являются символьными, поэтому число знаков после запятой не указывается. Вторая команда - открывает созданный файл. Третья команда выводит на принтер информацию о структуре созданного файла. 7

8

Слайд 8

Создание файла со структурой, имеющейся в проекте Часть файлов создается уже при работе (эксплуатации) БД. Как правило, эти файлы однотипны и, следовательно, имеют такую же структуру, как уже имеющиеся в БД файлы данных. При создании таких файлов можно воспользоваться командой COPY STRUCTURE TO (см. выше). Это в значительной степени упрощает работу по созданию нового файла. Например, в БД уже имеются данные об уровнях воды в реке по водомерной книжке за прошлый период. Отношение с этими данными находится в файле KG 11. dbf. На станцию пришла новая водомерная книжка и ее табличные данные необходимо ввести в БД. Для размещения этих данных создается файл KG 12. dbf. USE C :\ KG 11. dbf COPY STRUCTURE TO C:\KG12.dbf USE C:\KG12.dbf LIST STRUCTURE TO PRINT Здесь первая команда (см. выше) открывает имеющийся в БД файл KG 11. dbf, вторая команда обеспечивает создание файла KG 12. dbf путем копирования в него структуры файла KG 11. dbf, третья команда - открывает созданный файл и, наконец, четвертая команда выводит на принт информацию о структуре созданного файла. Последние две команды не являются в данном случае необходимыми и служат лишь для просмотра результата выполненных выше операций. 8

9

Слайд 9

9.4. Ввод данных в имеющийся или вновь созданный файлфайл Команды ввода, заполнения и просмотра файла 1. Ввод новых записей с клавиатуры APPEND [ BLANK ] При наличии элемента BLANK в конце открытого файла добавляется пустая запись. Она необходима, когда используется команда REPLICATE, INSERT. (см. ниже) Указанные команды не могут вводить данные в записи, которые еще не существуют. 2. Добавление записи из другого файла в открытый файл (команда дана не полно-стью) APPEND FROM < имя файла -источника > [ FIELDS < список полей > ] [ FOR <у словие >] [ WHILE < условие >] По этой команде к открытому файлу добавляются записи из файла-источника. При этом с помощью условия FOR или WHILE может быть задан уточнитель области действия команды. Например, если указано: FOR srok = 8, то в открытый файл будут добавлены из файла-источника данные наблюдений только в 8 часов 3. Добавление чистой записи в текущей позиции файла, на которой стоит указатель, INSERT [ BLANK ] [ BEFORE ] Эта команда, если задано BEFORE, добавляет пустую запись перед той записью, на которой установлен указатель. Перед выполнением команды INSERT BEFORE необходимо добавить пустую запись в конце файла командой APPEND. Если в команде не указано BLANK, то добавляемая запись выводится на экран для ввода информации. 9

10

Слайд 10

4. Чтение содержимого файла LIST [ OFF ] [ FIELDS <список полей >] [< границы>] [WHILE < условие >] [ FOR < условие >] [ TO PRINT ] Команда LIST, без каких либо дополнений, выводит на терминал или принт все поля, все записи и номера записей. Дополнение OFF снимает номера записей при выводе данных. Команда LIST [<список полей >] выводит на терминал только указанные поля всех записей. Команда LIST [ FOR <условие>] выводит на терминал записи, удовлетворяющие заданному условию. Команда LIST [ <границы >] - выводит на терминал указанные записи. В качестве указателей этих записей могут использоваться следующие границы действия команд All, Next N, Record N (см. п. 4.6). 10

11

Слайд 11

Ввод данных в созданный файл 1. Информация вводится во вновь создаваемый файл. Файлы такой структуры уже есть в БД. USE Kg1.dbf COPY STRUCTURE TO < имя нового файла > USE < имя нового файла> APPEND LIST Первая команда открывает существующий в БД файл KG 1. dbf. Вторая команда копирует структуру открытого файла в новый файл. Третья команда открывает вновь созданный файл. Четвертая команда выводит на экран форму для занесения данных в новый открытый файл. Пятая команда - распечатка файла на экране. 2. Пополнение существующего файла. Программа состоит из последних трех команд предыдущего примера. USE < имя существующего файла> APPEND LIST 11

12

Слайд 12

Функция макроподстановки & и организация нумерации файлов 1. Функция & служит для подстановки в команду или в слово содержимого символьной переменной. Например S = ‘ KG 11. dbf ’ USE & S Вторая команда здесь будет восприниматься в виде USE KG 11. dbf. Пусть переменной i последовательно задаются значения 1, 2, 3,... Тогда, изменения названия файла при разных i задается командами: I = 1 S=’ KG1&i’+ ‘.dbf’ USE &S Действительно, при i = 1 S =’ KG 11. dbf ’ и по второй команде будет открыт файл KG 11. dbf. При I = 2 будет открыт файл KG 12. dbf и т.д. 12

13

Слайд 13

13 Для организации нумерации файлов также используются следующие функции: LTRIM (< выр C >) - удаление в символьном выражении С всех пробелов, стоящих слева; RTRIM (< вырС >) - удаление в символьном выражении С всех пробелов, стоящих справа; RECNO (< область >) - указывает номер текущей записи в открытом файле указанной рабочей области; STR (< выр N >,[<длина>],[<десятичные знаки>]) – преобразует числовое выражение N в символьную строку заданной длины с указанным числом десятичных знаков.. Если длина не указана, она берется равной 10. Если не указано количество десятичных знаков число округляется до целого.

14

Слайд 14

9.5. Ввод данных в интерактивном режиме Создание файлов данных Два имени таблиц: Первое - внешнее - имя файла, в котором находится данная таблица. Оно вводится при создании таблицы в диалоговом окне Create. Второе - внутреннее. Оно вводится в поле Name (Имя) вкладки Table окна конструктора, хранится в базе данных и может содержать до 128 знаков. При работе в окне конструктора БД внутреннее имя таблицы приводится в заголовке окна таблицы. Если внутреннее имя таблицы не задано, то вместо него в заголовке окна таблицы приводится внешнее имя. Для создания таблицы в интерактивном режиме могут использоваться два метода: первый - с помощью мастера таблиц ( Table Wizard ), второй – с помощью конструктора таблиц ( Table Designer ). Создание внутренней таблицы с помощью конструктора таблиц 1. Открыть проект, в который вводится новая таблица. Для этого выполняется следующая последовательность операций: - В подменю File главного меню выполнить команду Open (открыть). На экране появится окно Open. - В окне Open выбрать проект, в котором необходимо поместить таблицу. В данном случае пусть это будет ранее созданный проект Uroven. На экране появится окно Project Manager – Uroven (рис. ). 14

15

Слайд 15

2. Открыть базу данных проекта. Для этого выполняется следующая последовательность действий: - В окне Project Manager – Uroven нажать на вкладку Data, выбрать операцию Databases и нажать кнопку New. На экране появится окно Create - В окне Create выбрать имя БД и нажать кнопку ОК. На экране появится окно Database Designer c расположенной в нем панелью инструментов Database * 3. В открытой базе создать новую таблицу. Для этого выполняется следующая последовательность действий: - В панели инструментов Database выбрать команду New Table. На экране появится окно New Table с двумя кнопками. - Нажать кнопку New Table. На экране появится окно Create. - В окне Create задать название файла и нажать кнопку ОК. В данном случае название файла Post. dbf. На экране появится окно конструктора таблиц ( Table Designer ). - Построчно ввести характеристики полей таблицы (Название полей, тип, число знаков и т.д.). Подробное изложение этих действий дано ранее.). В заключение нажать кнопку ОК. В окне конструктора базы данных появляется размещенная в ней таблица. Аналогично вводится вторая таблица Spis _ KG 1. Для этого в окне Database Конструктора таблиц следует нажать кнопку NeW Table. На экране появляется окно NeW Table. В окне следует нажать кнопку NeW Table. В появившемся окне Create задать название второй таблицы Spis _ KG 1. Нажать кнопку ОК. Появляется конструктор таблиц в котором в прежнем порядке вводятся характеристики полей таблицы. После нажатия кнопки ОК на экране появляется снова окно конструктора базы данных с появившейся в нем новой таблицей (рис. ). Аналогично строим третью и четвертую таблицу. - 15

16

Слайд 16

9.6. Блок ввода данных проекта “ Уровень” Постановка задачи При вводе данных возможны следующие ситуации. 1. При гидрометстанции открывается новый пост. Необходимо ввести данные по этому посту в отношение Post, находящееся в файле Post. dbf. 2. С уже существующего и зарегистрированного в БД водомерного поста поступает водомерная книжка KG 1. Необходимо: - зарегистрировать книжку в отношении Spis _ KG 1, находящемуся в файле Spis _ KG 1. dbf, - записать данные наблюдений в отношение KG 1< PorN.>, находящееся в файле KG 1< PorN.>. dbf. Здесь PorN – порядковый номер поступления книжки на гидрометеорологическую станцию. Выход программы на те или иные ветви ввода данных уже предусмотрен ранее в меню ввода. Работа по каждой ветви ввода данных обеспечивается соответствующими подпрограммами: - ввода данных о новом водомерном посте в файл Post. dbf - NovPost. prg ; - ввода данных о новой водомерной книжке в файл Spis _ KG 1. dbf – NovDoc. prg ; - ввода таблиц из водомерной книжки в файл KG 1< PorN > - TablNab. prg. - ввода данных о новых отметках свай в файл Priv. dbf – OtmSv. prg. Выход на каждую из подпрограмм осуществляется из соответствующего элемента всплывающего вертикального подменю Ввод данных (рис.5.2). 16

17

Слайд 17

17 Для первого пункта главного меню в рассматриваемом примере подменю имеет вид, представленный на рис.3.2. Ввод данных 1. Новый пост 2. Новый документ 3. Таблица наблюдений 4. Приводки свай 5. Выход в главное меню Рис.3.2. Представление на экране подменю ввода данных

18

Слайд 18

Подпрограмма ввода данных о новом водомерном посте ( NovPost. prg ) Содержание: открыть файл Post. dbf и добавить в него сведения, касающиеся нового водомерного поста. USE Post. dbf APPEND По первой команде открывается файл Post. dbf. По второй команде отношение Post. dbf выводится на экран для редактирования и с клавиатуры вводится запись сведений, касающихся нового водомерного поста. Подпрограмма ввода данных о новой водомерной книжке ( NovDoc. prg ) Содержание: открыть файл Spis _ Kg 1. dbf и добавить в него запись сведений о новой водомерной книжке USE Spis_kg1.dbf APPEND PorN = RECNO() по первой команде открывается файл Spis _ Kg 1. dbf. По второй команде на экран выводится отношение Spis _ Kg 1 и с клавиатуры вводится запись сведений о новой водомерной книжке. По третьей команде в переменную PorN записывается номер записи в файле, который равен и порядковому номеру водомерной книжки. 18

19

Слайд 19

Подпрограмма ввода данных наблюдений ( TablNab. prg ) Содержание: создать файл KG 1< PorN.>. dbf со структурой, аналогичной структуре файлов данных, уже имеющихся в базе данных, например файл KG 11. dbf ; присвоить файлу имя KG 1< PorN.>. dbf, открыть его и ввести в него данные наблюдений. Используются функции LTRIM (< выр C >) - удаление в символьном выражении С всех пробелов, стоящих слева; STR (< выр N >,[<длина>],[<десятичные знаки>]) – преобразует числовое выражение N в символьную строку заданной длины с указанным числом десятичных знаков.. Если длина не указана, она берется равной 10. Если не указано количество десятичных знаков число округляется до целого. USE kg11.dbf S = LTRIM ( STR (PorN,5,0)) + ‘.dbf’ S = ‘kg1’+ S COPY STRUCTURE TO &S USE & S APPEND LIST По первой команде открывается файл kg 11. dbf, с которого будет копироваться структура во вновь открываемый файл. По второй и третьей команде в переменную S записывается символьная переменная, соответствующая порядковому номеру водомерной книжки. По четвертой команде создается файл под найденным номером. По пятой команде созданный файл открывается. По шестой команде производится ввод данных в созданный файл. По седьмой команде данные выводятся на экран. 19

20

Слайд 20

10. Редактирование базы данных После создания файла данных (файл. dbf ) и ввода в него первичной информации нередко возникает необходимость в дополнении, изменении и исправлении информации. С этой целью используются команды редактирования данных. 10.1.Команды вывода на экран, удаления и корректировки записей Команда включения режима редактирования полей в отдельных записях: EDIT [< диапазон > ] [ FIELDS < список полей >] [ WHILE < условие >] [ FOR < условие >]. Если команда дается без параметров, то для редактирования представляется только текущая запись. <Диапазон> задается указателем ALL или NEXT n. После выполнения команды EDIT на экране появляется меню редактирования - подсказка пользователю. Команда полноэкранного просмотра и корректировки записей: BROWSE [FIELDS < список полей >] [LOCK < выр N >] [WIDTH< выр N >] [FREEZE < поле >] [NOFOLLOW] [NOAPPEND] [ NOMENU ] По этой команде для редактирования записей представляется весь экран ( 17 строк). Добавления: FIELDS <список полей> - задает названия выводимых на экран полей; LOCK <выр N > - определяет число полей слева, которые все время остаются на экране; WIDTH < выр N > - определяет длину для редактирования текстовых полей; FREEZE < поле> - выводит на редактирования только одно поле; 20

21

Слайд 21

NOFOLLOW - выводит текущую индексированную запись, вместо записи с измененным ключевым полем; NOAPPEND - запрещает добавление новых записей в файл БД; NOMENU - отключает необязательное меню. Выполнение операции удаление записей производится в два этапа: 1. Маркировка записи, предназначенной для удаления, 2. Упаковка файла, в процессе которого маркированные записи удаляются. Маркировка и размаркировка осуществляется выполнением следующих команд: DELETE [< диапазон >] [ WHILE < условие >] [ FOR < условие >], RECALL [< диапазон >] [ WHILE < условие >] [ FOR < условие >]. Когда запись помечается для удаления, после нее появляется символ *. Упаковка файла осуществляется командой: PACK 21

22

Слайд 22

5.5. Формирование отчетов (вывод данных) 5.5.1. Постановка задачи В целях экономии памяти и исключения дублирования данные водомерных наблюдений, которые мы рассматриваем в качестве примера формирования БД, были разнесены по нескольким файлам ( см. гл.3): Пусть теперь по хранящимся в отдельных файлах данным необходимо получить и распечатать или переписать на другой носитель данные в соответствии с формой водомерной книжки. Пока не будем говорить об оформлении титульных листов и последних страниц водомерных книжек, а рассмотрим формирование ее содержательной относитель-но уровней воды части, которая должна, например, выглядеть так: Форма 1 Номер Средний Дата Время сваи Отсчет Приводка Уровень суточный уровень 1 2 3 4 5 6 7 22

23

Слайд 23

Естественно, что при выводе на экран или на печать, названия атрибутов отношения должны быть заменены соответствующими названиями колонок таблицы на русском языке. Отметим также, что данные колонок 1 - 5 хранятся в БД. Данные остальных колонок должны быть рассчитаны. При составлении отчетной формы необходимо решить следующие задачи: Создать форму выходной таблицы. Заполнить форму имеющимися данными. Рассчитать недостающие данные. Вывести полученную отчетную форму на экран или на принтер. Для решения первой задачи необходимо, прежде всего, задать форму таблицы, которая затем будет заполняться необходимыми данными. Такая форма обычно является типовой, то есть используется во многих запросах, и было бы неэкономично создавать ее при каждом запросе заново. По-видимому, было бы гораздо удобнее, как и ранее при вводе данных, (см. раздел 4.3.2.), создать в базе данных готовый шаблон (бланк) и затем использовать его каждый раз при создании отчета заданной формы. Этот шаблон создается в соответствии с рекомендациями, приведенными ранее (см. раздел 5.3.2.), и затем храниться в отдельном файле. Для нашей отчетной формы назовем 23

24

Слайд 24

этот файл Tabl 1. dbf. При составлении отчета копируем структуру этого файла в рабочий файл Otchet. dbf, который затем и будем заполнять данными, хранящимися в БД. Для копирования используем две рассмотренные ранее команды USE Tabl1.dbf COPY STRUCTURE TO Otchet.dbf Сразу отметим, что возможен другой более экономичный подход к созданию отчетной формы (см. ниже), но в данном случае в учебных целях для включения максимально возможного числа команд и функций, рассматривается именно этот вариант построения. 5.5.2. Команды построения отчетных форм 1.Команда выбора рабочей области для обработки файла Средствами СУБД одновременно можно обрабатывать до 10 файлов данных. Каждый файл обрабатывается в отдельной рабочей области. Их тоже 10. Один файл открывается в одной рабочей области. Выбор (смена) рабочей области осуществляется командой SELECT. SELECT < рабочая область/ псевдоним> Рабочие области можно указать цифрами: 1, 2,..., 10; буквами: A, B,..., J ; именем открытого файла данных, либо присвоением рабочей области псевдонима: ‘ alias - имя’. Присвоение рабочей области alias - имени производится при открытии файла командой USE SELECT 1 24

25

Слайд 25

USE kg1< PorN> ALIAS p1 После этого рабочую область 1 можно вызывать обращением SELECT p 1 Первый файл, открываемый командой USE, будет открыт в рабочей области 1, если предварительно не выбрана другая рабочая область. В каждый данный момент активной может быть одна рабочая область - последняя выбранная командой SELECT. При переходе из одной области в другую все файлы в них остаются открытыми. Указатели текущей записи в разных областях независимы и при переходе от одной области к другой сохраняют свои значения. Для доступа к полям записей не активной рабочей области перед именем поля следует указывать alias - имя области и пару знаков “ - >”. Например, для доступа к полю NSv в области p 1 необходимо записать следующее сочетание символов и знаков: p 1 -> NSv 2. Команда объединения записей двух открытых файлов в новом файле В разделе 2.3 настоящего пособия были рассмотрены операции над отношениями. Одна из них, операция соединения отношений, осуществляется с помощью команды: JOIN WITH < псевдоним > TO < имя файла > FOR < условие > [ FIELDS < список полей>] Команда создает новый файл данных, имя которого указано в команде, соединяющий определенные записи и поля двух открытых файлов данных. При объедине 25

26

Слайд 26

объединении активного файла данных с файлом из другой области, этот второй файл задается псевдонимом. Пример SELECT 1 USE Priv.dbf alias p1 SELECT 2 USE Otchet.dbf JOIN WITH p1 TO Otchet1.dbf FOR NSv = p1->NSv FIELDS Data, Vremj, NSv, Oschet, p1-> Priv, Urov, SrSutUr USE Otchet 1 LIST В этом примере по первой команде выбирается первая рабочая область, по второй команде в ней открывается файл с приводками свай и ему присваивается псевдоним P 1. По третьей и четвертой команде открывается вторая рабочая область и в ней открывается файл с данными наблюдений. Этот файл становиться активным. По пятой команде происходит объединение полей названных файлов. Результаты объединения записываются в файл Otchet 1. Затем этот файл открывается и последняя команда выводит значения полученного файла на экран. 3. Команда изменения значений полей активного файла БД REPLASE [< диапазон>] < поле > WITH < выраж.1 > [< поле > WITH < выраж.2 >]... [ < поле > WITH < выраж. к>] [ WHILE < условие >] [ FOR < условие >] Эта команда меняет содержимое указанных в команде полей в указанных записях активного файла данных. Если не используется диапазон и/или фразы FOR / WHILE, то заменяются только поля текущих записей. 26

27

Слайд 27

Пример Необходимо заполнить во всех записях файла поле Urov (см. 5.4.1), где Urov = Otschet + Priv Для этого используем рассмотренную выше команду REPLACE ALL Urov WITH Otschet + Priv 5.5.3. Команды ввода информации в выполняемую программу Команда ввода информации в переменную памяти INPUT [<Подсказка >] TO <Переменная> Команда предназначена для ввода информации с клавиатуры в выполняемую программу. Она инициирует следующие действия: приостанавливает выполнение командного файла для того, чтобы дать возможность ввести информацию с клавиатуры; если имеется подсказка, на экране выводится запрос на определенный вид информации, которую надо ввести с клавиатуры; записывает введенную с клавиатуры информацию в указанную в команде переменную. Пример ввести с клавиатуры в переменную I порядковый номер водомерной книжки. INPUT ‘Введите порядковый номер книжки’ TO I 27

28

Слайд 28

По этой команде выполнение программы приостанавливается и на экран выводится запись Введите порядковый номер книжки. В ответ с клавиатура необходимо ввести порядковый номер книжки, например 21, и нажать клавишу Ввод. Переменной I присвоиться значение 21 и программа продолжит работу. Команда вывода текста и значения в заданном формате в позиции экрана, определяемые строкой и столбцом. @ < n, m > [ SAY < выражение > [ PICTURE < формат > ]] [ GET < переменная > [ RANGE <выр N >,<выр N >]] / CLEAR Здесь n и m - строка и столбец терминала, SAY - выполняет форматированный вывод указанного выражения в n - ую строку, начиная с m - го столбца экрана дисплея. Дополнение PICTURE позволяет задавать формат отображаемой информации в соответствии с маской (шаблоном). Маска заключается в кавычки, каждый элемент маски разрешает размещение одного элемента данных определенного типа. Предусмотрены следующие элементы маски: 9 - допускает только цифры для символьных данных и цифры со знаком - для числовых, # - цифры, пробелы и знаки, A - только буквы, L - логические величины, Y - только логические Y, y, N, n, при этом строчные буквы преобразуются в прописные, N - буквы и цифры, X - любые символы, ! - преобразует строчные буквы в прописные, $ - заменяет предшествующие числу нули на знак $, *- заменяет незначащие нули звездочками, 28

29

Слайд 29

. - определяет позицию десятичной запятой, , - выводит целую часть числа, разделяя цифры запятыми (например, число 1234567,8 с шаблоном 99,999,999 будет выведено в виде 1,234,567. Дополнение GET < переменная > служит для воспроизведения на экране вводимого с клавиатуры значения переменной. Переменная воспроизводится ‘ в негативе’ в указанном,в соответствии с n и m и длиной выражения, месте. Это позволяет затем значение этой переменной ввести в новую переменную, указанную после GET по команде READ ( см. ниже). Переменная a, значение которой изменяется при вводе, должна существовать до выхода на команду @, то есть а должно быть задано перед обращением к данной команде. Так, пусть а =0,0. Тогда, после выполнения команды @ на экран выводится инверсионное негативное) окошко из 3 позиций. Если теперь набрать на клавиатуре число 5,5 в окошке появляется число 5,5. Затем по команде READ переменной а присваивается число 5,5. Дополнение RANGE <выр N >,<выр N > задает диапазон вводимых числовых значений, или значений даты, для контроля ввода. 5.5.4. Составление отчета Рассмотрим алгоритм и программу составления отчета по форме 1 (см. раздел 5.5.1). По-видимому прежде всего необходимо найти файл ( файлы) по данным которого будет составляться отчет, то есть указать имя файла в котором находиться таблица водомерных наблюдений - файл KG 1< PorN >. dbf. Для того, чтобы это сделать необходимо определить PorN - порядковый номер файла в базе данных. Это можно сделать по файлу Spis _ KG 1. dbf. Для этого с клавиатуры необходимо ввести код поста, год и месяц наблюдений (соответственно KodPost, God, Mesjc ). Number1 = ‘ ‘ Number2 = ‘ ‘ Number3 = ‘ ‘ @ 10, 10 SAY ‘ Введите код поста ‘ GET Number1 29

30

Слайд 30

READ @ 11, 10 SAY ‘ Введите год ‘ GET Number2 READ @ 12, 10 SAY ‘ Введите месяц ‘ GET Number3 READ В данном случае код поста, год и месяц наблюдений записаны в символьной форме, так как в противном случае в инверсионных окнах для записи соответствующих данных появятся какие то числа, например нули, что не украсит экран (см. выше команду SAY ). А в указанном случае для ввода переменных будут представлены пустые окна с числом позиций, равном числу пробелов при инициализации переменных. Дальше можно перейти к поиску номера водомерной книжки в файле Spis _ KG 1. dbf. Для этого откроем указанный файл и переведем указатель на первую запись USE Spis _ KG 1. dbf 1 Дальше в файле Spis _ KG 1. dbf найдем запись для которой данные, приведенные в переменных Number совпадают соответственно со значениями полей KodPost, God и Mesjc DO WHILE.Not. EOF( ) IF Number1 = KodPost IF Number2 = God IF N umber3 = Mesjc PorNom = Ltrim( STR (PorN,5)) EXIT ENDIF ENDIF 30

31

Слайд 31

ENDIF SKIP ENDDO Задачу определения номера файла с данными водомерных наблюдений за данный год и месяц по данному посту можно в значительной степени упростить, если названия постов и других признаков задать в виде меню. Создадим теперь структуру файла отчета по нашему образцу, находящемуся в файле TablFORm 1. dbf. USE TablFORm1.dbf. COPY STRUCTURE TO Otchet.dbf USE KG 1& PorNom Теперь откроем файл с найденной нами ранее таблицей и перепишем из него значения полей Data, Vremj, NSv, Otsch соответственно в переменные a 1 a 2 a 3..., b 1 b 2 b 3..., c 1 c 2 c 3..., d 1 d 2 d 3... DIMENSION a(31,4) USE KG1&PorNom 1 COPY TO ARRAY a USE OTCHET.dbf APPEND FROM ARRAY a Теперь с помощью команды JOIN припишем в файл Otchet. dbf значения приводок свай из файла Priv. dbf (См. команду объединения). 31

32

Слайд 32

SELECT 1 USE Priv.dbf alias f1 SELECT 2 USE Otchet.dbf JOIN WITH f1 TO Otchet1 FOR NSv = f1 -> Nsv FIELDS Data, Vremj, NSv, Otsch, f1-> Priv, Urov, SrSutUr USE Otchet 1 LIST В результате выполнения этого блока команд получен и выведен на экран файл Otchet 1. dbf в котором представлены заполненные данными поля Data, Vremj, NSv, Otsch, Priv и незаполненные поля Urov, SrSutUr. Заполним теперь поле Urov REPLACE ALL Urov WITH Otschet + Priv Сложнее обстоит дело с заполнением поля SrSutUr. Дело в том, что при распечатке желательно значения средних суточных уровней выводить только для значений времени 20 часов - одно значение в сутки или на два отсчета. 1 i = 1 DO WHILE.Not. Eof( ) IF (i/2) <> int (i/2) c = Urov ELSE REPLACE SrSutUr WITH ROUND ((Urov + C)/2) ENDIF i = i +1 SKIP ENDDO LIST 32

33

Последний слайд презентации: 9. Разработка программ ввода данных 9.1. Постановка задачи Задача –

33 конструктора, хранится в базе данных и может содержать до 128 знаков. При работе в окне конструктора БД внутреннее имя таблицы приводится в заголовке окна таблицы. Если внутреннее имя таблицы не задано, то вместо него в заголовке окна таблицы приводится имя файла, в котором находится данная табли-ца. В Visual FoxPro для создания таблицы в интерактивном режиме могут использоваться два метода: первый реализуется с помощью мастера таблиц ( Table Wizard ), второй – с помощью конструктора таблиц ( Table Designer ). В данном случае рассмотрим, как более общий и представляющий более широкие возмож-ности, второй из названных метод создания таблиц. Следует отметить, что алгоритм создания внешних и внутренних таблиц несколько различается. Создание внутренней таблицы с помощью конструктора таблиц 1. Необходимо открыть проект, в который вводится новая таблица. Для этого выполняется следующая последовательность операций: - В подменю File главного меню выполнить команду Open (открыть). На экране появится окно Open. - В окне Open выбрать проект, в котором необходимо поместить таблицу. В данном случае пусть это будет ранее созданный проект Uroven. На экране поя-вится окно Project Manager – Uroven (рис. ). 2. Открыть базу данных проекта. Для этого выполняется следующая последовательность действий: - В окне Project Manager – Uroven нажать на вкладку Data, выбрать операцию Databases и нажать кнопку New. На экране появится окно Create (рис. 4.6). - В окне Create выбрать имя БД и нажать кнопку ОК. На экране появится окно Database Designer c расположенной в нем панелью инструментов Database * (см. рис. 4.8.). 3. В открытой базе создать новую таблицу. Для этого выполняется следующая последовательность действий:

Похожие презентации

Ничего не найдено