Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Копия Poyasnitelnaya_zapiska1.doc
Скачиваний:
6
Добавлен:
19.11.2018
Размер:
567.81 Кб
Скачать
    1. Реферат

Авторы: Зайцев Роман Александрович

Правообладатель: Зайцев Роман Александрович

Программа: Автоматизация учета складом товароматериальных ценностей предприятия ООО «Стандарт -Энерго».

Аннотация: Автоматизация учета складом представляет собой документационную систему по учету поступления товаров и материалов необходимые для ведения хозяйственной деятельности предприятия и оказанию услуг по своему направлению, а так же формирование документа (карточка товара) на регистрацию материалов на складе, отпуск материалов со склада, информацию о которых заведующий может просмотреть в таблице «Товар», что и является основной направленностью решения с помощью данного ПС.

Тип ЭВМ: IBM PC

Язык: C++

ОС: Windows XP Professional SP 3

      1. Объём программы: 4 Кб

    1. Приложение б

  1. «Создание таблиц»

Листинг 1.1 Код создания домена D_INDEXTYPE

CREATE DOMAIN D_INDEXTYPE AS

INTEGER

NOT NULL;

Листинг 1.2. Таблица STAFF

CREATE GENERATOR GEN_STAFF_ID;

CREATE TABLE STAFF (

ID_S D_INDEXTYPE NOT NULL /* D_INDEXTYPE = INTEGER NOT NULL */,

LAST_NAME D_TXT /* D_TXT = VARCHAR(50) NOT NULL */,

FIRST_NAME D_TXT /* D_TXT = VARCHAR(50) NOT NULL */,

PATRONYMIC D_TXT /* D_TXT = VARCHAR(50) NOT NULL */,

FIO D_TXT /* D_TXT = VARCHAR(50) NOT NULL */,

PASSPORT INTEGER

);

Листинг 1.3. Код создания первичного ключа для таблицы STAFF

ALTER TABLE STAFF ADD CONSTRAINT PK_STAFF PRIMARY KEY (ID_S);

Листинг 1.4. Код создания генератора GEN_STAFF_ID

CREATE SEQUENCE GEN_STAFF_ID;

ALTER SEQUENCE GEN_STAFF_ID RESTART WITH 4;

Листинг 1.5 Создание триггера для таблицы STAFF

AS

BEGIN

IF (NEW.ID_S IS NULL) THEN

NEW.ID_S = GEN_ID(GEN_STAFF_ID,1);

END

Листинг 1.6. Создание хранимой процедуры STAFF_INS

BEGIN

fio = last_name || ' ' || substring(first_name from 1 for 1) || '. ' || substring(patronymic from 1 for 1) || '.';

INSERT INTO staff (

id_s,

last_name,

first_name,

patronymic,

fio,

passport)

VALUES (

null,

:last_name,

:first_name,

:patronymic,

:fio,

:passport);

END

Листинг 1.8. Создание хранимой процедуры STAFF_UPD

BEGIN

fio = last_name || ' ' || substring(first_name from 1 for 1) || '. ' || substring(patronymic from 1 for 1) || '.';

UPDATE staff

SET last_name = :last_name,

first_name = :first_name,

patronymic = :patronymic,

fio = :fio,

passport = :passport

WHERE (id_s = :id_s);

END

Листинг 1.9. Создание хранимой STAFF_DEL

BEGIN

DELETE FROM staff

WHERE (id_s = :id_s);

END

  1. «Создание Windows приложения»

Листинг 2.1. Реализация фильтрации по полю LAST_NAME LIKE, таблицы STAFF

void __fastcall TForm1::Edit10Change(TObject *Sender)

{

DataModule2->STAFF->Active=false;

DataModule2->STAFF->Filtered=false;

DataModule2->STAFF->Filter="LAST_NAME LIKE '"+Form1->Edit10->Text+"%'";

DataModule2->STAFF->Active=true;

DataModule2->STAFF->Filtered=true;}

Листинг 2.2. Реализация поиска по таблице STAFF

void __fastcall TForm1::Button29Click(TObject *Sender)

{

TLocateOptions LO;

DataModule2->STAFF->Locate("LAST_NAME",Form1->Edit9->Text,LO<<loPartialKey<<loCaseInsensitive);

}

Листинг 2.3. Реализация добавления данных в таблицу STAFF

void __fastcall TForm19::Button1Click(TObject *Sender)

{

try {

DataModule2->STAFF_INS->ParamByName("LAST_NAME")->AsString=Form19->Edit2->Text;

DataModule2->STAFF_INS->ParamByName("FIRST_NAME")->AsString=Form19->Edit1->Text;

DataModule2->STAFF_INS->ParamByName("PATRONYMIC")->AsString=Form19->Edit3->Text;

DataModule2->STAFF_INS->ParamByName("PASSPORT")->AsString=Form19->Edit4->Text;

DataModule2->STAFF_INS->Prepare();

DataModule2->STAFF_INS->ExecProc();

DataModule2->STAFF->Active=false;

DataModule2->STAFF->Active=true;

ShowMessage("Запись добавлена!");

Close();}

catch (EIBInterBaseError *x)

{

ShowMessage(x->Message);

} }

Листинг 2.4. Реализация редактирования данных в таблице STAFF

void __fastcall TForm20::Button1Click(TObject *Sender)

{

try {

DataModule2->STAFF_UPD->ParamByName("ID_S")->AsString=Form20->Edit5->Text;

DataModule2->STAFF_UPD->ParamByName("LAST_NAME")->AsString=Form20->Edit2->Text;

DataModule2->STAFF_UPD->ParamByName("FIRST_NAME")->AsString=Form20->Edit1->Text;

DataModule2->STAFF_UPD->ParamByName("PATRONYMIC")->AsString=Form20->Edit3->Text;

DataModule2->STAFF_UPD->ParamByName("PASSPORT")->AsString=Form20->Edit4->Text;

DataModule2->STAFF_UPD->Prepare();

DataModule2->STAFF_UPD->ExecProc();

DataModule2->STAFF->Active=false;

DataModule2->STAFF->Active=true;

ShowMessage("Запись отредактированна!");

Close();

}

catch (EIBInterBaseError *x)

{

ShowMessage(x->Message);

} }

Листинг 2.5. Реализация удаления данных из таблицы STAFF

void __fastcall TForm21::Button1Click(TObject *Sender)

{

try {

DataModule2->STAFF_DEL->ParamByName("ID_S")->AsString=Form21->Edit1->Text;

DataModule2->STAFF_DEL->Prepare();

DataModule2->STAFF_DEL->ExecProc();

DataModule2->STAFF->Active=false;

DataModule2->STAFF->Active=true;

ShowMessage("Запись удалена!");

Close();

}

catch (EIBInterBaseError *x)

{ ShowMessage(x->Message);}

}

Листинг 26. Реализация отчета по продуктам

void __fastcall TForm1::Button35Click(TObject *Sender)

{

Form22->QuickRep1->PreviewModal();}

31