46624 (588406), страница 5

Файл №588406 46624 (Автоматизация предприятия) 5 страница46624 (588406) страница 52016-07-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

Таблица имеет следующие поля:

MZ_ID : Уникальный идентификатор

MZ_KAT_ID : Каталог

MZ_MAT_ID : Идентификатор заменяемого материала

MZ_NEW_MAT_ID : Ифентификатор нового материала

MZ_KOL : Количество заменяемого материала

MZ_MAX_KOL : Всего заменяемого материала

MZ_NEW_KOL : Количество нового материала

MZ_TYPE : Тип замены (0 - полная, 1 - частичная)

Процедура добавления замены:

CREATE OR REPLACE PROCEDURE "MATERIALS_ZAMEN_CREATE" (

in_kat_id IN sostav.sos_kat_id%TYPE,

in_mat_id IN materials_zamen.mz_mat_id%TYPE,

in_new_mat_id IN materials_zamen.mz_mat_id%TYPE,

in_old_kol IN materials_zamen.mz_kol%TYPE,

in_max_kol IN materials_zamen.mz_max_kol%TYPE,

in_new_kol IN materials_zamen.mz_new_kol%TYPE,

in_zamen_type IN materials_zamen.mz_type%TYPE

)

/*добавление записи по материалу к версии расчета*/

IS

out_id INTEGER;

mat_count INTEGER := 0;

summ_kol NUMBER := 0;

BEGIN

SELECT seq_material_zamen_mz_id.NEXTVAL

INTO out_id

FROM DUAL;

-- Ищем были ли произведены полные замены на данный материал

SELECT COUNT (*)

INTO mat_count

FROM materials_zamen

WHERE mz_mat_id = in_mat_id AND mz_type = 0

AND mz_kat_id = in_kat_id;

-- Если производится частичная замена и уже есть полная замена

IF (in_zamen_type IN (0, 1) AND mat_count > 0)

THEN

raise_application_error

(-20001,

'Вы не можете проводить замену, т.к. с данным материалом уже была произведена полная замена.'

);

END IF;

mat_count := 0;

-- Ищем были ли произведены частичные замены на данный материал

SELECT COUNT (*)

INTO mat_count

FROM materials_zamen

WHERE mz_mat_id = in_mat_id AND mz_type = 1

AND mz_kat_id = in_kat_id;

-- Если производится полная замена и уже есть частичные замены

IF (in_zamen_type = 0 AND mat_count > 0)

THEN

raise_application_error

(-20001,

'Вы не можете проводить полную замену, т.к. с данным материалом уже была произведена частичная замена.'

);

END IF;

--Проверяем, можно ли произвести частичную замену

IF (in_zamen_type = 1)

THEN

SELECT SUM (mz_kol)

INTO summ_kol

FROM materials_zamen

WHERE mz_mat_id = in_mat_id AND mz_type = 1 AND mz_kat_id = in_kat_id;

summ_kol := summ_kol + in_old_kol;

IF (summ_kol > in_max_kol)

THEN

raise_application_error

(-20001,

'Общее количество материалов при проведении частичных замен превышает максимальное количество.'

);

END IF;

END IF;

INSERT INTO materials_zamen

(mz_id, mz_kat_id, mz_mat_id, mz_new_mat_id, mz_kol,

mz_max_kol, mz_new_kol, mz_type

)

VALUES (out_id, in_kat_id, in_mat_id, in_new_mat_id, in_old_kol,

in_max_kol, in_new_kol, in_zamen_type

);

END materials_zamen_create;

Процедура удаления замены:

CREATE OR REPLACE PROCEDURE "MATERIALS_ZAMEN_DELETE" (

in_mz_id IN materials_zamen.mz_id%TYPE

)

/*удаление замены материала*/

IS

BEGIN

DELETE FROM materials_zamen

WHERE mz_id = in_mz_id;

END materials_zamen_delete;

2.4.4. Структура таблицы «закупок »

«Таблица закупок» содержит информацию о заменах (табл.4).

Табл.4

MC_ID : Идентификатор

MC_MAT_ID : Идентификатор материала

MC_MZ_ID : Идентификатор замены материала

MC_POST_ID : Идентификатор контрагента

MC_NAME : Наименование контрагента

MC_COUNT : Количество на закупку

MC_COST : Цена

MC_EDIZM : Еденица измерения

MC_KAT_ID : Каталог

Процедура добавления контрагента в таблицу закупок:

CREATE OR REPLACE PROCEDURE "MATERIALS_CONTRAGENT_CREATE" (

in_mc_kat_id IN materials_contragent.mc_kat_id%TYPE, in_mc_mat_id IN materials_contragent.mc_mat_id%TYPE, in_mc_mz_id IN materials_contragent.mc_kat_id%TYPE, in_mc_post_id IN materials_contragent.mc_post_id%TYPE, in_mc_name IN materials_contragent.mc_name%TYPE, in_mc_count IN materials_contragent.mc_kat_id%TYPE, in_mc_cost IN materials_contragent.mc_cost%TYPE, in_mc_edizm IN materials_contragent.mc_edizm%TYPE, out_id OUT materials_contragent.mc_id%TYPE

)

/*добавление записи по материалу к версии расчета*/

IS

BEGIN

SELECT seq_materials_contragent_mc_id.NEXTVAL

INTO out_id

FROM DUAL;

INSERT INTO materials_contragent

(mc_id, mc_mat_id, mc_mz_id, mc_post_id, mc_name,

mc_count, mc_cost, mc_edizm, mc_kat_id

)

VALUES (out_id, in_mc_mat_id, in_mc_mz_id, in_mc_post_id, in_mc_name,

in_mc_count, in_mc_cost, in_mc_edizm, in_mc_kat_id

);

END materials_contragent_create;

Процедура удаления контрагента в таблицу закупок:

CREATE OR REPLACE PROCEDURE "MATERIALS_CONTRAGENT_DELETE" (

in_mc_id IN materials_zamen.mz_id%TYPE

)

/*удаление контрагента*/

IS

BEGIN

DELETE FROM materials_contragent

WHERE mc_id = in_mc_id;

END materials_CONTRAGENT_delete;

2.5. Разработка модулей

2.5.1. Модуль Mat_Zamen.pas

Модуль Mat_Zamen.pas, представленный на рис.3, является главным модулем проекта, так как он содержит описание действий происходящих при загрузке программы, а также описание формы MainForm.

На форме расположены три таблицы TDBGridEh. Это таблицы материалов, замен и контрагентов, а также закладки и меню TMenuItem. На форме присутствуют компоненты TСlientDataSet, TdataSource.

Компонент TClientDataSet используется в клиентской части многозвенного распределенного приложения.

Компонент обеспечивает выполнение следующих основных функций:

• получение данных от удаленного сервера и передача ему сделанных изменений с использованием удаленного компонента-провайдера;

• представление набора данных при помощи локального буфера и поддержка основных операций, унаследованных от класса TDataSet;

• объединение записей набора данных при помощи агрегатных функций для получения суммарных данных;

• локальное сохранение набора данных в файле и последующее восстановление набора данных из файла;

• представление набора данных в формате XML [6].

Предком компонента TClientDataSet является класс TDataSet, поэтому TClientDataSet обладает таким же набором функций, что и обычный компонент, инкапсулирующий набор данных. Основное же отличие заключается в том, источник данных для него доступен только через удаленный компонент-провайдер. Это означает, что сохранение изменений и обновление набора данных осуществляется локально, без обращения к источнику данных [7].

Как и обычный компонент, компонент TClientDataSet может использоваться совместно с визуальными компонентами отображения данных. Для этого нужен компонент TDataSource.

На втором этапе разработки приложения баз данных необходимо перенести на форму и настроить компонент TDataSource. Он обеспечивает взаимодействие набора данных с компонентами отображения данных. Чаще всего одному набору данных соответствует один компонент TDataSource, хотя их может быть несколько.

Для настройки свойств компонента необходимо выполнить следующие действия.

1. Связать набор данных и компонент TDataSource. Для этого используется свойство DataSet компонента TDataSource, доступное через Инспектор объектов. Это указатель на экземпляр компонента доступа к данным.

В списке этого свойства в Инспекторе объектов перечислены все доступные компоненты наборов данных.

2. Переименовать компонент. Это не обязательное действие. Тем не менее желательно присваивать компонентам осмысленные имена, соответствующие названиям связанных наборов данных [7].

Компонент меню, представленный на рис. 4, выполняет следущие процедуры:

  • Ввод / удаление контрагента;

  • Ввод / удаление замены;

  • Печать отчета

Рис. 4. Главное меню

Процедуры ввода (TFRep_Mats.N5Click) и удаления (TFRep_Mats.N14Click) контрагентов.

procedure TFRep_Mats.N5Click(Sender: TObject);

begin

IF not assigned(scM4_ContrAgents) then

initscM4_ContrAgents(SharedConnection.ParentConnection);

ContrAgentsGet_Sprav(Self, IM4ContrAgentsDisp(IDispatch(scM4_ContrAgents.AppServer)),

(Screen.DesktopHeight div 2) - (height div 2),

(Screen.DesktopWidth div 2) - (width div 2),

'', '', '',

ContrAgent_Name,

ContrAgent_Code);

if (DBGEh_Mats.Focused = True) and (ContrAgent_Name <> '') Then

Mat_Contr_Add(Application, SharedConnection, Kat_Id, CDS_Mats.FieldByName('MD_MR_ID').AsInteger,

0, 0, ContrAgent_Code, ContrAgent_Name)

else if (DBGEh_Zamen.Focused = True) and (ContrAgent_Name <> '') then

Mat_Contr_Add(Application, SharedConnection, Kat_Id, CDS_Zamen.FieldByName('MZ_MAT_ID').AsInteger,

CDS_Zamen.FieldByName('MZ_ID').AsInteger, 1, ContrAgent_Code, ContrAgent_Name);

Contr_Refresh;

end;

procedure TFRep_Mats.N14Click(Sender: TObject);

begin

V.Mat_Zamen_Contr_Del(CDS_Contr.FieldByName('MC_ID').AsInteger);

Contr_Refresh;

end;

Процедуры ввода и удаления замен:

procedure TFRep_Mats.N13Click(Sender: TObject);

begin

Enter_Zamen(Application, SharedConnection,

Kat_Id,

CDS_Mats.FieldByName('MD_MR_ID').AsInteger,

CDS_Mats.FieldByName('GM_ID').AsInteger,

CDS_Mats.FieldByName('MAT_OKP').AsInteger,

CDS_Mats.FieldByName('MR_NAME').AsString,

CDS_Mats.FieldByName('POTREB').AsString,

CDS_Mats.FieldByName('GM_NAME').AsString);

Zamen_Refresh;

end;

procedure TFRep_Mats.N15Click(Sender: TObject);

begin

V.Mat_Zamen_Delete(CDS_Zamen.FieldByName('mz_id').AsInteger);

Zamen_Refresh;

Contr_Refresh;

end;

Печать отчета

procedure TFRep_Mats.N8Click(Sender: TObject);

begin

Mat_Zamen_Rep(Application, SharedConnection, Kat_Id, 1, Kat_ZCO_NAME, Kat_Name);

end;

2.5.2. Модуль Mat_Zamen_New.pas

На форму модуля Mat_Zamen_New вынесены следующие компоненты: TDBGridEh, TbitBtn, TdataSource, TclientDataSet, Tedit, TradioGroup (рис.5).

Рис.5. Модуль Mat_Zamen_New

TDBGridEh – таблица в которую заносятся данные , TbitBtn – кнопки ввода замены и отмены, TdataSource и TclientDataSet – для соединения с базой данных, Tedit – строки с материалами, TradioGroup – выбор полной или частичной замены.

Процедура выбора типа замены:

rocedure TFNew_Zamen.RGClick(Sender: TObject);

begin

if RG.ItemIndex = 1 then

begin

DBN_OldKol.Enabled := True;

end

else if RG.ItemIndex = 0 then

begin

DBN_OldKol.Enabled := False;

DBN_OldKol.Value := Old_Kol;

end;

Zamen_Type := RG.ItemIndex;

end;

Процедура ввода замены:

procedure TFNew_Zamen.BitBtn1Click(Sender: TObject);

var Old, Max, New : WideString;

begin

Old := FloatToStr(DBN_OldKol.Value);

Max := FloatToStr(Max_Kol);

New := FloatToStr(DBN_NewKol.Value);

V.Mat_Zamen_Create(Kat_Id,

Mat_Id,

CDS_Mats.FieldByName('MATERIAL_ID').AsInteger,

Old,

Max,

New,

Zamen_Type);

Close;end;

2.5.2. Модуль Mat_Zamen_CNTR_Add.pas

На форме (рис. 6) находятся следующие компоненты: Tedit, TDBNumberEditEh, TspeedButton, TclientDataSet, TdataSource, TcomboBox.

Tedit – наименование контрагента, TDBNumberEditEh – количество закупаемого материала и цена, TcomboBox – выпадающее меню выбора едениц измерения, TspeedButton – рабочие кнопки , TclientDataSet и TdataSource – связь с базой данных.

Рис.6. Модуль Mat_Zamen_CNTR_Add

2.5.2. Модуль формирования очета

На форму (Рис.7 ) вынесена таблица, меню и компоненты связи с базой данных.

После заполнения таблицы, выбрав из меню строку «печать отчета» появится окно компонента FastReport (Рис.8). Этот компонент отвечает за печать отчета.

Рис.7. Таблица закупок

Рис.8. Отчет FastReport

  1. Технологическая часть

    1. Требования к аппаратному и программному обеспечению

  • Требования к аппаратному обеспечению:

- Процессор Pentium 800 МГц;

- Объем оперативной памяти 128 Мбайт;

- Объем жесткого диска не менее 5 Гбайт;

- Монитор SVGA, клавиатура и манипулятор мышь.

  • Требования к программному обеспечению:

- программа должна работать под управлением операционной системы Microsoft Windows 98/ME/2000/XP.

    1. Установка подсистемы

Вычислительная среда поставляется на диске CD-R, емкостью 700 Мб. Установка производится в несколько этапов:

  • Проверить соответствие оборудования, на которое предполагается произвести установку, минимальным требованиям для работы подсистемы;

  • Вставить компакт-диск с программой в CD-ROM;

  • Скопировать каталог K_T_Base и все его содержимое на жесткий диск, с которого предполагается производить запуск программы, в каталог C:\ K_T_Base;

  • Для удобства запуска создать на рабочем столе операционной системы значок «K_T_Base», ссылающийся на программу C:\ K_T_Base \ K_T_Base.exe, рабочий каталог C:\ K_T_Base;

  • Создать в главном меню элемент, ссылающийся на программу C:\ K_T_Base \ K_T_Base.exe;

  • Произвести запуск программы;

  • Установка завершена.



    1. Руководство администратора

Для функционирования подсистемы необходимо наличие специального ПО:

1. На сервере баз данных необходимо установить серверную часть Oracle.

2. Для сервера приложений необходимо установить: клиентскую часть Oracle – для связи с сервером Oracle, Borland Socket Server – для прослушивания порта, к которому будет происходить подключение и Borland Database Engine – для соединения сервера приложений с клиентской частью Oracle.

3. Также необходимо зарегистрировать сервер приложений, запустив его.

Характеристики

Тип файла
Документ
Размер
25,78 Mb
Учебное заведение
Неизвестно

Список файлов ВКР

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7027
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее