Разработка информационно-программного комплекса для использования на IBM-совместимых ПК в качестве автоматизированного рабочего места обработки информации
Разработка информационно-программного комплекса для использования на IBM-совместимых ПК в качестве автоматизированного рабочего места обработки информации. Реализация базы данных в СУБД IBexpert. Характеристики разработанной информационной системы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 13.08.2012 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Содержание
- Термины и определения
- 1. Общие требования
- 1.1 Назначение информационно-программного комплекса
- 1.2 Требования к функциональным характеристикам ИПК
- 1.3 Требования к техническим и программным средствам
- 1.4 Требования к характеристикам БД
- 1.5 Требования к квалификации пользователя
- 2. Формулировка варианта задания
- 2.1 ВАРИАНТ С
- 2.2 Требуемые запросы
- 2.3 Отчеты
- 3. Бизнес-логика
- 4. Инфологическая модель данных
- 5. Даталогическая модель данных
- 6. Описание таблиц и их полей
- 7. Используемое ПО
- 8. Хранимые процедуры, триггеры
- 9. Код программы
- 10. Пользовательский интерфейс. Краткое руководство пользователя
- Заключение
- Список литературы
Термины и определения
Информационно-программный комплекс (ИПК) - программно-аппаратный комплекс, предназначенный для выполнения следующих функций, задач:
-Централизованное хранение, накопление и выдача по запросам пользователей данных.
-Преобразование и обработка данных.
-Организация удобного интерфейса пользователя.
БД - центральное звено всего ИПК.
Бизнес-логика -- в разработке информационных систем -- совокупность правил, принципов, зависимостей поведения объектов предметной области (области человеческой деятельности, которую система поддерживает). Иначе можно сказать, что бизнес-логика -- это реализация правил и ограничений автоматизируемых операций. Является синонимом термина «логика предметной области».
Инфологическая модель ПО - формализованное описание ПО, выполняемое без ориентации на используемые в дальнейшем программные и технические средства.
Даталогическая модель данных (базы данных) - под даталогической понимается модель, отражающая логические взаимосвязи между элементами данных безотносительно их содержания и физической организации. При этом даталогическая модель разрабатывается с учетом конкретной реализации СУБД, также с учетом специфики конкретной предметной области на основе ее инфологической модели.
1. Общие требования
1.1 Назначение информационно-программного комплекса
Информационно-программный комплекс (ИПК) предназначен для использования на IBM-совместимых ПК в качестве автоматизированного рабочего места обработки информации.
1.2 Требования к функциональным характеристикам ИПК
ИПК должен обеспечивать:
диалог пользователя с помощью разработанного интерфейса;
работу с базами данных комплекса (ввод, корректировка, удаление и просмотр записей);
выполнение ряда стандартных запросов к базам данных;
выпуск стандартных отчетов.
1.3 Требования к техническим и программным средствам
ИПК должен функционировать на IBM-совместимых ПК в среде Windows. База данных должна быть создана при помощи СУБД Ibex pert. Отчёты формируются при помощи FastReport 4.0
1.4 Требования к характеристикам БД
Объем введенных данных в ИПК должен позволять продемонстрировать выполнение комплексом заданных функциональных требований. Число записей в каждой таблице должно составлять не менее 20-30. При работе с БД должны быть использованы средства поддержания целостности БД на уровне полей, записей, таблиц и связанных таблиц.
1.5. Требования к квалификации пользователя
ИПК должен быть ориентирован на пользователя-непрограммиста, имеющего навык работы в среде операционной системы Windows.
2. Формулировка варианта задания
2.1 ВАРИАНТ С
ИПК для работы директора магазина. ИПК должен обеспечивать работу данными о продаваемых товарах, о производителях товаров, о товарах, находящихся на складе, о договорах на поставку товара, о продаже товаров, ведение расчетов и выписку счетов за приобретенный товар, ведение расчетов проданного товара.
Данные о производителях товаров: название, адрес, директор, главный бухгалтер, производимый товар, банковские реквизиты.
Данные о договоре на поставку: номер договора, дата заключения, краткий текст, товар (наименование, цена, количество), условия поставки, поставщик, сумма.
Данные по счету: номер счета, номер договора, дата продажи, сумма, НДС, отметка об оплате, отметка о поступлении.
Данные о товаре: наименование, характеристики, цена за единицу, упаковка, поставка партии, примечание и др.
2.2 Требуемые запросы
Номенклатура, количество продаваемого товара;
Номенклатура, количество и стоимость товара на складе;
Поставщики товара по типу товара;
О заключенных договорах на поставку товар;
Об оплате счетов и суммах оплаты;
О продажах за период (день, декада, месяц) (номенклатура, количество, стоимость)
О поставках за период (день, декада, месяц) (номенклатура, количество, стоимость).
2.3 Отчеты
Оформленные в документальном виде типовые запросы.
Подвариант:
С10 - директор магазина одежды.
3. Бизнес-логика
Директор магазина при помощи ИПК осуществляет управление магазином. ИПК должно содержать в себе все необходимые для этого функции. информационный система база данных
Директор магазина при желании должен иметь возможность просмотреть список товаров в наличии, товаров на складе, товаров поставщика, информацию о дисконтных картах клиентов, заказать товар у поставщика, добавлять/редактировать информацию о поставках, выводить необходимую информацию о заключённых договорах, заключать договор и т.п..
При заключении договора Поставщики предоставляет информацию о себе и предоставляемых товарах. Директор просматривает список поставщиков/товаров и заказывает необходимые товары. Магазин предоставляет информацию о складе, на который должен быть доставлен товар а также информацию по банковским реквизитам, по которым происходят денежные переводы. Поставщик, с которым заключён договор так же предоставляет информацию по банковским реквизитам.
Договоры и информация по ним заносятся в базу данных с целью учёта и контроля поставок. Также формируется фактурный счёт, который хранится на персональном компьютере директора.
После поступления товара на склад происходит оплата товара по счёту, сформированному при заключении договора. Для этого необходимо сформировать отчёт по полученному товару, в котором в общем случае содержится: дата договора, дата отчёта, номенклатура товара, сумма к оплате, счета получателя и отправителя, их адреса, телефоны и факсы. После этого на складе проводится учёт товара, его перепись, фасовка. После этого он выставляется «в наличие», путём добавления в базу данных.
При покупке товара клиентом товар удаляется из «наличия» и добавляется в «проданное». Так происходит учёт проданного товара. Это необходимо для соблюдения сроков годности товара, гарантийного срока в случае возвращения товара клиентом.
Когда товар в наличии подходит к концу - заключается новый договор и т.д.
4. Инфологическая модель данных
Рис.1. Инфологическая модель данных
5. Даталогическая модель данных
Рис.2. Даталогическая модель данных
6. Описание таблиц и их полей
- Таблица Shop - содержит информацию о магазине.
Shop.ID - номер магазина, тип integer.
Shop.Nazvanie - название магазина, тип char(30).
Shop.adres - адрес магазина, тип char(30).
Shop.Director - ФИО директора магазина, тип char(30).
Shop.chasyraboty - часы работы магазина, тип char(10).
Shop.bank_schet - банковский счёт магазина, тип integer.
Shop.Telefon - телефон магазина, тип char(15).
Shop.Faks - Факс магазина, тип char(15).
-Таблица Otdely - содержит информацию об отделах магазина.
Otdely.id_otdel - номер отдела, тип integer.
Otdely.otdel - наименование отдела, тип char(15).
Otdely.prodavec - ФИО продавца отдела, тип char(30).
Otdely.telefon - телефон отдела, тип char(15).
Otdely.faks - Факс отдела, тип char(15).
Otdely.skidki - скидки по отделу в процентах, тип integer.
Otdely.id_shop - номер магазина, integer.
-Таблица Discont - содержит информацию о дисконтных картах.
Discont.id - порядковый номер кортежа, тип integer.
Discont.nomer_karty - номер карты, тип integer.
Discont.vladelec - ФИО владельца, тип char(30).
Discont.telefon - телефон владельца, тип char(15).
Discont.skidka - скидка по карте в процентах, тип integer.
Discont.id_shop - номер магазина, integer.
-Таблица Postavwik - содержит данные о товарах, предлагаемых поставщиком.
Postavwik.id - порядковый номер кортежа, тип integer.
Postavwik.naimenovanie - наименование товара, тип char(30).
Postavwik.razmer - размер, тип integer.
Postavwik.cena - цена товара, тип integer.
Postavwik.upakovka - наличие упаковки, тип char(1).
Postavwik.garant_srok - гарантийный срок на товар, тип char(15).
Postavwik.id_otdel - номер отдела, тип integer.
-Таблица Prodannoe - содержит информацию о проданных товарах.
Prodannoe.id - порядковый номер кортежа, тип integer.
Prodannoe.naimenovanie - наименование товара, тип char(30).
Prodannoe.razmer - размер, тип integer.
Prodannoe.cena - цена товара, тип integer.
Prodannoe.upakovka - наличие упаковки, тип char(1).
Prodannoe.garant_srok - гарантийный срок на товар, тип char(15).
Prodannoe.dataprodaji - дата продажи товара, тип date.
Prodannoe.iste4enniegarantii - срок истечения гарантии, тип date.
Prodannoe.id_otdel - номер отдела, тип integer
-Таблица NALI4IE - содержит информацию о товарах в наличии.
NALI4IE.id - порядковый номер кортежа, тип integer.
NALI4IE.naimenovanie - наименование товара, тип char(30).
NALI4IE.razmer - размер, тип integer.
NALI4IE.cena - цена товара, тип integer.
NALI4IE.upakovka - наличие упаковки, тип char(1).
NALI4IE.garant_srok - гарантийный срок на товар, тип char(15).
NALI4IE.datapostupeni9 - дата поступления товара, тип date.
NALI4IE.id_otdel - номер отдела, тип integer
-Таблица KORZINA - содержит информацию о заказываемых в настоящий момент товарах.
KORZINA.id - порядковый номер кортежа, тип integer.
KORZINA.naimenovanie - наименование товара, тип char(30).
KORZINA.razmer - размер, тип integer.
KORZINA.cena - цена товара, тип integer.
KORZINA.upakovka - наличие упаковки, тип char(1).
KORZINA.garant_srok - гарантийный срок на товар, тип char(15).
KORZINA.id_dogovor - номер договора, тип integer.
KORZINA.id_otdel - номер отдела, тип integer
-Таблица TOVARY_DOGOVOR - содержит информацию о заказанных товарах по всему договору.
TOVARY_DOGOVOR id - порядковый номер кортежа, тип integer.
TOVARY_DOGOVOR naimenovanie - наименование товара, тип char(30).
TOVARY_DOGOVOR razmer - размер, тип integer.
TOVARY_DOGOVOR cena - цена товара, тип integer.
TOVARY_DOGOVOR upakovka - наличие упаковки, тип char(1).
TOVARY_DOGOVOR garant_srok - гарантийный срок на товар, тип char(15).
TOVARY_DOGOVOR id_dogovor - номер договора, тип integer.
TOVARY_DOGOVOR id_otdel - номер отдела, тип integer.
-Таблица DOGOVOR - содержит информацию о заключённых договорах.
Dogovor.id - номер договора, тип integer.
Dogovor.postavshik - поставщик товаров, тип char(15).
Dogovor.data_dogovora - дата договора, тип date.
Dogovor.prime4anie - примечание по договору, тип char(30).
Dogovor.summa - сумма на оплату по договору, тип integer.
Dogovor.id_shop - номер магазина, тип integer.
-S4ETA - отчёт, формируемый по выбранному договору при помощи FastReport 4.0, содержащий информацию о поставщике, сумме к оплате, банковском счёте.
7. Используемое ПО
1. IBexpert - GUI-оболочка, предназначенная для разработки и администрирования баз данных Interbase и Firebird, а также для выбора и изменения данных, хранящихся в базах
2. FireBird 2.0 - Firebird является сервером баз данных. Один сервер Firebird может обрабатывать несколько сотен независимых баз данных, каждую с множеством пользовательских соединений. Он является полностью свободным от лицензионных отчислений даже для коммерческого использования.
3. Delphi 7 - структурированный, объектно-ориентированный язык программирования, диалект Object Pascal.
4. FastReport 4.0 - Fast Reports, Inc -- российская компания по разработке программного обеспечения для формирования отчетов.
8. Хранимые процедуры, триггеры
CREATE PROCEDURE PROC_DISC (
fin_id integer,
fin_nomer_karty integer,
fin_vladelec char(30),
fin_telefon char(15),
fin_skidka char(11),
fin_id_shop integer)
as
begin
if (:fin_id < 0) then
begin
insert into DISCONT (NOMER_KARTY, VLADELEC, TELEFON, SKIDKA, ID_SHOP)
values (:fin_nomer_karty, :fin_vladelec, :fin_telefon, :fin_skidka, :fin_id_shop);
end
else
begin
update
DISCONT
set
NOMER_KARTY = :fin_nomer_karty,
VLADELEC = :fin_vladelec,
TELEFON = :fin_telefon,
SKIDKA = :fin_skidka,
ID_SHOP = :fin_id_shop
where
id = :fin_id;
end
end
CREATE PROCEDURE PROC_DOG (
fin_postavshik char(30),
fin_datadogovora date,
fin_prime4anie char(30),
fin_summa integer,
fin_id_shop integer)
as
begin
insert into DOGOVOR(POSTAVSHIK, DATADOGOVORA, PRIME4ANIE, SUMMA, ID_SHOP)
values (:fin_postavshik, :fin_datadogovora, :fin_prime4anie, :fin_summa, :fin_id_shop);
end
CREATE PROCEDURE PROC_NAL (
fin_id integer,
fin_naimenovanie char(30),
fin_razmer char(10),
fin_cena integer,
fin_upakovka char(1),
fin_garantsrok char(20),
fin_datapostupleni9 date,
fin_id_otdel integer)
as
begin
if (:fin_id < 0) then
begin
insert into NALI4IE(NAIMENOVANIE, RAZMER, CENA, UPAKOVKA, GARANTSROK, DATAPOSTUPLENI9, ID_OTDEL)
values (:fin_naimenovanie, :fin_razmer, :fin_cena, :fin_upakovka, :fin_garantsrok, :fin_datapostupleni9, :fin_id_otdel);
end
else
begin
update
NALI4IE
set
NAIMENOVANIE = :fin_naimenovanie,
RAZMER = :fin_razmer,
CENA = :fin_cena,
UPAKOVKA = :fin_upakovka,
GARANTSROK = :fin_garantsrok,
DATAPOSTUPLENI9 = :fin_datapostupleni9,
ID_OTDEL = :fin_id_otdel
where
id = :fin_id;
end
end
CREATE PROCEDURE PROC_OTDELY (
fin_id_otdel integer,
fin_otdel char(15),
fin_prodavec char(30),
fin_telefon char(15),
fin_faks char(15),
fin_skidki integer,
fin_id_shop smallint)
as
begin
if (:fin_id_otdel < 0) then
begin
insert into OTDELY(OTDEL, PRODAVEC, TELEFON, FAKS, SKIDKI, ID_SHOP)
values (:fin_otdel, :fin_prodavec, :fin_telefon, :fin_faks, :fin_skidki, :fin_id_shop);
end
else
begin
update
otdely
set
OTDEL = :fin_OTDEL,
PRODAVEC = :fin_PRODAVEC,
TELEFON = :fin_TELEFON,
FAKS = :fin_FAKS,
SKIDKI = :fin_SKIDKI,
ID_SHOP = :fin_ID_SHOP
where
id_otdel = :fin_id_otdel;
end
end
CREATE PROCEDURE PROC_PROD (
fin_id integer,
fin_naimenovanie char(30),
fin_razmer char(10),
fin_cena integer,
fin_upakovka char(1),
fin_dataprodaji date,
fin_iste4eniegarantii date,
fin_id_otdel integer)
as
begin
if (:fin_id < 0) then
begin
insert into PRODANNOE(NAIMENOVANIE, RAZMER, CENA, UPAKOVKA, DATAPRODAJI, ISTE4ENIEGARANTII , ID_OTDEL)
values (:fin_naimenovanie, :fin_razmer, :fin_cena, :fin_upakovka, :fin_dataprodaji, :fin_iste4eniegarantii, :fin_id_otdel);
end
else
begin
update
PRODANNOE
set
NAIMENOVANIE = :fin_naimenovanie,
RAZMER = :fin_razmer,
CENA = :fin_cena,
UPAKOVKA = :fin_upakovka,
DATAPRODAJI = :fin_dataprodaji,
ISTE4ENIEGARANTII = :fin_iste4eniegarantii,
ID_OTDEL = :fin_id_otdel
where
id = :fin_id;
end
end
CREATE PROCEDURE PROC_SHOP (
fin_id_shop integer,
fin_nazvanie char(25),
fin_adres char(40),
fin_director char(30),
fin_chasy char(11),
fin_banks4et integer,
fin_telefon char(15),
fin_faks char(15))
as
begin
update
shop
set
NAZVANIE = :fin_nazvanie,
ADRES = :fin_adres,
DIRECTOR = :fin_director,
CHASYRABOTY = :fin_chasy,
BANK_S4ET = :FIN_BANKS4ET,
TELEFON = :fin_telefon,
FAKS = :fin_faks
where
id_shop = :fin_id_shop;
end
CREATE trigger discont_bi for discont
active before insert position 0
AS
begin
if (new.id is null) then
new.id = gen_id(gen_discont_id,1);
end
CREATE trigger dogovor_bi for dogovor
active before insert position 0
AS
begin
if (new.id is null) then
new.id = gen_id(gen_DOGOVOR_id,1);
end
CREATE trigger nali4ie_bi for nali4ie
active before insert position 0
as
begin
if (new.id is null) then
new.id = gen_id(gen_nali4ie_id,1);
end
CREATE trigger otdely_bi for otdely
active before insert position 0
AS
begin
if (new.id_otdel is null) then
new.id_otdel = gen_id(gen_otdely_id,1);
end
CREATE trigger prodannoe_bi for prodannoe
active before insert position 0
as
begin
if (new.id is null) then
new.id = gen_id(gen_prodannoe_id,1);
end
9. Код программы
unit Unit1;
interface
uses
Windows, Messages, ShellApi, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB, ComCtrls,
IBCustomDataSet, IBDatabase, IBQuery, IBTable, frxClass;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Memo1: TMemo;
GroupBox2: TGroupBox;
ProgressBar1: TProgressBar;
Timer1: TTimer;
Button2: TButton;
IBQuery1: TIBQuery;
IBDatabase1: TIBDatabase;
IBDataSet1: TIBDataSet;
IBTransaction1: TIBTransaction;
ComboBox1: TComboBox;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Label2: TLabel;
ComboBox2: TComboBox;
Label3: TLabel;
Button1: TButton;
GroupBox1: TGroupBox;
Button6: TButton;
Button7: TButton;
Button8: TButton;
GroupBox3: TGroupBox;
Button9: TButton;
Button10: TButton;
Button11: TButton;
RadioGroup1: TRadioGroup;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
GroupBox4: TGroupBox;
Button12: TButton;
RadioGroup2: TRadioGroup;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Button13: TButton;
RadioGroup3: TRadioGroup;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
GroupBox5: TGroupBox;
Label5: TLabel;
Label6: TLabel;
Edit12: TEdit;
Button14: TButton;
DBGrid2: TDBGrid;
GroupBox6: TGroupBox;
Button15: TButton;
Button16: TButton;
Button17: TButton;
GroupBox7: TGroupBox;
Button18: TButton;
Button19: TButton;
Button20: TButton;
Button21: TButton;
IBQuery2: TIBQuery;
DataSource2: TDataSource;
IBDataSet2: TIBDataSet;
IBTransaction2: TIBTransaction;
IBDatabase2: TIBDatabase;
Memo2: TMemo;
Button22: TButton;
Label7: TLabel;
Label8: TLabel;
GroupBox8: TGroupBox;
Button23: TButton;
Button24: TButton;
Button25: TButton;
Button26: TButton;
GroupBox9: TGroupBox;
Button27: TButton;
Label9: TLabel;
Edit13: TEdit;
Button28: TButton;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure RadioGroup2Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure RadioGroup3Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure Button20Click(Sender: TObject);
procedure Button21Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button22Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button23Click(Sender: TObject);
procedure Button24Click(Sender: TObject);
procedure Button25Click(Sender: TObject);
procedure Button26Click(Sender: TObject);
procedure Button27Click(Sender: TObject);
procedure Button28Click(Sender: TObject);
private
{ Private declarations }
public
end;
var
Form1: TForm1;
Flag,Flag1: Boolean;
Korzina:Boolean = false;
dogovor:integer;
implementation
uses Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); // main
var i:integer;
begin
Application.MessageBox('Клиент по работе с БД. Евгений Лукин, И493', 'О программе');
end;
cedure TForm1.Timer1Timer(Sender: TObject); // filling progressbar
begin
Form1.ProgressBar1.Position:=Form1.ProgressBar1.Position+Timer1.Interval;
end;
procedure TForm1.Button2Click(Sender: TObject); // help
begin
ShellExecute(Handle, 'open',
'c:\windows\notepad.exe', 'help.txt', nil,
SW_SHOWNORMAL);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if ComboBox1.Text = 'Данные:' then
begin
Application.MessageBox('Выберите данные для добавления','Добавление данных');
exit;
end
else
if ComboBox1.Text = 'Информация о магазине' then
begin
Application.MessageBox('В базе данных только один магазин','Магазин');
exit
end;
if ComboBox1.Text = 'Договоры' then
begin
Application.MessageBox('Вы можете заключить договор, выбрав товары, и добавив их в корзину','Договор');
exit
end;
Flag := True;
Flag1 := True;
if ComboBox1.Text = 'Товары в наличии' then
begin
Form2.Visible := False;
Form2.Visible := True;
end else
if ComboBox1.Text = 'Проданные товары' then
begin
Form3.Visible := False;
Form3.Visible := True;
end else
if ComboBox1.Text = 'Дисконтные карты' then
begin
Form4.Visible := False;
Form4.Visible := True;
end else
if ComboBox1.Text = 'Информация по отделам' then
begin
Form6.Visible := False;
Form6.Visible := True;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if ComboBox1.Text = 'Данные:' then begin
Application.MessageBox('Выберите данные для редактирования','Редактирование данных');
exit;
end;
Flag := False;
Flag1 := False;
if ComboBox1.Text = 'Проданные товары' then
begin
Form3.Visible:= False;
Form3.Visible:= True;
end
else
if ComboBox1.Text = 'Товары в наличии' then
begin
Form2.Visible := False;
Form2.Visible := True;
end
else
if ComboBox1.Text = 'Дисконтные карты' then
begin
Form4.Visible := False;
Form4.Visible := True;
end
else
if ComboBox1.Text = 'Информация о магазине' then
begin
Form5.Visible := False;
Form5.Visible := True;
end else
if ComboBox1.Text = 'Информация по отделам' then
begin
Form6.Visible := False;
Form6.Visible := True;
end else
if ComboBox1.Text = 'Договоры' then
begin
Application.MessageBox('Невозможно редактировать заключённый договор','Договор');
exit
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
if ComboBox1.Text = 'Данные:' then begin
Application.MessageBox('Выберите данные для удаления','Удаление данных');
exit;
end;
if Application.MessageBox('Вы уверены, что хотите удалить запись?','Удаление записи',
MB_ICONQUESTION + MB_YESNO) = IDNO then
exit;
Form2.IBQuery2.Close;
Form2.IBQuery2.SQL.Clear;
if ComboBox1.Text = 'Товары в наличии' then
with Form2.IBQuery2 do
SQL.Text := 'delete from NALI4IE where id = ' + IBQuery1.FieldByName('ID').AsString
else
if ComboBox1.Text = 'Проданные товары' then
with Form2.IBQuery2 do
SQL.Text := 'delete from PRODANNOE where id = ' + IBQuery1.FieldByName('ID').AsString
else
if ComboBox1.Text = 'Информация о магазине' then
begin
Application.MessageBox('Нельзя удалить запись о магазине','Удаление записи');
exit;
end
else
if ComboBox1.Text = 'Дисконтные карты' then
with Form2.IBQuery2 do
SQL.Text := 'delete from DISCONT where id = ' + IBQuery1.FieldByName('ID').AsString
else
if ComboBox1.Text = 'Информация по отделам' then
with Form2.IBQuery2 do
SQL.Text := 'delete from OTDELY where id_otdel = ' + IBQuery1.FieldByName('ID_OTDEL').AsString
else
if ComboBox1.Text = 'Договоры' then
with Form2.IBQuery2 do
SQL.Text := 'delete from DOGOVOR where id = ' + IBQuery1.FieldByName('ID').AsString;
Form2.IBQuery2.Open;
Form2.IBQuery2.Close;
IBQuery1.Close;
IBQuery1.Open;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
ComboBox2.Enabled := True;
if ComboBox1.Text = 'Товары в наличии' then
Memo1.Lines[0] := 'select * from NALI4IE'
else
if ComboBox1.Text = 'Проданные товары' then
Memo1.Lines[0] := 'select * from PRODANNOE'
else
if ComboBox1.Text = 'Информация о магазине' then begin
ComboBox2.Enabled := False;
Memo1.Lines[0] := 'select * from SHOP'
end
else
if ComboBox1.Text = 'Информация по отделам' then
begin
ComboBox2.Enabled := False;
Memo1.Lines[0] := 'select * from OTDELY';
end
else
if ComboBox1.Text = 'Дисконтные карты' then
Memo1.Lines[0] := 'select * from DISCONT'
else
if ComboBox1.Text = 'Договоры' then
Memo1.Lines[0] := 'select * from DOGOVOR';
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
PostMessage(ProgressBar1.Handle, $0409, 0, clLime); // progressbar change color to Lime
Form1.ProgressBar1.Position:=0; // progressbar null
Timer1.Enabled:=true;
end;
procedure TForm1.ComboBox2Change(Sender: TObject);
var bufer: string;
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
bufer := Memo1.Lines[0];
if ComboBox2.Text = 'Возрастанию' then
Memo1.Lines[0] := Memo1.Lines[0] + ' order by ID'
else
if ComboBox2.Text = 'Убыванию' then
Memo1.Lines[0] := Memo1.Lines[0] + ' order by id desc'
else
if ComboBox2.Text = 'Наименованию' then
Memo1.Lines[0] := Memo1.Lines[0] + ' order by NAIMENOVANIE'
else
if ComboBox2.Text = 'Дате' then
begin
if ComboBox1.Text = 'Проданные товары' then
Memo1.Lines[0] := Memo1.Lines[0] + ' order by DATAPRODAJI';
if ComboBox1.Text = 'Товары в наличии' then
Memo1.Lines[0] := Memo1.Lines[0] + ' order by DATAPOSTUPLENI9';
if ComboBox1.Text = 'Договоры' then
Memo1.Lines[0] := Memo1.Lines[0] + ' order by DATADOGOVORA';
end;
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
Memo1.Lines[0] := bufer;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
IBQuery1.Close;
Memo1.Lines[0] := 'select * from nali4ie where id_otdel=1';
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
IBQuery1.Close;
Memo1.Lines[0] := 'select * from nali4ie where id_otdel=2';
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
IBQuery1.Close;
Memo1.Lines[0] := 'select * from nali4ie where id_otdel=3';
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
Edit1.Enabled := False; Edit2.Enabled := False; Edit3.Enabled :=False;
Edit4.Enabled := False;
case RadioGroup1.ItemIndex of
0: Edit1.Enabled := True;
1: begin
Edit2.Enabled := True;
Edit3.Enabled := True;
end;
2: Edit4.Enabled := True;
end;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
IBQuery1.Close;
Memo1.Lines[0] := 'select * from prodannoe where id_otdel=1';
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
IBQuery1.Close;
Memo1.Lines[0] := 'select * from prodannoe where id_otdel=2';
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
procedure TForm1.Button11Click(Sender: TObject);
begin
IBQuery1.Close;
Memo1.Lines[0] := 'select * from prodannoe where id_otdel=3';
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
procedure TForm1.Button12Click(Sender: TObject);
begin
IBQuery1.Close;
if RadioGroup1.ItemIndex = 0 then
Memo1.Lines[0] := 'select * from prodannoe where DATAPRODAJI=''' + Edit1.Text
else
if RadioGroup1.ItemIndex = 1 then
Memo1.Lines[0] := 'select * from prodannoe where (DATAPRODAJI>''' + Edit2.Text + ')and(DATAPRODAJI<''' + Edit3.Text + ')'
else
if RadioGroup1.ItemIndex = 2 then
Memo1.Lines[0] := 'select * from prodannoe where (DATAPRODAJI>=''' +'01.'
+ Edit4.Text + ')' + 'and(DATAPRODAJI<=''' + '31.'
+ Edit4.Text + ')';
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
procedure TForm1.RadioGroup2Click(Sender: TObject);
begin
Edit5.Enabled := false; Edit6.Enabled := false; Edit7.Enabled := false;
Edit8.Enabled := false;
case RadioGroup2.ItemIndex of
0: Edit5.Enabled := True;
1: Edit6.Enabled := True;
2: Edit7.Enabled := True;
3: Edit8.Enabled := True;
end;
end;
procedure TForm1.Button13Click(Sender: TObject);
begin
IBQuery1.Close;
if RadioGroup2.ItemIndex = 0 then
Memo1.Lines[0] := 'select * from nali4ie where NAIMENOVANIE=''' + Edit5.Text
else
if RadioGroup2.ItemIndex = 1 then
Memo1.Lines[0] := 'select * from nali4ie where ID=''' + Edit6.Text
else
if RadioGroup2.ItemIndex = 2 then
Memo1.Lines[0] := 'select * from nali4ie where CENA>=''' + Edit7.Text
else
if RadioGroup2.ItemIndex = 3 then
Memo1.Lines[0] := 'select * from nali4ie where RAZMER=''' + Edit8.Text;
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
procedure TForm1.RadioGroup3Click(Sender: TObject);
begin
Edit9.Enabled := False; Edit10.Enabled := False; Edit11.Enabled :=False;
Edit12.Enabled := False;
case RadioGroup3.ItemIndex of
0: Edit9.Enabled := True;
1: begin
Edit10.Enabled := True;
Edit11.Enabled := True;
end;
2: Edit12.Enabled := True;
end;
end;
procedure TForm1.Button14Click(Sender: TObject);
begin
IBQuery1.Close;
if RadioGroup3.ItemIndex = 0 then
Memo1.Lines[0] := 'select * from DOGOVOR where DATADOGOVORA=''' + Edit9.Text
else
if RadioGroup3.ItemIndex = 1 then
Memo1.Lines[0] := 'select * from DOGOVOR where (DATADOGOVORA>''' + Edit10.Text + ')and(DATADOGOVORA<''' + Edit11.Text + ')'
else
if RadioGroup3.ItemIndex = 2 then
Memo1.Lines[0] := 'select * from DOGOVOR where (DATADOGOVORA>=''' +'01.'
+ Edit12.Text + ')' + 'and(DATADOGOVORA<=''' + '30.'
+ Edit12.Text + ')';
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
procedure TForm1.Button19Click(Sender: TObject);
begin
Button17.Enabled := true;
IBQuery1.Close;
Memo1.Lines[0] := 'select * from postavwik where id_otdel=1';
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
procedure TForm1.Button20Click(Sender: TObject);
begin
Button17.Enabled := true;
IBQuery1.Close;
Memo1.Lines[0] := 'select * from postavwik where id_otdel=2';
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
procedure TForm1.Button21Click(Sender: TObject);
begin
Button17.Enabled := true;
IBQuery1.Close;
Memo1.Lines[0] := 'select * from postavwik where id_otdel=3';
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
ocedure TForm1.Button18Click(Sender: TObject);
begin
Button17.Enabled := true;
IBQuery1.Close;
Memo1.Lines[0] := 'select * from postavwik';
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
procedure TForm1.Button17Click(Sender: TObject);
var summa :String;
begin
Button16.Enabled := true;
Button15.Enabled := true;
Button22.Enabled := true;
IBQuery2.Close;
IBQuery2.SQL.Clear;
Memo2.Lines[0] := 'select * from dogovor';
IBQuery2.SQL := Memo2.Lines;
IBQuery2.Open;
IBQuery2.Last;
dogovor := IBQuery2.RecordCount +1;
IBQuery2.Close;
IBQuery2.SQL.Clear;
// else begin
IBQuery2.SQL.Clear;
Memo2.Lines.Clear;
Memo2.Lines[0] := 'Insert into KORZINA(ID,NAIMENOVANIE,RAZMER,CENA,UPAKOVKA,GARANTSROK,ID_DOGOVOR,ID_OTDEL)' +
' values (' + IBQuery1.FieldByName('ID').AsString + ',''' +
IBQuery1.FieldByName('NAIMENOVANIE').AsString + ''',''' +
IBQuery1.FieldByName('RAZMER').AsString + ''',''' +
IBQuery1.FieldByName('CENA').AsString + ''',''' +
IBQuery1.FieldByName('UPAKOVKA').AsString + ''',''' +
IBQuery1.FieldByName('GARANTSROK').AsString + ''',''' +
IntToStr(dogovor) + ''',''' +
IBQuery1.FieldByName('ID_OTDEL').AsString + ''')';
IBQuery2.SQL := Memo2.Lines;
IBQuery2.Open;
IBQuery2.Transaction.Commit;
IBQuery2.Close;
Memo2.Lines.Clear;
// end;
IBQuery2.Close;
IBQuery2.SQL.Clear;
Memo2.Lines[0] := 'select SUM(CENA) from KORZINA';
IBQuery2.SQL := Memo2.Lines;
IBQuery2.Open;
Label8.Caption:= IBQuery2.FieldByName('SUM').AsString;
IBQuery2.Close;
IBQuery2.SQL.Clear;
Memo2.Lines[0] :='select * from KORZINA';
IBQuery2.SQL := Memo2.Lines;
IBQuery2.Open;
end;
procedure TForm1.Button16Click(Sender: TObject);
begin
IBQuery2.SQL.Text :='delete from KORZINA' +
' where id = ' + IBQuery2.FieldByName('ID').AsString;
IBQuery2.Open;
IBQuery2.Transaction.Commit;
IBQuery2.Close;
Memo2.Lines.Clear;
Memo2.Lines[0] := 'select SUM(CENA) from KORZINA';
IBQuery2.SQL := Memo2.Lines;
IBQuery2.Open;
if IBQuery2.FieldByName('SUM').AsString = '' then
Label8.Caption := '0' else
Label8.Caption:= IBQuery2.FieldByName('SUM').AsString;
IBQuery2.Close;
Memo2.Lines.Clear;
Memo2.Lines[0] :='select * from KORZINA';
IBQuery2.SQL := Memo2.Lines;
IBQuery2.Open;
IBQuery2.Last;
if IBQuery2.RecordCount = 0 then begin
Button22.Enabled := false;
Button16.Enabled := false;
end;
end;
procedure TForm1.Button22Click(Sender: TObject);
begin
Button15.Enabled := false;
Button22.Enabled := false;
Button16.Enabled := false;
Label8.Caption := '0';
IBQuery2.Close;
IBQuery2.SQL.Clear;
IBQuery2.SQL.Text :='DELETE FROM KORZINA';
IBQuery2.Open;
IBQuery2.Transaction.Commit;
IBquery2.Close;
end;
procedure TForm1.Button15Click(Sender: TObject);
begin
Form7.Visible := true;
Form7.Edit4.Text := Form1.Label8.Caption;
end;
procedure TForm1.Button23Click(Sender: TObject);
begin
IBQuery1.Close;
Memo1.Lines[0] := 'select * from TOVARY_DOGOVOR';
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
procedure TForm1.Button24Click(Sender: TObject);
begin
IBQuery1.Close;
Memo1.Lines[0] := 'select * from TOVARY_DOGOVOR where id_otdel = 1';
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
procedure TForm1.Button25Click(Sender: TObject);
begin
IBQuery1.Close;
Memo1.Lines[0] := 'select * from TOVARY_DOGOVOR where id_otdel = 2';
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
procedure TForm1.Button26Click(Sender: TObject);
begin
IBQuery1.Close;
Memo1.Lines[0] := 'select * from TOVARY_DOGOVOR where id_otdel = 3';
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
procedure TForm1.Button27Click(Sender: TObject);
begin
if Edit13.Text = '' then begin
Application.MessageBox('Введите id договора','товары');
exit;
end;
Button28.Enabled := true;
IBQuery1.Close;
Memo1.Lines.Clear;
Memo1.Lines[0] := 'select * from TOVARY_DOGOVOR where ID_DOGOVOR= ' + Edit13.Text;
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
end;
procedure TForm1.Button28Click(Sender: TObject);
var t:TfrxMemoView;
begin
if Edit13.Text = '' then begin
Application.MessageBox('Введите id договора','товары');
exit;
end;
t:= TfrxMemoView(Form8.frxReport1.FindObject('Memo10'));
if t <> nil then
t.memo.text := Edit13.Text;
IBQuery1.Close;
IBQuery1.SQL.Clear;
Memo1.Lines.Clear;
Memo1.Lines[0]:= 'select * from DOGOVOR where id= ' + Edit13.Text;
IBquery1.SQL := Memo1.Lines;
IBQuery1.Open;
t:= TfrxMemoView(Form8.frxReport1.FindObject('Memo11'));
if t <> nil then
t.memo.text := IBQuery1.FieldByName('DATADOGOVORA').AsString;
t := TfrxMemoView(Form8.frxReport1.FindObject('Memo14'));
if t <> nil then
t.memo.Text := IBQuery1.FieldByName('SUMMA').AsString;
IBQuery1.SQL.Clear;
Memo1.Lines.Clear;
Memo1.Lines[0]:='select * from TOVARY_DOGOVOR where id_dogovor= ' + Edit13.Text;
IBQuery1.SQL := Memo1.Lines;
IBQuery1.Open;
Form8.Show;
Form8.frxReport1.ShowReport;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, unit1, IBDatabase, DB, IBCustomDataSet, IBQuery;
type
TForm2 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Button1: TButton;
IBQuery2: TIBQuery;
IBTransaction2: TIBTransaction;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit7: TEdit;
Label7: TLabel;
CheckBox1: TCheckBox;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
var check:string;
begin
IBQuery2.Close;
IBQuery2.SQL.Clear;
if Form2.CheckBox1.Checked then check := '+' else check := '-';
if Flag then
begin
with IBQuery2 do
begin
SQL.Text := 'execute procedure PROC_NAL(-1,''' +
Edit1.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''',''' +
check +''','''+ Edit5.Text +''','''+ Edit6.Text +''',''' +
Edit7.Text +''')';
end;
end
else
begin
with IBQuery2 do
begin
SQL.Text := 'execute procedure PROC_NAL('+ Form1.IBQuery1.FieldByName('ID').AsString +',''' +
Edit1.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''',''' +
check +''','''+ Edit5.Text +''','''+ Edit6.Text +''',''' +
Edit7.Text +''')';
end;
end;
IBQuery2.Open;
IBQuery2.Close;
Form1.IBQuery1.Close;
Form1.IBQuery1.Open;
if Flag1 then Form2.Close;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
Form2.Close;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, unit1, StdCtrls;
type
TForm3 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit5: TEdit;
Edit6: TEdit;
CheckBox1: TCheckBox;
Label7: TLabel;
Button1: TButton;
Edit7: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
var check:string;
begin
Form2.IBQuery2.Close;
Form2.IBQuery2.SQL.Clear;
if Form3.CheckBox1.Checked then check := '+' else check := '-';
if Flag then
begin
with Form2.IBQuery2 do
begin
SQL.Text := 'execute procedure PROC_PROD(-1,''' +
Edit1.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''',''' +
check +''','''+ Edit5.Text +''','''+ Edit6.Text +''',''' +
Edit7.Text +''')';
end;
end
else
begin
with Form2.IBQuery2 do
begin
SQL.Text := 'execute procedure PROC_PROD('+ Form1.IBQuery1.FieldByName('ID').AsString +',''' +
Edit1.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''',''' +
check +''','''+ Edit5.Text +''','''+ Edit6.Text +''',''' +
Edit7.Text +''')';
end;
end;
Form2.IBQuery2.Open;
Form2.IBQuery2.Close;
Form1.IBQuery1.Close;
Form1.IBQuery1.Open;
if Flag1 then Form3.Close;
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
Form3.Close;
end;
end.
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, unit1;
type
TForm4 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit5: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
begin
Form2.IBQuery2.Close;
Form2.IBQuery2.SQL.Clear;
if Flag then
begin
with Form2.IBQuery2 do
begin
SQL.Text := 'execute procedure PROC_DISC(-1,''' +
Edit1.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''','''+
Edit5.Text +''',''' +
'1' +''')';
end;
end
else
begin
with Form2.IBQuery2 do
begin
SQL.Text := 'execute procedure PROC_DISC('+ Form1.IBQuery1.FieldByName('ID').AsString +',''' +
Edit1.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''','''+
Edit5.Text +''',''' +
'1' +''')';
end;
end;
Form2.IBQuery2.Open;
Form2.IBQuery2.Close;
Form1.IBQuery1.Close;
Form1.IBQuery1.Open;
if Flag1 then Form4.Close;
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
Form4.Close;
end;
end.
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm5 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Button1: TButton;
Button2: TButton;
Label5: TLabel;
Edit5: TEdit;
Label6: TLabel;
Edit6: TEdit;
Label7: TLabel;
Edit7: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
uses Unit2, Unit1;
{$R *.dfm}
procedure TForm5.Button1Click(Sender: TObject);
begin
Form2.IBQuery2.Close;
Form2.IBQuery2.SQL.Clear;
with Form2.IBQuery2 do
begin
SQL.Text :='execute procedure PROC_SHOP('+ Form1.IBQuery1.FieldByName('ID_SHOP').AsString +','''+
Edit7.Text +''','''+Edit1.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''','''+
Edit4.Text +''','''+ Edit5.Text +''','''+ Edit6.Text +''')';
end;
Form2.IBQuery2.Open;
Form2.IBQuery2.Close;
Form1.IBQuery1.Close;
Form1.IBQuery1.Open;
if Flag1 then Form5.Close;
end;
procedure TForm5.Button2Click(Sender: TObject);
begin
Form5.Close;
end;
end.
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, unit1;
type
TForm6 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm6.Button1Click(Sender: TObject);
begin
Form2.IBQuery2.Close;
Form2.IBQuery2.SQL.Clear;
if Flag then
begin
with Form2.IBQuery2 do
begin
SQL.Text := 'execute procedure PROC_OTDELY(-1,''' +
Edit1.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''','''+
Edit5.Text +''','''+ Edit6.Text +''',1)';
end;
end
else
begin
with Form2.IBQuery2 do
begin
SQL.Text := 'execute procedure PROC_OTDELY('+ Form1.IBQuery1.FieldByName('ID_OTDEL').AsString +',''' +
Edit1.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''','''+
Edit5.Text +''','''+ Edit6.Text +''',1)';
end;
end;
Form2.IBQuery2.Open;
Form2.IBQuery2.Close;
Form1.IBQuery1.Close;
Form1.IBQuery1.Open;
if Flag1 then Form6.Close;
end;
procedure TForm6.Button2Click(Sender: TObject);
begin
Form6.Close;
end;
end.
unit Unit7;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, frxClass;
type
TForm7 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7: TForm7;
implementation
uses Unit1, Unit9;
{$R *.dfm}
procedure TForm7.Button1Click(Sender: TObject);
var t:TfrxMemoView;
begin
with Form1.IBQuery1 do begin
Close;
SQL.Clear;
SQL.Text := 'execute procedure PROC_DOG(''' + Edit1.Text +''',''' + Edit2.Text + ''','''+ Edit3.Text +''','''+ Edit4.Text +''',1)';
Open;
Transaction.Commit;
Close;
SQL.Text := 'select * from dogovor';
Open;
end;
{==============}
t:= TfrxMemoView(Form9.frxReport1.FindObject('Memo5'));
if t <> nil then
t.memo.text := Edit2.Text;
t:= TfrxMemoView(Form9.frxReport1.FindObject('Memo7'));
if t <> nil then
t.memo.text := Edit4.Text;
t:= TfrxMemoView(Form9.frxReport1.FindObject('Memo9'));
if t <> nil then
t.memo.text := Edit1.Text;
Form1.IBQuery2.Last;
t:= TfrxMemoView(Form9.frxReport1.FindObject('Memo15'));
if t <> nil then
t.memo.text := IntToStr(Form1.IBQuery2.RecordCount);
t:= TfrxMemoView(Form9.frxReport1.FindObject('Memo3'));
if t <> nil then
t.memo.text := Form1.IBQuery2.FieldByName('ID_DOGOVOR').AsString;
Form1.IBQuery2.Close;
Form1.IBQuery2.SQL.Clear;
Form1.IBQuery2.SQL.Text := 'select * from SHOP';
Form1.IBQuery2.Open;
t:= TfrxMemoView(Form9.frxReport1.FindObject('Memo11'));
if t <> nil then
t.memo.text := Form1.IBQuery2.FieldByName('NAZVANIE').AsString;
t:= TfrxMemoView(Form9.frxReport1.FindObject('Memo13'));
if t <> nil then
t.memo.text := Form1.IBQuery2.FieldByName('BANK_S4ET').AsString;
Form9.Show;
Form9.frxReport1.ShowReport;
{==============}
with Form1.IBQuery2 do begin
Close;
SQL.Clear;
SQL.Text := 'Insert into TOVARY_DOGOVOR(ID,NAIMENOVANIE,RAZMER,CENA,UPAKOVKA,GARANTSROK,ID_DOGOVOR,ID_OTDEL) ' +
'select * from KORZINA';
Open;
Transaction.Commit;
Close;
SQL.Clear;
SQL.Text := 'DELETE FROM KORZINA';
Open;
Transaction.Commit;
Close;
end;
Form1.Button15.Enabled := false;
Form1.Button22.Enabled := false;
Form1.Button16.Enabled := false;
Form1.Label8.Caption := '0';
Form7.Visible := false;
end;
procedure TForm7.Button2Click(Sender: TObject);
begin
Form7.Visible := false;
end;
end.
unit Unit8;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, frxClass, frxDBSet, frxPreview, StdCtrls, frxExportXLS;
type
TForm8 = class(TForm)
frxReport1: TfrxReport;
frxPreview1: TfrxPreview;
frxDBDataset1: TfrxDBDataset;
frxXLSExport1: TfrxXLSExport;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form8: TForm8;
implementation
{$R *.dfm}
procedure TForm8.Button1Click(Sender: TObject);
begin
Form8.frxReport1.Export(Form8.frxXLSExport1);
end;
end.
unit Unit9;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, frxClass, frxPreview, frxExportRTF, frxDBSet;
type
TForm9 = class(TForm)
frxDBDataset1: TfrxDBDataset;
frxReport1: TfrxReport;
frxRTFExport1: TfrxRTFExport;
frxPreview1: TfrxPreview;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form9: TForm9;
implementation
{$R *.dfm}
procedure TForm9.Button1Click(Sender: TObject);
begin
Form9.frxReport1.Export(Form9.frxRTFExport1);
end;
end.
10. Пользовательский интерфейс. Краткое руководство пользователя
Чтобы запустить ИПК необходимо дважды кликнуть левой кнопкой мыши по значку BD.exe. Перед вами откроется основное окно работы:
Рис.3. Основное окно работы
В этом окне будут совершаться все последующие действия с БД. На форме расположены вспомогательные кнопки для более быстрого доступа к информации, хранимой в базе. Каждая кнопка подписана, вся форма разделена на поля, подписи которых соответствуют их функциональному назначению в программе.
Для непосредственно работы с данными предусмотрено окно информации и соответствующие кнопки «Добавить», «Редактировать», «Удалить». Кнопки не работают пока не будут выбраны данные, с которыми должно проводиться изменения:
Рис.4. Сообщение, выводимое при отсутствии выбора данных
После выбора данных, вся информация по ним будет выведено в окно информации:
Рис5. Окно информации и данные в нём
Данные, выводимые в окно информации можно упорядочивать по нескольким параметрам, зависящим от данных, которые выводятся в окно информации.
При нажатии на одну из кнопок «Добавить», «Редактировать» и «Удалить» выводится соответствующее окно, в которое необходимо ввести желаемую информацию:
Рис 6. Добавление информации
В блоках «За время», «Поиск товара в наличии» и «Договоры за время» перед вводом информации в текстовое поле необходимо сначала выбрать нужную радиокнопку - ключ, по которому ИПК будет совершать запрос в БД. Не выбрав радиокнопку - поиск будет невозможен. Вводить данные необходимо без кавычек, форматом, указанным рядом с радиокнопкой.
Рис.7. Пример неверного введения информации для поиска
Заключение договора происходит по следующей схеме: Пользователь просматривает товары поставщика, выбирает необходимый и нажимает кнопку «Добавить в корзину»:
Рис. 8. Добавление в корзину
Пользователь может удалять корзину, удалять товары из корзины. Рядом расположен счётчик, который считает стоимость товаров в корзине.
Нажав на кнопку «Заключить договор», Пользователю открывается окно, куда он вводит всю необходимую информация, после чего нажимает «Сохранить». Сразу же, ему представится отчёт о заключённом договоре, который можно сохранить на ПК:
Рис. 9. Отчёт по заключённому договору
Отчёт возможно экспортировать в Microsoft Office Word любой версии. Все данные по отчёту автоматически заносятся в БД.
В случае, если Пользователю необходимо оформить отчёт по уже заключённых договорам, ему необходимо в соответствующем блоке ввести ID интересующего его договора и нажать кнопку «Отчёт»:
Рис. 10. Отчёт по товарам в договоре
Отчёт возможно экспортировать в Microsoft Office EXCEL любой версии. Все данные по отчёту автоматически считываются из БД.
Заключение
Был создан ИПК, полностью удовлетворяющий всем требованиям и обеспечивающий автоматизированную обработку информации на IBM совместимых компьютерах.
Список использованной литературы
1. Базы данных. Конспект лекций.
2. Техническая документация по DELPHI7. Москва, 2007.
3. IBexpert. Руководство пользователя.
4. FastReport 4.0. Руководство пользователя с сайта www.fastreport.com
5. Правила оформления текстовых документов. ГОСТ № 7.32-2001.
6. Базы данных: Модели, Разработка, Реализация., Карпова Т., 2001.
7. Базы данных: Основы проектирования, использование., Малыкина М., 8 изд., 2003.
8. Введение в системы БД., Дейт К., 7 изд., 2001.
9. Теория и практика построения БД., Кренке Т., 8 изд. 2003.
10. Правила оформления отчёта. ГОСТ № 7.32-91.
Размещено на Allbest.ru
Подобные документы
Проект автоматизированного рабочего места для работы с клиентами и использования клиентских баз данных. Регистрация данных о состоянии объекта управления. Обеспечение взаимодействия человека с системой. Доступ к результатам регистрации информации.
курсовая работа [1,7 M], добавлен 02.10.2010Технологический процесс сбора, передачи, обработки и выдачи информации. Назначение программного продукта. Анализ экономических показателей внедрения автоматизированного рабочего места кассира-операциониста. Организация рабочего места оператора ЭВМ.
дипломная работа [2,6 M], добавлен 08.12.2014Разработка программного продукта для автоматизации рабочего места менеджера в агентстве недвижимости. Проектирование информационной системы для отдела работы с клиентами с возможностью обработки данных о квартирах, услугах, учете заказов и учете сделок.
курсовая работа [3,1 M], добавлен 13.02.2012Создание систем автоматизированного сбора и обработки данных. Разработка информационной системы гостиничного комплекса. Выбор требуемой СУБД и программного обеспечения. Концептуальное, логическое проектирование. Организация ввода данных в базу данных.
дипломная работа [790,1 K], добавлен 13.02.2016Разработка и реализация автоматизированного рабочего места для менеджера по продажам компьютерной техники. Требования к функциональным характеристика программного изделия. Стадии и этапы разработки. Эксплуатационная документация, руководство оператора.
курсовая работа [686,9 K], добавлен 19.05.2014Автоматизированная выборка данных, упрощение переработки информации при использовании СУБД. Разработка программного обеспечения автоматизированного рабочего места секретаря учебно-методического кабинета. Назначение, проверка, условия применения программ.
контрольная работа [304,6 K], добавлен 28.07.2010Понятие информации, информационных технологий и их виды. Анализ основных положений по автоматизации рабочего места оператора автотранспортного предприятия. Разработка модели автоматизированного рабочего места начальника отдела. Применение модели АРМ.
дипломная работа [4,0 M], добавлен 18.09.2010Разработка и реализация базы данных информационной системы автоматизации рабочего места инспектора по начислению пенсии. Технология создания модуля для оперирования точной информацией при работе с клиентами организации, упрощение способа расчета пенсии.
дипломная работа [1,2 M], добавлен 09.08.2011Анализ предметной области и описание основных функциональных подсистем автоматизированного рабочего места администратора кинотеатра "Мир". Разработка инфологической модели базы данных и заполнение форм данных. Обеспечение безопасности и доступа к данным.
курсовая работа [4,4 M], добавлен 27.12.2014Разработка автоматизированного рабочего места в виде Web-приложения "Платные образовательные услуги" для отделения дополнительного образования строительного техникума. Технология создания макета. Разработка программного кода, функции интерфейса.
дипломная работа [1,8 M], добавлен 10.06.2013