2.4. Запросы
В базе данных созданы следующие запросы:
- Формирование отчёта о продажах за определённый период: 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.5. Хранимые процедуры
Процедура вывода номеров и дат всех приходных накладных по Наименованию поставщика:
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^
SET TERM ; ^
GRANT SELECT ON POST TO PROCEDURE PROC_PRI_NAK_POST;
GRANT SELECT ON PRIHOD TO PROCEDURE PROC_PRI_NAK_POST;
GRANT EXECUTE ON PROCEDURE PROC_PRI_NAK_POST TO SYSDBA;
Процедура вывода данных о книгах по вводу кода жанра:
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^
SET TERM ; ^
GRANT SELECT ON KNIGI TO PROCEDURE KNI_PO_GANRU;
GRANT SELECT ON AVTORI TO PROCEDURE KNI_PO_GANRU;
GRANT EXECUTE ON PROCEDURE KNI_PO_GANRU TO SYSDBA;
2.6. Описание программных модулей.
3.1. Функциональная схема аис "Книжный магазин"
2.6. Схема прерываний
Расходная накладная
По
нажатию на кнопки
Отчет о продажах за определённый срок.
Пользователь заполняет поля дат (выбирает даты).
По кнопке «Сформировать» формируется список продаж по средством следующего запроса: 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>='+QuotedStr(DateToStr(DateTimePicker1.Date))+'and r.data<='+QuotedStr(DateToStr(DateTimePicker2.Date))
По кнопке Печать происходит вывод содержания отчёта в Excel
Приложение № 1.
Образцы первичных документов.
Приложение № 2.
Образцы выходных документов (отчётов).
