Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Организация межтабличных связей




Лабораторная работа № 2

Практическое занятие № 1

Создание запроса с вычисляемым полем

1. Создать новую папку в своем каталоге.

2. Открыть СУБД VISUAL- FOXPRO 9.0.

3. Создать базу данных «Склад».

4. В базе данных «Склад». Создать таблицу «Деталь» и заполнить ее следующей информацией:

 

Номер_склада Шифр_детали Количество Стоимость Дата поступления Процент металла
5 Х010 100 5.00 1.12.04 0.3
10 T010 200 100.50 5.11.04 9.5
10 Y030 5 200.00 3.12.04 0.005
17 Х010 500 8.00 5.01.05 0.5
17 А050 8 150.00 15.03.05 11
20 В050 10 200.00 4.04.05 25
25 А010 12 120.78 23.03.05 40
25 Y010 30 130.48 2.03.05 25
10 S010 20 150.56 12.03.05 10.1

5.Составить запрос, используя, Мастер запросов, включив все поля таблицы «Деталь».

6. В Конструкторе запроса составить «вычисляемое поле - цена», для этого:

- в QUERY DESIGNER двойным щелчком мыши активизировать окно FUNCTION and EXPRESSION;

- в открывшемся окне набрать выражения КОЛИЧЕСТВО*СТОИМОСТЬ AS ЦЕНА;

- далее следует выбрать ОК и вернуться конструктор запросов;

- в конструкторе запросов добавить новое поле;

- выполнить запрос результат просмотреть.

- сохранить результат в виде свободной таблице «Цена1»

- составить отчет по таблице «Цена1», сосчитать общую сумму.

Работа № 1

Создание меню

Прочитать краткую справку о понятии МЕНЮ.

Цель создания меню - обеспечить пользователю простой доступ ко всем компонентам приложения. Обычно проект содержит свое собственное, которое заменяет основное меню VISUAL-FOXPRO и команды выполнения конкретных задач. С помощью меню организуется одновременная работа с такими заранее созданными объектами, как база данных, формы, отчеты, программы. Меню любой сложности строится из двух видов: горизонтальное и вертикальное (всплывающее). Горизонтальное меню, примером которого является основное меню VISUAL-FOXPRO состоит из нескольких расположенных пунктов, которые называются BAR и появляются только при активизации соответствующего PAD- пункта (например, пункты NEW, .OPEN, SAVE. пункта FILE основного меню).

Создание меню визуальными средствами.

Для создания нового меню нужно выполнить команду FILE-NEW MENU. Диалоговое окно NEW MENU откроет два варианта меню:

1. MENU- линейное ВAR-меню

2.SHORTACT- всплывающее POPUP-меню.

Выбрать MENU- CANCEL. Далее откроется окно MENU DESIGNER- MENU. В столбце PROMT вводится название пункта меню. Для разработанной базы данных введите, например, 1справочники. В столбце RESULT выбираем один из предлагаемых вариантов, чтобы определить реакцию данного пункта на выбор:

COMMAND - выполняется команда, которая записывается правее;

SUBMENU - организуется всплывающее меню, для определения его пунктов нажмите кнопку CREATE справа;

PROCEDURE - выполняется процедура для ввода кода которой необходимо нажать кнопку EDIT;

Pad NAME или Bar# - используются элементы системного меню вводом одной из стандартных команд.

Для нашего случая в столбце RESULT выбрать SUBMENU. Для второго пункта меню в столбце PROMT набрать 2выход, в поле RESULT - COMMAND и рядом в появившемся окне набрать команду set sysmenu to defa (команда для восстановления системного меню).

Далее для пункта 1справочник создадим следующий уровень меню. Для этого вернемся на строку 1справочник, щелчком по кнопке CREATE создадим подменю. В столбце PROMT наберем Список, в столбце RESULT - COMMAND. Рядом в окне набрать команду do form spisok.scx, где spisok.scx - это имя файла, где находится форма, с которой вы работаете, у каждого имя может быть своим. Команда do form spisok. scx производит выполнение формы.

После создания меню в строке главного меню выбрать команду MENU- GENARATE. Сохранить созданное меню в своей папке, где находится ваша база данных. Далее активизировать GENARATE. Затем в строке главного меню выбрать команду PROGRAM - DO.

Выбрать файл с именем созданного меню с расширением .mpr и затем DO. В результате выполненных операций строка главного меню заменится на меню пользователя. Для выхода из разработанного меню нажать клавишу ВЫХОД.

 

Работа 2

Огранизация межтабличных связей в среде СУБД VISUAL FOXPRO 9.0

 

1.Изучить теоретический материал по индексированию таблиц.

Понятие индексирования таблиц.

 

Просматривать и отыскивать данные в таблицах удобнее и быстрее тогда, когда они отсортированы (упорядочены) по одному или нескольким полям. Вводить данные в таблицу упорядоченными хотя бы по одному из полей проблемно. Поэтому данные вводятся в таблицы по мере необходимости и в случайном порядке, а сортировка данных при работе с ними осуществляется с помощью механизма индексирования таблиц.

Под индексом (индексным выражением) понимается имя поля таблицы или выражение, включающее совокупность имен полей, по которым упорядочена таблица. Индексирование таблиц позволяет осуществить быстрый поиск записей. Механизм индексирования базируется на использовании специального индексного файла, содержащего упорядоченные указатели(ссылки) на записи исходной таблицы, позволяющие извлекать записи в нужном порядке. Поэтому размер индексного файла гораздо меньше размера исходной таблицы. Индексный файл имеет имя совпадающее с именем таблицы и расширение CDX. Открываются и закрываются вместе с таблицами. Важное свойство индексов является возможность их использования для организации первичного ключа в таблице. Такие индексы должны быть уникальны, т. е. однозначно определять записи таблицы. Если ключевой индекс состоит из одного поля, то не должно быть двух записей в таблице с одинаковым значением этого поля. Для составного индекса, состоящего из нескольких имен полей, уникальным должна быть вся совокупность значений полей.

В VISUAL- FOXPRO 8.0 тип индексов задается при их создании с помощью Конструктора таблиц - TABLE DESIGNER. В диалогом окне TABLE DESIGNER выбрать вкладку INDEXES (индексы). В поле NAME (имя) имя тега (индекса). Слева от имени индекса располагается переключатель, задающий направление упорядочивания значений индексного выражения (по возрастанию или убыванию значений). В поле TYPE (тип) выберем из списка подходящий тип для установления индекса.

REGULAR - значение индексного выражения записывается для каждой записи таблицы. При наличии одного и того же значения для нескольких записей в индексном файле будет указатель на каждую из них. При просмотре таблицы такие записи появляются в порядке их ввода.

PRIMARY - один из индексов, удовлетворяющий требованиям индекса типа CANDIDATE, может быть выбран в качестве первичного ключа. Используется для связывания таблиц.

UNIQUE - значение индексного выражения записывается только для первой из повторяющихся записей и только на нее в индексном файле есть указатель. При просмотре таблицы видна только одна (первая) из записей с одинаковым значением индексного выражения.

CANDIDATE -создается уникальный индекс не содержащий полей с пустыми значениями. Он является кандидатом на роль первичного ключа, но не является таковым, т. к. в таблице может быть только один первичный ключ.

 

Организация межтабличных связей

В VISUAL-FOXPRO возможно связывать таблицы и устанавливать связи между ними. При этом возможно установление постоянных и временных связей между таблицами. Постоянные связи можно установить в Конструкторе БАЗЫ ДАННЫХ. Временные связи между таблицами могут устанавливаться при создании экранных форм (для ввода редактирования данных) и отчетов. Обычно это делается в случаях, когда постоянные связи по каким- либо причинам не подходят для создаваемой формы или отчета. Постоянные связи хранятся в словаре базы данных и автоматически устанавливаются при открытии таблиц.

 

Условия установления постоянных связей:

1. Одна из связываемых таблиц является родительской, а другая дочерней.

2. Для родительской таблицы индекс должен быть определен как первичный ключ.

3. Для дочерней таблицы индекс может быть не уникальным. По этому индексу дочерняя таблица будет связываться с родительской.

 

Для установления постоянной связи между родительской и. дочерней таблицей необходимо:

1. Установить указатель мыши на первичный ключ родительской таблицы.

2. Нажав левую кнопку мыши переместить указатель на индекс дочерней таблицы.

3. Отпустить мышь.

Организовать связь между двумя таблицами

1. Открыть VISUAL-FOXPRO

2. В меню FILE команду OPEN

3. Найти свой каталог, свою папку, где была сохранена база данных SCHOOL

4. Открыть файл SCHOOL.dbc

5. В результате выполнения операций откроется DATABASE DESIGNER- SCHOOL и созданная таблица SPISOK.

6. В окне Конструктора Базы данных установим курсор на таблицу, щелчком правой кнопки мыши и вызовем контекстное меню, затем выполнив команду MODIFY (модифицировать).

7. Установим на поле КОД индекс по возрастанию. Затем выберем вкладку INDEXES и зададим индекс поля КОД типа - PRIMARY; индекс поля ГРУППА - REGULAR.

8. Далее создадим новую таблицу GR с полями: группа - NUMERIC; преподаватель - CHARACTER.

9. В качестве ключа выберем поле группа тип индекса - PRIMARY.

10. Установим связь между таблицей SPISOK и GR. Для этого указатель мыши поместим на первичный ключ таблицы GR -группа и нажав левую кнопку мыши переместим указатель на индекс группы в таблице SPISOK. В результате проделанных операций установится связь 1: М.

11. Таблицу GR заполним следующими значениями в режиме BROWSE

группа____ преподаватель

101 Верзаков

102 Белоусов

103 Масалова

104 Зачесова

 



Практическое занятие № 2










Последнее изменение этой страницы: 2018-05-10; просмотров: 179.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...