Разработка информационно-программного комплекса для использования на IBM-совместимых ПК в качестве автоматизированного рабочего места обработки информации

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    406,83 Кб
  • Опубликовано:
    2012-08-12
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка информационно-программного комплекса для использования на IBM-совместимых ПК в качестве автоматизированного рабочего места обработки информации

Содержание

Термины и определения

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. Пользовательский интерфейс. Краткое руководство пользователя

Заключение

Список литературы

Термины и определения

Информационно-программный комплекс (ИПК) - программно-аппаратный комплекс, предназначенный для выполнения следующих функций, задач:

Централизованное хранение, накопление и выдача по запросам пользователей данных.

Преобразование и обработка данных.

Организация удобного интерфейса пользователя.

БД - центральное звено всего ИПК.

Бизнес-логика - в разработке информационных систем - совокупность правил, принципов, зависимостей поведения объектов предметной области (области человеческой деятельности, которую система поддерживает). Иначе можно сказать, что бизнес-логика - это реализация правил и ограничений автоматизируемых операций. Является синонимом термина «логика предметной области».

Инфологическая модель ПО - формализованное описание ПО, выполняемое без ориентации на используемые в дальнейшем программные и технические средства.

Даталогическая модель данных (базы данных) - под даталогической понимается модель, отражающая логические взаимосвязи между элементами данных безотносительно их содержания и физической организации. При этом даталогическая модель разрабатывается с учетом конкретной реализации СУБД, также с учетом специфики конкретной предметной области на основе ее инфологической модели <#"551938.files/image001.gif">

Рис.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.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._DOGOVOR cena - цена товара, тип integer._DOGOVOR upakovka - наличие упаковки, тип char(1)._DOGOVOR garant_srok - гарантийный срок на товар, тип char(15)._DOGOVOR id_dogovor - номер договора, тип integer._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,_nomer_karty integer,_vladelec char(30),_telefon char(15),_skidka char(11),_id_shop integer)(:fin_id < 0) theninto DISCONT (NOMER_KARTY, VLADELEC, TELEFON, SKIDKA, ID_SHOP)(:fin_nomer_karty, :fin_vladelec, :fin_telefon, :fin_skidka, :fin_id_shop);_KARTY = :fin_nomer_karty,= :fin_vladelec,= :fin_telefon,= :fin_skidka,_SHOP = :fin_id_shop= :fin_id;

end

CREATE PROCEDURE PROC_DOG (

fin_postavshik char(30),_datadogovora date,_prime4anie char(30),_summa integer,_id_shop integer)into DOGOVOR(POSTAVSHIK, DATADOGOVORA, PRIME4ANIE, SUMMA, ID_SHOP)(:fin_postavshik, :fin_datadogovora, :fin_prime4anie, :fin_summa, :fin_id_shop);

end

CREATE PROCEDURE PROC_NAL (

fin_id integer,_naimenovanie char(30),_razmer char(10),_cena integer,_upakovka char(1),_garantsrok char(20),_datapostupleni9 date,_id_otdel integer)(:fin_id < 0) theninto NALI4IE(NAIMENOVANIE, RAZMER, CENA, UPAKOVKA, GARANTSROK, DATAPOSTUPLENI9, ID_OTDEL)(:fin_naimenovanie, :fin_razmer, :fin_cena, :fin_upakovka, :fin_garantsrok, :fin_datapostupleni9, :fin_id_otdel);IE= :fin_naimenovanie,= :fin_razmer,= :fin_cena,= :fin_upakovka,= :fin_garantsrok,= :fin_datapostupleni9,_OTDEL = :fin_id_otdel= :fin_id;

end

CREATE PROCEDURE PROC_OTDELY (

fin_id_otdel integer,_otdel char(15),_prodavec char(30),_telefon char(15),_faks char(15),_skidki integer,_id_shop smallint)(:fin_id_otdel < 0) theninto OTDELY(OTDEL, PRODAVEC, TELEFON, FAKS, SKIDKI, ID_SHOP)(:fin_otdel, :fin_prodavec, :fin_telefon, :fin_faks, :fin_skidki, :fin_id_shop);= :fin_OTDEL,= :fin_PRODAVEC,= :fin_TELEFON,= :fin_FAKS,= :fin_SKIDKI,_SHOP = :fin_ID_SHOP_otdel = :fin_id_otdel;

end

CREATE PROCEDURE PROC_PROD (

fin_id integer,_naimenovanie char(30),_razmer char(10),_cena integer,_upakovka char(1),_dataprodaji date,_iste4eniegarantii date,_id_otdel integer)(:fin_id < 0) theninto PRODANNOE(NAIMENOVANIE, RAZMER, CENA, UPAKOVKA, DATAPRODAJI, ISTE4ENIEGARANTII , ID_OTDEL)(:fin_naimenovanie, :fin_razmer, :fin_cena, :fin_upakovka, :fin_dataprodaji, :fin_iste4eniegarantii, :fin_id_otdel);= :fin_naimenovanie,= :fin_razmer,= :fin_cena,= :fin_upakovka,= :fin_dataprodaji,ENIEGARANTII = :fin_iste4eniegarantii,_OTDEL = :fin_id_otdel= :fin_id;

end

CREATE PROCEDURE PROC_SHOP (

fin_id_shop integer,_nazvanie char(25),_adres char(40),_director char(30),_chasy char(11),_banks4et integer,_telefon char(15),_faks char(15))= :fin_nazvanie,= :fin_adres,= :fin_director,= :fin_chasy,_S4ET = :FIN_BANKS4ET,= :fin_telefon,= :fin_faks_shop = :fin_id_shop;

end

CREATE trigger discont_bi for discont

active before insert position 0(new.id is null) then.id = gen_id(gen_discont_id,1);

end

CREATE trigger dogovor_bi for dogovor

active before insert position 0(new.id is null) then.id = gen_id(gen_DOGOVOR_id,1);

end

CREATE trigger nali4ie_bi for nali4ie

active before insert position 0(new.id is null) then.id = gen_id(gen_nali4ie_id,1);

end

CREATE trigger otdely_bi for otdely

active before insert position 0(new.id_otdel is null) then.id_otdel = gen_id(gen_otdely_id,1);

end

CREATE trigger prodannoe_bi for prodannoe

end

9. Код программы

unit Unit1;, Messages, ShellApi, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB, ComCtrls,, IBDatabase, IBQuery, IBTable, frxClass;= class(TForm): TDataSource;: TDBGrid;: TMemo;: TGroupBox;: TProgressBar;: TTimer;: TButton;: TIBQuery;: TIBDatabase;: TIBDataSet;: TIBTransaction;: TComboBox;: TButton;: TButton;: TButton;: TLabel;: TComboBox;: TLabel;: TButton;: TGroupBox;: TButton;: TButton;: TButton;: TGroupBox;: TButton;: TButton;: TButton;: TRadioGroup;: TEdit;: TEdit;: TLabel;: TEdit;: TLabel;: TEdit;: TGroupBox;: TButton;: TRadioGroup;: TEdit;: TEdit;: TEdit;: TEdit;: TButton;: TRadioGroup;: TEdit;: TEdit;: TEdit;: TGroupBox;: TLabel;: TLabel;: TEdit;: TButton;: TDBGrid;: TGroupBox;: TButton;: TButton;: TButton;: TGroupBox;: TButton;: TButton;: TButton;: TButton;: TIBQuery;: TDataSource;: TIBDataSet;: TIBTransaction;: TIBDatabase;: TMemo;: TButton;: TLabel;: TLabel;: TGroupBox;: TButton;: TButton;: TButton;: TButton;: TGroupBox;: TButton;: TLabel;: TEdit;: TButton;Button1Click(Sender: TObject);Timer1Timer(Sender: TObject);Button2Click(Sender: TObject);Button3Click(Sender: TObject);Button4Click(Sender: TObject);Button5Click(Sender: TObject);ComboBox1Change(Sender: TObject);ComboBox2Change(Sender: TObject);Button6Click(Sender: TObject);Button7Click(Sender: TObject);Button8Click(Sender: TObject);RadioGroup1Click(Sender: TObject);Button9Click(Sender: TObject);Button10Click(Sender: TObject);Button11Click(Sender: TObject);Button12Click(Sender: TObject);RadioGroup2Click(Sender: TObject);Button13Click(Sender: TObject);RadioGroup3Click(Sender: TObject);Button14Click(Sender: TObject);Button19Click(Sender: TObject);Button20Click(Sender: TObject);Button21Click(Sender: TObject);Button18Click(Sender: TObject);Button17Click(Sender: TObject);Button16Click(Sender: TObject);Button22Click(Sender: TObject);Button15Click(Sender: TObject);Button23Click(Sender: TObject);Button24Click(Sender: TObject);Button25Click(Sender: TObject);Button26Click(Sender: TObject);Button27Click(Sender: TObject);Button28Click(Sender: TObject);

{ Private declarations };: TForm1;,Flag1: Boolean;:Boolean = false;:integer;Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8;

{$R *.dfm}TForm1.Button1Click(Sender: TObject); // maini:integer;.MessageBox('Клиент по работе с БД. Евгений Лукин, И493', 'О программе');

end;TForm1.Timer1Timer(Sender: TObject); // filling progressbar.ProgressBar1.Position:=Form1.ProgressBar1.Position+Timer1.Interval;;TForm1.Button2Click(Sender: TObject); // help(Handle, 'open',

'c:\windows\notepad.exe', 'help.txt', nil,_SHOWNORMAL);;TForm1.Button3Click(Sender: TObject);ComboBox1.Text = 'Данные:' then

begin.MessageBox('Выберите данные для добавления','Добавление данных');

exit;ComboBox1.Text = 'Информация о магазине' then

begin.MessageBox('В базе данных только один магазин','Магазин');

exit;ComboBox1.Text = 'Договоры' then

begin.MessageBox('Вы можете заключить договор, выбрав товары, и добавив их в корзину','Договор');

exit;:= True;:= True;ComboBox1.Text = 'Товары в наличии' then.Visible := False;.Visible := True;elseComboBox1.Text = 'Проданные товары' then.Visible := False;.Visible := True;elseComboBox1.Text = 'Дисконтные карты' then.Visible := False;.Visible := True;elseComboBox1.Text = 'Информация по отделам' then.Visible := False;.Visible := True;;;TForm1.Button4Click(Sender: TObject);ComboBox1.Text = 'Данные:' then begin

Application.MessageBox('Выберите данные для редактирования','Редактирование данных');

exit;;:= False;:= False;ComboBox1.Text = 'Проданные товары' then.Visible:= False;.Visible:= True;ComboBox1.Text = 'Товары в наличии' then.Visible := False;.Visible := True;ComboBox1.Text = 'Дисконтные карты' then.Visible := False;.Visible := True;ComboBox1.Text = 'Информация о магазине' then.Visible := False;.Visible := True;elseComboBox1.Text = 'Информация по отделам' then.Visible := False;.Visible := True;elseComboBox1.Text = 'Договоры' then

begin.MessageBox('Невозможно редактировать заключённый договор','Договор');

exit;;TForm1.Button5Click(Sender: TObject);ComboBox1.Text = 'Данные:' then begin

Application.MessageBox('Выберите данные для удаления','Удаление данных');;;Application.MessageBox('Вы уверены, что хотите удалить запись?','Удаление записи',

MB_ICONQUESTION + MB_YESNO) = IDNO then;.IBQuery2.Close;.IBQuery2.SQL.Clear;ComboBox1.Text = 'Товары в наличии' thenForm2.IBQuery2 do.Text := 'delete from NALI4IE where id = ' + IBQuery1.FieldByName('ID').AsStringComboBox1.Text = 'Проданные товары' thenForm2.IBQuery2 do.Text := 'delete from PRODANNOE where id = ' + IBQuery1.FieldByName('ID').AsStringComboBox1.Text = 'Информация о магазине' then

Application.MessageBox('Нельзя удалить запись о магазине','Удаление записи');

exit;ComboBox1.Text = 'Дисконтные карты' thenForm2.IBQuery2 do.Text := 'delete from DISCONT where id = ' + IBQuery1.FieldByName('ID').AsString

elseComboBox1.Text = 'Информация по отделам' then

with Form2.IBQuery2 do.Text := 'delete from OTDELY where id_otdel = ' + IBQuery1.FieldByName('ID_OTDEL').AsStringComboBox1.Text = 'Договоры' thenForm2.IBQuery2 do.Text := 'delete from DOGOVOR where id = ' + IBQuery1.FieldByName('ID').AsString;.IBQuery2.Open;.IBQuery2.Close;.Close;.Open;;TForm1.ComboBox1Change(Sender: TObject);.Close;.SQL.Clear;.Enabled := True;ComboBox1.Text = 'Товары в наличии' then.Lines[0] := 'select * from NALI4IE'ComboBox1.Text = 'Проданные товары' then.Lines[0] := 'select * from PRODANNOE'ComboBox1.Text = 'Информация о магазине' then begin.Enabled := False;.Lines[0] := 'select * from SHOP'ComboBox1.Text = 'Информация по отделам' then.Enabled := False;.Lines[0] := 'select * from OTDELY';ComboBox1.Text = 'Дисконтные карты' then.Lines[0] := 'select * from DISCONT'ComboBox1.Text = 'Договоры' then.Lines[0] := 'select * from DOGOVOR';.SQL := Memo1.Lines;.Open;(ProgressBar1.Handle, $0409, 0, clLime); // progressbar change color to Lime.ProgressBar1.Position:=0; // progressbar null.Enabled:=true;;TForm1.ComboBox2Change(Sender: TObject);bufer: string;.Close;.SQL.Clear;:= Memo1.Lines[0];ComboBox2.Text = 'Возрастанию' then.Lines[0] := Memo1.Lines[0] + ' order by ID'ComboBox2.Text = 'Убыванию' then.Lines[0] := Memo1.Lines[0] + ' order by id desc'ComboBox2.Text = 'Наименованию' then.Lines[0] := Memo1.Lines[0] + ' order by NAIMENOVANIE'ComboBox2.Text = 'Дате' thenComboBox1.Text = 'Проданные товары' then.Lines[0] := Memo1.Lines[0] + ' order by DATAPRODAJI';ComboBox1.Text = 'Товары в наличии' then.Lines[0] := Memo1.Lines[0] + ' order by DATAPOSTUPLENI9';ComboBox1.Text = 'Договоры' then.Lines[0] := Memo1.Lines[0] + ' order by DATADOGOVORA';;.SQL := Memo1.Lines;.Open;.Lines[0] := bufer;;TForm1.Button6Click(Sender: TObject);.Close;.Lines[0] := 'select * from nali4ie where id_otdel=1';.SQL := Memo1.Lines;.Open;;TForm1.Button7Click(Sender: TObject);.Close;.Lines[0] := 'select * from nali4ie where id_otdel=2';.SQL := Memo1.Lines;.Open;;TForm1.Button8Click(Sender: TObject);.Close;.Lines[0] := 'select * from nali4ie where id_otdel=3';.SQL := Memo1.Lines;.Open;;TForm1.RadioGroup1Click(Sender: TObject);.Enabled := False; Edit2.Enabled := False; Edit3.Enabled :=False;.Enabled := False;RadioGroup1.ItemIndex of

: Edit1.Enabled := True;

: begin.Enabled := True;.Enabled := True;;

: Edit4.Enabled := True;;;TForm1.Button9Click(Sender: TObject);.Close;.Lines[0] := 'select * from prodannoe where id_otdel=1';.SQL := Memo1.Lines;.Open;;TForm1.Button10Click(Sender: TObject);.Close;.Lines[0] := 'select * from prodannoe where id_otdel=2';.SQL := Memo1.Lines;.Open;;TForm1.Button11Click(Sender: TObject);.Close;.Lines[0] := 'select * from prodannoe where id_otdel=3';.SQL := Memo1.Lines;.Open;;TForm1.Button12Click(Sender: TObject);.Close;RadioGroup1.ItemIndex = 0 then.Lines[0] := 'select * from prodannoe where DATAPRODAJI=''' + Edit1.TextRadioGroup1.ItemIndex = 1 then.Lines[0] := 'select * from prodannoe where (DATAPRODAJI>''' + Edit2.Text + ')and(DATAPRODAJI<''' + Edit3.Text + ')'RadioGroup1.ItemIndex = 2 then.Lines[0] := 'select * from prodannoe where (DATAPRODAJI>=''' +'01.'

+ Edit4.Text + ')' + 'and(DATAPRODAJI<=''' + '31.'

+ Edit4.Text + ')';.SQL := Memo1.Lines;.Open;;TForm1.RadioGroup2Click(Sender: TObject);.Enabled := false; Edit6.Enabled := false; Edit7.Enabled := false;.Enabled := false;RadioGroup2.ItemIndex of

: Edit5.Enabled := True;

: Edit6.Enabled := True;

: Edit7.Enabled := True;

: Edit8.Enabled := True;;;TForm1.Button13Click(Sender: TObject);.Close;RadioGroup2.ItemIndex = 0 then.Lines[0] := 'select * from nali4ie where NAIMENOVANIE=''' + Edit5.TextRadioGroup2.ItemIndex = 1 then.Lines[0] := 'select * from nali4ie where ID=''' + Edit6.TextRadioGroup2.ItemIndex = 2 then.Lines[0] := 'select * from nali4ie where CENA>=''' + Edit7.TextRadioGroup2.ItemIndex = 3 then.Lines[0] := 'select * from nali4ie where RAZMER=''' + Edit8.Text;.SQL := Memo1.Lines;.Open;;TForm1.RadioGroup3Click(Sender: TObject);.Enabled := False; Edit10.Enabled := False; Edit11.Enabled :=False;.Enabled := False;RadioGroup3.ItemIndex of

: Edit9.Enabled := True;

: begin.Enabled := True;.Enabled := True;;

: Edit12.Enabled := True;;;TForm1.Button14Click(Sender: TObject);.Close;RadioGroup3.ItemIndex = 0 then.Lines[0] := 'select * from DOGOVOR where DATADOGOVORA=''' + Edit9.TextRadioGroup3.ItemIndex = 1 then.Lines[0] := 'select * from DOGOVOR where (DATADOGOVORA>''' + Edit10.Text + ')and(DATADOGOVORA<''' + Edit11.Text + ')'RadioGroup3.ItemIndex = 2 then.Lines[0] := 'select * from DOGOVOR where (DATADOGOVORA>=''' +'01.'

+ Edit12.Text + ')' + 'and(DATADOGOVORA<=''' + '30.'

+ Edit12.Text + ')';.SQL := Memo1.Lines;.Open;;TForm1.Button19Click(Sender: TObject);.Enabled := true;.Close;.Lines[0] := 'select * from postavwik where id_otdel=1';.SQL := Memo1.Lines;.Open;;TForm1.Button20Click(Sender: TObject);.Enabled := true;.Close;.Lines[0] := 'select * from postavwik where id_otdel=2';.SQL := Memo1.Lines;.Open;;TForm1.Button21Click(Sender: TObject);.Enabled := true;.Close;.Lines[0] := 'select * from postavwik where id_otdel=3';.SQL := Memo1.Lines;.Open;;TForm1.Button18Click(Sender: TObject);.Enabled := true;.Close;.Lines[0] := 'select * from postavwik';.SQL := Memo1.Lines;.Open;;TForm1.Button17Click(Sender: TObject);summa :String;.Enabled := true;.Enabled := true;.Enabled := true;.Close;.SQL.Clear;.Lines[0] := 'select * from dogovor';.SQL := Memo2.Lines;.Open;.Last;:= IBQuery2.RecordCount +1;.Close;.SQL.Clear;

// else begin.SQL.Clear;.Lines.Clear;.Lines[0] := 'Insert into KORZINA(ID,NAIMENOVANIE,RAZMER,CENA,UPAKOVKA,GARANTSROK,ID_DOGOVOR,ID_OTDEL)' +

' values (' + IBQuery1.FieldByName('ID').AsString + ',''' +.FieldByName('NAIMENOVANIE').AsString + ''',''' +.FieldByName('RAZMER').AsString + ''',''' +.FieldByName('CENA').AsString + ''',''' +.FieldByName('UPAKOVKA').AsString + ''',''' +.FieldByName('GARANTSROK').AsString + ''',''' +(dogovor) + ''',''' +.FieldByName('ID_OTDEL').AsString + ''')';.SQL := Memo2.Lines;.Open;.Transaction.Commit;.Close;.Lines.Clear;

// end;.Close;.SQL.Clear;.Lines[0] := 'select SUM(CENA) from KORZINA';.SQL := Memo2.Lines;.Open;.Caption:= IBQuery2.FieldByName('SUM').AsString;.Close;.SQL.Clear;.Lines[0] :='select * from KORZINA';.SQL := Memo2.Lines;.Open;;TForm1.Button16Click(Sender: TObject);.SQL.Text :='delete from KORZINA' +

' where id = ' + IBQuery2.FieldByName('ID').AsString;.Open;.Transaction.Commit;.Close;.Lines.Clear;.Lines[0] := 'select SUM(CENA) from KORZINA';.SQL := Memo2.Lines;.Open;IBQuery2.FieldByName('SUM').AsString = '' then.Caption := '0' else.Caption:= IBQuery2.FieldByName('SUM').AsString;.Close;.Lines.Clear;.Lines[0] :='select * from KORZINA';.SQL := Memo2.Lines;.Open;.Last;IBQuery2.RecordCount = 0 then begin.Enabled := false;.Enabled := false;;;TForm1.Button22Click(Sender: TObject);.Enabled := false;.Enabled := false;.Enabled := false;.Caption := '0';.Close;.SQL.Clear;.SQL.Text :='DELETE FROM KORZINA';.Open;.Transaction.Commit;.Close;;TForm1.Button15Click(Sender: TObject);.Visible := true;.Edit4.Text := Form1.Label8.Caption;;TForm1.Button23Click(Sender: TObject);.Close;.Lines[0] := 'select * from TOVARY_DOGOVOR';.SQL := Memo1.Lines;.Open;;TForm1.Button24Click(Sender: TObject);.Close;.Lines[0] := 'select * from TOVARY_DOGOVOR where id_otdel = 1';.SQL := Memo1.Lines;.Open;;TForm1.Button25Click(Sender: TObject);.Close;.Lines[0] := 'select * from TOVARY_DOGOVOR where id_otdel = 2';.SQL := Memo1.Lines;.Open;;TForm1.Button26Click(Sender: TObject);.Close;.Lines[0] := 'select * from TOVARY_DOGOVOR where id_otdel = 3';.SQL := Memo1.Lines;.Open;;TForm1.Button27Click(Sender: TObject);Edit13.Text = '' then begin.MessageBox('Введите id договора','товары');;;.Enabled := true;.Close;.Lines.Clear;.Lines[0] := 'select * from TOVARY_DOGOVOR where ID_DOGOVOR= ' + Edit13.Text;.SQL := Memo1.Lines;.Open;;TForm1.Button28Click(Sender: TObject);t:TfrxMemoView;Edit13.Text = '' then begin.MessageBox('Введите id договора','товары');;;:= TfrxMemoView(Form8.frxReport1.FindObject('Memo10'));t <> nil then.memo.text := Edit13.Text;.Close;.SQL.Clear;.Lines.Clear;.Lines[0]:= 'select * from DOGOVOR where id= ' + Edit13.Text;.SQL := Memo1.Lines;.Open;:= TfrxMemoView(Form8.frxReport1.FindObject('Memo11'));t <> nil then.memo.text := IBQuery1.FieldByName('DATADOGOVORA').AsString;:= TfrxMemoView(Form8.frxReport1.FindObject('Memo14'));t <> nil then.memo.Text := IBQuery1.FieldByName('SUMMA').AsString;.SQL.Clear;.Lines.Clear;.Lines[0]:='select * from TOVARY_DOGOVOR where id_dogovor= ' + Edit13.Text;.SQL := Memo1.Lines;.Open;.Show;.frxReport1.ShowReport;;

end.

unit Unit2;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, unit1, IBDatabase, DB, IBCustomDataSet, IBQuery;= class(TForm): TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TButton;: TIBQuery;: TIBTransaction;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TLabel;: TCheckBox;: TButton;Button1Click(Sender: TObject);Button2Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm2;

{$R *.dfm}TForm2.Button1Click(Sender: TObject);check:string;.Close;.SQL.Clear;Form2.CheckBox1.Checked then check := '+' else check := '-';Flag thenIBQuery2 do.Text := 'execute procedure PROC_NAL(-1,''' +.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''',''' ++''','''+ Edit5.Text +''','''+ Edit6.Text +''',''' +.Text +''')';;IBQuery2 do.Text := 'execute procedure PROC_NAL('+ Form1.IBQuery1.FieldByName('ID').AsString +',''' +.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''',''' ++''','''+ Edit5.Text +''','''+ Edit6.Text +''',''' +.Text +''')';;;.Open;.Close;.IBQuery1.Close;.IBQuery1.Open;Flag1 then Form2.Close;;TForm2.Button2Click(Sender: TObject);.Close;;

end.

unit Unit3;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, unit1, StdCtrls;= class(TForm): TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TCheckBox;: TLabel;: TButton;: TEdit;: TButton;Button1Click(Sender: TObject);Button2Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm3;Unit2;

{$R *.dfm}TForm3.Button1Click(Sender: TObject);check:string;.IBQuery2.Close;.IBQuery2.SQL.Clear;Form3.CheckBox1.Checked then check := '+' else check := '-';Flag thenForm2.IBQuery2 do.Text := 'execute procedure PROC_PROD(-1,''' +.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''',''' ++''','''+ Edit5.Text +''','''+ Edit6.Text +''',''' +.Text +''')';;Form2.IBQuery2 do.Text := 'execute procedure PROC_PROD('+ Form1.IBQuery1.FieldByName('ID').AsString +',''' +.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''',''' ++''','''+ Edit5.Text +''','''+ Edit6.Text +''',''' +.Text +''')';;;.IBQuery2.Open;.IBQuery2.Close;.IBQuery1.Close;.IBQuery1.Open;Flag1 then Form3.Close;;TForm3.Button2Click(Sender: TObject);.Close;;

end.

unit Unit4;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, unit1;= class(TForm): TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TEdit;: TEdit;: TButton;: TButton;Button1Click(Sender: TObject);Button2Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm4;Unit2;

{$R *.dfm}TForm4.Button1Click(Sender: TObject);.IBQuery2.Close;.IBQuery2.SQL.Clear;Flag thenForm2.IBQuery2 do.Text := 'execute procedure PROC_DISC(-1,''' +.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''','''+.Text +''',''' +

'1' +''')';;Form2.IBQuery2 do.Text := 'execute procedure PROC_DISC('+ Form1.IBQuery1.FieldByName('ID').AsString +',''' +.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''','''+.Text +''',''' +

'1' +''')';;;.IBQuery2.Open;.IBQuery2.Close;.IBQuery1.Close;.IBQuery1.Open;Flag1 then Form4.Close;;TForm4.Button2Click(Sender: TObject);.Close;;

end.

unit Unit5;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls;= class(TForm): TEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TEdit;: TButton;: TButton;: TLabel;: TEdit;: TLabel;: TEdit;: TLabel;: TEdit;Button1Click(Sender: TObject);Button2Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm5;Unit2, Unit1;

{$R *.dfm}TForm5.Button1Click(Sender: TObject);.IBQuery2.Close;.IBQuery2.SQL.Clear;Form2.IBQuery2 do.Text :='execute procedure PROC_SHOP('+ Form1.IBQuery1.FieldByName('ID_SHOP').AsString +','''+.Text +''','''+Edit1.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''','''+.Text +''','''+ Edit5.Text +''','''+ Edit6.Text +''')';;.IBQuery2.Open;.IBQuery2.Close;.IBQuery1.Close;.IBQuery1.Open;Flag1 then Form5.Close;;TForm5.Button2Click(Sender: TObject);.Close;;

end.

unit Unit6;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, unit1;= class(TForm): TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TButton;: TButton;Button1Click(Sender: TObject);Button2Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm6;Unit2;

{$R *.dfm}TForm6.Button1Click(Sender: TObject);.IBQuery2.Close;.IBQuery2.SQL.Clear;Flag thenForm2.IBQuery2 do.Text := 'execute procedure PROC_OTDELY(-1,''' +.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''','''+.Text +''','''+ Edit6.Text +''',1)';;Form2.IBQuery2 do.Text := 'execute procedure PROC_OTDELY('+ Form1.IBQuery1.FieldByName('ID_OTDEL').AsString +',''' +.Text +''','''+ Edit2.Text +''','''+ Edit3.Text +''','''+.Text +''','''+ Edit6.Text +''',1)';;;.IBQuery2.Open;.IBQuery2.Close;.IBQuery1.Close;.IBQuery1.Open;Flag1 then Form6.Close;;TForm6.Button2Click(Sender: TObject);.Close;;

end.

unit Unit7;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, frxClass;= class(TForm): TEdit;: TEdit;: TEdit;: TEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TButton;: TButton;Button1Click(Sender: TObject);Button2Click(Sender: TObject);

{ Public declarations };: TForm7;Unit1, Unit9;

{$R *.dfm}TForm7.Button1Click(Sender: TObject);t:TfrxMemoView;Form1.IBQuery1 do begin;.Clear;.Text := 'execute procedure PROC_DOG(''' + Edit1.Text +''',''' + Edit2.Text + ''','''+ Edit3.Text +''','''+ Edit4.Text +''',1)';;.Commit;;.Text := 'select * from dogovor';;;

{==============}:= TfrxMemoView(Form9.frxReport1.FindObject('Memo5'));t <> nil then.memo.text := Edit2.Text;:= TfrxMemoView(Form9.frxReport1.FindObject('Memo7'));t <> nil then.memo.text := Edit4.Text;:= TfrxMemoView(Form9.frxReport1.FindObject('Memo9'));t <> nil then.memo.text := Edit1.Text;.IBQuery2.Last;:= TfrxMemoView(Form9.frxReport1.FindObject('Memo15'));t <> nil then.memo.text := IntToStr(Form1.IBQuery2.RecordCount);:= TfrxMemoView(Form9.frxReport1.FindObject('Memo3'));t <> nil then.memo.text := Form1.IBQuery2.FieldByName('ID_DOGOVOR').AsString;.IBQuery2.Close;.IBQuery2.SQL.Clear;.IBQuery2.SQL.Text := 'select * from SHOP';.IBQuery2.Open;:= TfrxMemoView(Form9.frxReport1.FindObject('Memo11'));t <> nil then.memo.text := Form1.IBQuery2.FieldByName('NAZVANIE').AsString;:= TfrxMemoView(Form9.frxReport1.FindObject('Memo13'));t <> nil then.memo.text := Form1.IBQuery2.FieldByName('BANK_S4ET').AsString;.Show;.frxReport1.ShowReport;

{==============}Form1.IBQuery2 do begin;.Clear;.Text := 'Insert into TOVARY_DOGOVOR(ID,NAIMENOVANIE,RAZMER,CENA,UPAKOVKA,GARANTSROK,ID_DOGOVOR,ID_OTDEL) ' +

'select * from KORZINA';;.Commit;;.Clear;.Text := 'DELETE FROM KORZINA';;.Commit;;;.Button15.Enabled := false;.Button22.Enabled := false;.Button16.Enabled := false;.Label8.Caption := '0';.Visible := false;;TForm7.Button2Click(Sender: TObject);.Visible := false;;

end.

unit Unit8;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, frxClass, frxDBSet, frxPreview, StdCtrls, frxExportXLS;= class(TForm): TfrxReport;: TfrxPreview;: TfrxDBDataset;: TfrxXLSExport;: TButton;Button1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm8;

{$R *.dfm}TForm8.Button1Click(Sender: TObject);.frxReport1.Export(Form8.frxXLSExport1);;

end.

unit Unit9;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, frxClass, frxPreview, frxExportRTF, frxDBSet;= class(TForm): TfrxDBDataset;: TfrxReport;: TfrxRTFExport;: TfrxPreview;: TButton;Button1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm9;

{$R *.dfm}TForm9.Button1Click(Sender: TObject);.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.      Базы данных. Конспект лекций.

.        Техническая документация по DELPHI7. Москва, 2007.

3.      IBexpert. Руководство пользователя.

4.      FastReport 4.0. Руководство пользователя с сайта www.fastreport.com

.        Правила оформления текстовых документов. ГОСТ № 7.32-2001.

.        Базы данных: Модели, Разработка, Реализация., Карпова Т., 2001.

.        Базы данных: Основы проектирования, использование., Малыкина М., 8 изд., 2003.

.        Введение в системы БД., Дейт К., 7 изд., 2001.

.        Теория и практика построения БД., Кренке Т., 8 изд. 2003.

.        Правила оформления отчёта. ГОСТ № 7.32-91.

Похожие работы на - Разработка информационно-программного комплекса для использования на IBM-совместимых ПК в качестве автоматизированного рабочего места обработки информации

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!