Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет по комплексу лабораторных работ.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
5.27 Mб
Скачать

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

Тема: Идентификация пользователя.

Задание: создать для курсового проекта форму для запроса имени пользователя и пароля. При запуске приложения должна появляться созданная форма, и, если имя пользователя или пароль введены неправильно, приложение должно оповестить пользователя об этом и ожидать повторного ввода.

Выполнение:

  1. Создадим новую форму класса mainform, созданного в предыдущих лабораторных работах на основе класса form, разместим на поле формы элементы Label, TextBox, CommandButton, как показано на рис. 6.1.

Рис.6.1. Форма авторизации при входе в систему.

  1. Для поля «Пароль» (Text2) установим свойство «PasswordChar» в значение «*». Этими символами будут заменяться символы вводимого пароля.

  2. Для созданных кнопок «Вход» и «Выход» введем программный код, который обеспечит их требуемую функциональность, а именно переход в главное меню с занесением информации о текущем пользователе в журнал посещений и закрытие проекта, соответственно (см.Листинги 6.1 и 6.2). Добавим подсказку для пользователя в случае ввода неверного логина или пароля. Для этого запрограммируем на форме элемент «Label», расположенный над полями ввода, таким образом, чтобы оно информировало пользователя о неверной попытке ввода.

Листинг 6.1. Программный код для кнопки «Вход».

CLOSE TABLES ALL

id_ = 0

USE 'Data\access_table' IN 0

USE 'Data\log_table' IN 0

SELECT('access_table') && Выбираем таблицу для работы

num = RECCOUNT('access_table') && Считаем количество записей

FOR i = 1 TO num && Цикл поиска

GOTO i

IF ((access_table.Login+" "=ALLTRIM(thisform.text1.Value)+" ") AND (access_table.Password+" "=ALLTRIM(thisform.text2.Value)+" ")) THEN

id_ = access_table.user_id

EXIT

ENDIF

ENDFOR

SELECT('log_table') && Выбираем таблицу

IF id_ <> 0 THEN && Если найдено значение

INSERT INTO log_table (user_id, time_log) VALUES (id_, date())

thisForm.Release

DO FORM 'Forms\mainmenu.scx'

ELSE

thisForm.label14.Caption = 'Неверный логин или пароль! Попробуйте еще раз.'

ENDIF

CLOSE TABLES ALL

Листинг 6.2. Программный код для кнопки «Выход».

thisForm.Release

CLOSE ALL

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

Тема: Создание запросов и отчетов с помощью «Wizards», исследование словаря базы данных.

Задание: создать запрос с помощью Мастера в виде таблицы и графика, создать отчет с помощью Мастера, проанализировать словарь своей базы данных.

Выполнение:

  1. Создадим запрос с помощью Мастера в виде таблицы. На 1-м шаге в качестве источника запроса выберем таблицу sotrudniki. Шаг №2 Мастер пропускает, так как создаваемый запрос не является Cross-Tab Wizard. На 3-м шаге в качестве условия выборки назначим Мастеру выбрать информацию из таблицы о тех сотрудниках, у которых не заполнены поля «Почта» или «Дата рождения» (см.рис.7.1):

Рис.7.1. Создание запроса-таблицы с помощью Мастера.

Завершим создание запроса сохранением его в папку Query проекта. Результат выполнения данного запроса представлен на рис.7.2:

Рис.7.2. Результат выполнения запроса.

  1. Создадим запрос с помощью Мастера в виде графика. В качестве источника запроса на 1-м шаге выберем таблицы sotrudniki и dolgnosty. На 2-м шаге в раздел Data Series поместим Dolg_id, в Axes – Sotr_id, учитывая, что возможно работать только с полями типа Numeric. На 3-м шаге зададим тип диаграммы – объемная столбчатая. Завершим создание запроса выбором его типа – Form - и сохранением его в папку Query проекта.

Рис.7.3. Результат выполнения запроса.

  1. Чтобы полученные запросы можно было вызывать из формы, добавим на одну из ранее созданных форм две кнопки «Запрос 1» и «Запрос 2» (см.рис.7.4) и запрограммируем их следующим образом:

Листинг 7.1. Коды кнопок вызова запросов.

&&вызов запроса-таблицы

DO 'd:\militsina\query\SOTR_MAIL_BIRTH_BLANK.qpr'

&&вызов запроса-графика

DO FORM 'd:\militsina\forms\SOTRUDNIKI_PO_DOLGNOSTYAM'

Рис.7.4. Форма с кнопками вызова запросов.

  1. Создадим с помощью Мастера отчет. На 1-м шаге в качестве источника выберем таблицу sotrudniki (все поля). На 2-м шаге определим способ группировки записей в отчете – по полю dolg_id. На 3-м шаге выберем тип оформления отчета – banded - и продолжим формирование стиля на 4-м шаге. На 5-м шаге зададим тип сортировки записей – по полю dolg_id и sort_id. Завершим создание отчета сохранением его в папку проекта Reports. Результат выглядит следующим образом (см.рис.7.5):

Рис.7.5. Отчет, созданный Мастером.

  1. Исследуем контейнерный файл базы данных создаваемого курсового проекта. Для этого откроем из папки проекта файл course_data.dbc командой USE <путь к файлу>, затем – BROWSE, при этом все файлы проекта закрыты (см.рис.7.6). В результате анализа словаря базы данных можно заключить следующее:

А) Общее количество объектов базы данных – 147

Б) Каждый объект имеет имя и тип (база, таблица, индекс и др.)

В) Каждый объект имеет «родителя»: таблица – базу данных, к которой она принадлежит, поле или индекс – таблицу, в которой содержится; примечательно, что поле, являющееся в таблице первичным или вторичным ключом, отображается в словаре дважды – как обычное поле и как индекс.

Рис.7.6. Содержимое файла course_data.dbc.