2.3. Запросы
В базе данных были созданы следующие запросы:
- Формирование отчёта о продажах за определённый период: select s.ID as "Номер", po.naim as "Покупатель", r.DATA as "Дата покупки", k.NAIM as "Наименование издания", s.KOL as "Кол-во", s. ZEN as "Цена", s.Zen*s.Kol as "Сумма" from SOD_RAS s, RASHOD r, KNIGI k, post po
where s.KOD_CHEK=r.ID and k.id=s.kod_kni
and
r.pok=po.id
and
r.data >= <начальная дата>
and r.data <= <конечная дата>
Данный запрос выводит список продаж за период ограниченный двумя датами.
- Вывод списка книг определённого года издания: select K.ID as "КОД КНИГИ", K.NAIM as "НАЗВАНИЕ ИЗДАНИЯ", A.FIO as "АВТОР", I.NAIM as "ИЗДАТЕЛЬСТВО", G.NAIM as "ЖАНР ИЗДАНИЯ", K.GOD_IZD AS "ГОД ИЗДАНИЯ" from AVTORI A, KNIGI K, IZDATELSTVA I, GANRI G
WHERE K.KOD_GAN=G.ID
and
K.KOD_AVT=A.ID
and
K.KOD_IZD=I.ID
and
k.god_izd = <год издания>
- Вывод приходной накладной: select s.ID as "Номер", k.naim as "Книга", s.KOL as "Кол-во", s.ZENA as "Цена", s.KOL*s.ZENA as "Сумма" from SOD_PRI s, PRIHOD p, KNIGI k
where k.id=s.kod_kni
and
s.kod_pri=p.id
and
s.kod_pri= <код прихода>
2.4. Хранимые процедуры
Процедура вывода номеров и дат всех приходных накладных по Наименованию поставщика:
CREATE PROCEDURE PROC_PRI_NAK_POST (
postav varchar(25))
returns (
data date,
nomer integer)
as
begin
for select pri.id, pri.data from post p, prihod pri
where (p.naim=:postav) and (pri.pos=p.id)
into :nomer, data
do
suspend;
end
//Входной параметр – Наименование поставщика
//Выходные параметры – Номер приходной накладной и её дата
Процедура вывода данных о книгах по вводу кода жанра:
CREATE PROCEDURE KNI_PO_GANRU (
ganr integer)
returns (
id_kni integer,
naim varchar(40),
avtor varchar(40))
as
begin
for select k.id, k.naim, a.fio from knigi k, avtori a
where (k.kod_gan=:ganr) and (k.kod_avt=a.id)
into :id_kni, naim, avtor
do
suspend;
end
//Входной параметр – Код жанра книги
//Выходные параметры – Уникальный код, наименование и автор книги
Описание основных программных модулей. Разработка пользовательского интерфейса
При обращении пользователя к конкретной расходной накладной выводится форма содержания данной расходной накладной. Вид этой формы представлен на рисунке 4.
На рисунке 5 представлена схема прерываний формы «Содержание расходной накладной».
Рисунок 4. Форма «Содержание расходной накладной»
Рисунок
5. Схема прерываний формы «Содержание
расходной накладной»
Символом 1 на рисунке 5 обозначено нажатие пользователем кнопки «Добавить». По нажатию на эту кнопку происходит вызов формы добавления продажи в расходную накладную (записи).
Символом 2 обозначено нажатие пользователем кнопки «Изменить». По нажатию на эту кнопку происходит вызов формы изменения записи о продаже в расходной накладной.
Символом 3 обозначено нажатие пользователем кнопки «Удалить». По нажатию на эту кнопку происходит вызов сообщения о подтверждении удаления записи о продаже в расходной накладной.
Символом 4 обозначено нажатие пользователем кнопки «Печать». По нажатию на эту кнопку происходит вывод расходной накладной в Excel.
Символом 5 обозначено нажатие пользователем кнопки «Выход». По нажатию на эту кнопку происходит выход из формы «Содержание расходной накладной».
При обращении пользователя к Отчету о продажах пользователю выводится форма изображенная на рисунке 6.
Рисунок 6. Форма «Отчет о продажах»
Рисунок 7. Схема прерываний формы «Отчет
о продажах»
На рисунке 5 символом 1 обозначен выбор начальной и конечной даты отчётного периода.
Символом 2 обозначено нажатие пользователем кнопки «Сформировать». После нажатия на кнопку «Сформировать» происходит обращение к процедуре «Формирование отчёта»
Символом 3 обозначено нажатие пользователем кнопки «Печать». После нажатия на которую, происходит вывод отчёта в Excel.
Символом 4 обозначено нажатие пользователем кнопки «Выход». После нажатия на которую, происходит выход из формы отчёта.
Шаблон отчёта представлен в приложении 2.
На рисунке 9 изображена схема алгоритма процедуры «Формирование отчёта».
Рисунок 9. Схема алгоритма процедуры «Формирование отчёта»
Символ 1 на рисунке 9 обозначает начало цикла перебора записей таблицы Содержание расхода.
Символ 2 обозначает условие отбора записей таблицы Содержание расхода. Входят ли они в период ограниченный начальной и конечной датой.
Символ 3 обозначает вывод записей удовлетворяющих условию на форму и подсчёт суммы продажи.
Символ 4 обозначает конец цикла перебора записей таблицы Содержание расхода.
Символ 5 обозначает вывод на форму общей суммы продажи.
Символ 5 обозначает конец процедуры.
