3 Сложные запросы
Вывести список всех товаров, которые купил какой-либо покупатель
Select товар from отпуск_тов_со_склада where номер_накладной in
(select номер_накладной from накладные where покупатель=’наимен_фирмы’)
В результате запрос выведет таблицу 6.1.
Таблица 6.1
Купленные товары |
Товар1 |
… |
ТоварN |
Вывести список всех покупателей, которые купили какой-либо товар
Select покупатель from накладные where номер_накладной in
(select номер_накладной from отпуск_тов_со_склада where
товар =’наимен_товара’)
В результате запрос выведет таблицу 6.2.
Таблица 6.2
Покупатель, который приобрел товар |
Покупатель1 |
… |
ПокупательN |
Вывод информации о том сколько было продано единиц и какая выручка была получена за каждый товар в сумме, за все время работы предприятия
Select товары . тов , sum(отпуск_тов_со_склада . отпущено_ед),
sum(отпуск_тов_со_склада . отпущено_ед * товары . ед_измер),
from (товары JOIN отпуск_тов_со_склада ON товары . товар= отпуск_тов_со_склада . товар) JOIN накладные ON отпуск_тов_со_склада . номер_накл=накладные . номер_накл
GROUPBY товары . товар
В результате запрос выведет таблицу 6.3.
Таблица 6.3
Товар | Кол-во единиц проданных за все время | Общая сумма за все время |
Товар1 | Кол-во_товара1 | Сумма1 |
… | … | … |
ТоварN | Кол-во_товараN | СуммаN |
Список выручек за каждый день, за все время работы предприятия
Select накладные . дата ,
sum(отпуск_тов_со_склада . отпущено_ед * товары . ед_измер)
from (товары JOIN отпуск_тов_со_склада ON товары . товар= отпуск_тов_со_склада . товар) JOIN накладные ON отпуск_тов_со_склада . номер_накл=накладные . номер_накл
GROUPBY накладные . дата
В результате запрос выведет таблицу 6.4.
Таблица 6.4
Дата | Выручка_за_день |
Дата1 | Выручка1 |
… | … |
ДатаN | Выручка N |
Выручка за конкретный день
Selectsum(отпуск_тов_со_склада . отпущено_ед * товары . ед_измер)
from (товары JOIN отпуск_тов_со_склада ON товары . товар= отпуск_тов_со_склада . товар) JOIN накладные ON отпуск_тов_со_склада . номер_накл=накладные . номер_накл
where накладные . дата=’день. месяц. год’
В результате запрос выведет графу, содержащую выручку за интересующий день( таблица 6.5).
Таблица 6.5
Выручка за ‘День. Месяц. Год ’ |
Список товаров, их количество и сумма выручки за конкретный день
Select товары . тов , sum(отпуск_тов_со_склада . отпущено_ед),
sum(отпуск_тов_со_склада . отпущено_ед * товары . ед_измер),
from (товары JOIN отпуск_тов_со_склада ON товары . товар= отпуск_тов_со_склада . товар) JOIN накладные ON отпуск_тов_со_склада . номер_накл=накладные . номер_накл
where накладные . дата=’день. месяц. год’ GROUPBY товары . товар
В результате запрос выведет таблицу 6.6.
Таблица 6.6
Товар | Кол-во единиц проданных за день | Общая сумма за день |
Товар1 | Кол-во_товара1 | Сумма1 |
… | … | … |
ТоварN | Кол-во_товараN | СуммаN |
7. Обоснование выбора языка программирования
Клиентское приложение для информационной системы «Работа торгового склада» разработано с помощью системы объектно-ориентированного программирования Delphi 6, при этом, для реализации доступа к данным был выбран механизм прямого доступа FireBird с форматом InterBase.
Система объектно-ориентированного программирования Delphi 6 производства корпорации Borland предназначена для операционных систем Windows 95,WindowsNT и более поздних версий Windows. Интегрированная среда Delphi 6 обеспечивает скорость визуальной разработки, продуктивность повторно используемых компонент в сочетании с мощью языковых средств ObjectPascal, усовершенствованными инструментами и разномасштабными средствами доступа к базам данных.
Вместо отдельного инструментария, оперирующего визуальными элементами управления, в Delphi 6 интегрирована так называемая палитра компонент, разделенная картотечными вкладками на несколько функциональных групп. Функциональные возможности поставляемых компонент можно достаточно просто модифицировать, а также разрабатывать компоненты, обладающие совершенно новым оригинальным поведением.
Система содержит библиотеку из более 100 повторно используемых визуальных компонент, которые перетаскиваются мышью на форму и сразу становятся элементами управления прототипа вашей программы. Помимо известных элементов управления Windows (кнопки, линейки прокрутки, поля редактирования, простые и комбинированные списки и т. д.) библиотека содержит новые компоненты поддержки диалогов, обслуживания баз данных и многие другие.
После размещения компонент на форме "Инспектор объектов" позволяет устанавливать их свойства и предписывать событиям коды обработки. Проект будет строиться постепенно, на фоне производимых вами изменений в свойствах, событиях и функциях используемых элементов. Хорошо продумано разделение и редактирование программного модуля по двум частям: интерфейсной и собственно кодовой.
Delphi 6 обеспечивает высокое быстродействии при компиляции и сборке 32 - разрядных приложений для современных операционных систем Windows, включая OLE взаимодействие клиент-сервер. Результирующие программы хорошо оптимизированы по скорости исполнения и затратам памяти. "Дизайнер форм" и "Инспектор объектов" и другие средства остаются доступными во время работы программы, поэтому вносить изменения можно в процессе отладки.
Разработка по способу "drag-and-drop" многократно упрощает и ускоряет обычно трудоёмкий процесс программирования СУБД в архитектуре клиент-сервер. Широкий выбор компонент управления визуализацией и редактированием позволяет легко изменить вид отображаемой информации и поведение программы. Delphi 6 использует DatabaseExplorer (Проводник баз данных) и DataDictionary (Словарь данных), чтобы автоматически настроить средства отображения и редактирования применительно к специфики вашей информации.
Проводник баз данных предоставляет графический способ проводки пользователя по содержимому базы данных, обеспечивая создание и модификацию таблиц, иерархических указателей и псевдонимов.
Словарь данных поддерживает целостность изменяющейся информации о содержимом таблиц баз данных. Пользователь может динамически модифицировать состав словаря данных. Словарь содержит информацию о расширенных атрибутах полей в записях: минимальные и максимальные значения, свойства отображения, маски редактирования и т. п.
"Живые" данные (livedata) предоставляются разработчику в процессе визуального проектирования прототипов и при испытании приложений баз данных. Вам не требуется многократно перетранслировать и запускать приложение - данные на стадии проектирования будут точно такими же и представлены точно так же, как их увидит пользователь законченной программы.
Доступ к данным осуществляется через механизм прямого доступа к объектам FireBird, который поддерживает высокопроизводительный 32 – разрядный доступ к базам данных. Delphi 6 использует контроллер ODBC (OpenDatabaseConnectivity) производства Microsoft для связи с серверами баз данных.
Объекты модулей данных действуют как связывающий каркас приложения - они определяют источники и бизнес - логику базы данных, фиксируют взаимосвязи компонент. В централизованной модели доступа к данным бизнес - логика отделена от разработки графического интерфейса с пользователем (GUI). Любое изменение бизнес - логики базы данных сказывается на поведении только соответствующего модуля данных. Работая с модулями данных, вы однократно устанавливаете связи нашего приложения с адресуемой базой данных, а затем по способу "drag - and - drop" можете перетаскивать поля записей на новые формы - в любой узел вашей сети. Никакого дополнительного кодирования при этом не требуется.
Система объектно-ориентированного программирования Delphi 6 является мощным и производительным средством для создания баз данных и обеспечивает высокую скорость визуальной разработки приложений информационных систем, избавляя разработчика от лишних затрат рабочего времени. Механизм прямого доступа к объектам FireBird придает обслуживанию связей с базами данных простоту и прозрачность.
8. Технические требования к системе для применения программы
Для использования данной программы необходимо выполнение следующих минимальных требований к системе:
- ЭВМ типа IBMPC или любая другая, обладающая полной совместимостью;
- наличие накопителя на жестком магнитном диске;
- наличие накопителя на гибких магнитных дисках;
- процессор класса не ниже Pentium;
- оперативная память – 16 Мбайт;
- операционная система – Windows 98;
- сервер баз данных - InterBase Server.
Данные минимальные требования к системе определяются требованиями, необходимыми для работы операционной системы Windows 98 и надежной работы InterBase.
9. Общая структура программы
Структура программы отображает взаимодействие окон (форм) программы. Общая структура программы представлена на рисунке 9.1.
Программа состоит из 6-ти основных программных модулей, каждому из которых соответствует своя форма. Кроме того, имеются 2 дополнительные формы, а именно: форма, выводящая сведения об авторах и форма, запрашивающая подтверждение о выходе из программы.
Unit1 (Form1) – основной модуль программы. Он используется для просмотра всех имеющихся таблиц, для добавления, модификации и удаления данных.