Автор: Пользователь скрыл имя, 28 Февраля 2013 в 12:24, дипломная работа
Основной задачей предприятия по организации материально-техническим обеспечением является своевременное, бесперебойное и комплексное снабжение производства необходимой компьютерной техникой для осуществления автоматизации производственных процессов. Задачей отдела информационных технологий является своевременное и полное обеспечение всех подразделений завода вычислительной техникой.
ВВЕДЕНИЕ 5
1 ОБЩАЯ ЧАСТЬ 7
1.1 Цель разработки 7
1.2 Анализ использования разработки 7
1.3 Анализ методов решения 8
1.4 Анализ средств автоматизации 9
2 Специальная часть 15
2.1 Постановка задачи 15
2.2 Описание алгоритма 18
2.3 Текст программы с описанием 20
2.4 Описание процесса отладки 21
2.5 Инструкция пользователя 22
3 Экономическая часть 29
3.1 Расчет себестоимости программного продукта «Модуль учета поставок компьютеров, оргтехники и комплектующих» 29
4 Охрана труда и Техника Безопасности 40
4.1 Анализ потенциально-опасных и вредных факторов 40
4.2 Техника безопасности 40
4.3 Эргономика 42
ЗАКЛЮЧЕНИЕ 45
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 46
ПРИЛОЖЕНИЕ 1 47
end;
ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ 1
ed_link_dogovora.Items.Clear;
ed_link_dogovora.Items.
end;
procedure TPostavkiForm.
begin
end;
// Заполнение выпадающих списков
procedure TPostavkiForm.FillCombos;
var
LO: TListObject;
begin
// Для режима создания
add_link_nomenklatura.Items.
add_link_nomenklatura.Items.
ListQuery.SQL.Text := 'SELECT id, naimeninovanie FROM nomenklatura order by naimeninovanie;';
ListQuery.Execute;
ListQuery.First;
while not ListQuery.Eof do
begin
LO := TListObject.Create;
LO.name := ListQuery.FieldByName('
LO.id := ListQuery.FieldByName('id').
add_link_nomenklatura.Items.
ListQuery.Next;
end;
add_link_nomenklatura.Items.
add_link_kontragenti.Items.
add_link_kontragenti.Items.
ListQuery.SQL.Text := 'SELECT id, naimeninovanie FROM kontragenti order by naimeninovanie;';
ListQuery.Execute;
ListQuery.First;
while not ListQuery.Eof do
begin
ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ 1
LO := TListObject.Create;
LO.name := ListQuery.FieldByName('
LO.id := ListQuery.FieldByName('id').
add_link_kontragenti.Items.
ListQuery.Next;
end;
add_link_kontragenti.Items.
add_link_dogovora.Items.
add_link_dogovora.Items.Clear;
ListQuery.SQL.Text := 'SELECT id, data_dogovora || '' / № договора '' || nomer_dogovora as dogovor FROM dogovora order by dogovor;';
ListQuery.Execute;
ListQuery.First;
while not ListQuery.Eof do
begin
LO := TListObject.Create;
LO.name := ListQuery.FieldByName('
LO.id := ListQuery.FieldByName('id').
add_link_dogovora.Items.
ListQuery.Next;
end;
add_link_dogovora.Items.
// Для режима правки
ed_link_nomenklatura.Items.
ed_link_nomenklatura.Items.
ListQuery.SQL.Text := 'SELECT id, naimeninovanie FROM nomenklatura order by naimeninovanie;';
ListQuery.Execute;
ListQuery.First;
while not ListQuery.Eof do
begin
LO := TListObject.Create;
LO.name := ListQuery.FieldByName('
LO.id := ListQuery.FieldByName('id').
ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ 1
ed_link_nomenklatura.Items.
ListQuery.Next;
end;
ed_link_nomenklatura.Items.
ed_link_kontragenti.Items.
ed_link_kontragenti.Items.
ListQuery.SQL.Text := 'SELECT id, naimeninovanie FROM kontragenti order by naimeninovanie;';
ListQuery.Execute;
ListQuery.First;
while not ListQuery.Eof do
begin
LO := TListObject.Create;
LO.name := ListQuery.FieldByName('
LO.id := ListQuery.FieldByName('id').
ed_link_kontragenti.Items.
ListQuery.Next;
end;
ed_link_kontragenti.Items.
ed_link_dogovora.Items.
ed_link_dogovora.Items.Clear;
ListQuery.SQL.Text := 'SELECT id, data_dogovora || '' / № договора '' || nomer_dogovora as dogovor FROM dogovora order by dogovor;';
ListQuery.Execute;
ListQuery.First;
while not ListQuery.Eof do
begin
LO := TListObject.Create;
LO.name := ListQuery.FieldByName('
LO.id := ListQuery.FieldByName('id').
ed_link_dogovora.Items.
ListQuery.Next;
end;
ed_link_dogovora.Items.
ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ 1
end;
// Производит поиск столбца сетки DBGrid по имени поля БД
function TPostavkiForm.
var
i: Integer;
begin
result := Nil;
for i := 0 to DBGridEh1.Columns.Count - 1 do
begin
// Если название поля совпадает с переданному функции тексту, выходим, возвращая ссылку на столбец
if DBGridEh1.Columns[i].FieldName = Field then
begin
result := DBGridEh1.Columns[i];
break;
end;
end;
end;
// Заполнение сетки выборкой из БД
procedure TPostavkiForm.FillGrid;
begin
// Создаем скрипт SQL на
основе выборки, текущего
ReadQuery.SQL.Text := Format('%s ORDER BY %s %s', [SQL, ORDER, SORT]);
ReadQuery.Execute;
end;
// Обновление существующей строки в БД
procedure TPostavkiForm.Button2Click(
begin
editquery.sql.text:='update postavki set cena=:cena where id=:id';
editquery.ParamByName('id').
editquery.ParamByName('cena').
editquery.Execute;
editquery.SQL.Text:='update postavki set kol_vo=:kol_vo where id=:id';
ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ 1
editquery.ParamByName('id').
editquery.ParamByName('kol_vo'
editquery.Execute;
editquery.SQL.Text:='update postavki set primechanie=:primechanie where id=:id';
editquery.ParamByName('id').
editquery.ParamByName('
editquery.Execute;
editquery.sql.text:='update postavki set inv_nomer=:inv_nomer where id=:id';
editquery.ParamByName('id').
editquery.ParamByName('inv_
editquery.Execute;
editquery.sql.text:='update postavki set data_postavki=:data_postavki where id=:id';
editquery.ParamByName('id').
editquery.ParamByName('data_
editquery.Execute;
editquery.sql.text:='update postavki set data_platezha=:data_platezha where id=:id';
editquery.ParamByName('id').
editquery.ParamByName('data_
editquery.Execute;
editquery.sql.text:='update postavki set link_nomenklatura=:link_
EditQuery.ParamByName('link_
TListObject(ed_link_
editquery.Execute;
editquery.sql.text:='update postavki set link_kontragenti=:link_
EditQuery.ParamByName('link_
TListObject(ed_link_
editquery.Execute;
editquery.sql.text:='update postavki set link_dogovora=:link_dogovora where id=:id';
EditQuery.ParamByName('link_
TListObject(ed_link_dogovora.
editquery.Execute;
readquery.Refresh
end;
ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ 1
// Удаление выбраной строки с проверкой ее использования в других таблицах
procedure TPostavkiForm.Button3Click(
var
ok: boolean;
begin
// Проверка на пустой ID
if Trim(ed_id.Text) = '' then
begin
ShowMessage('Строка не выбрана!');
exit;
end;
if MessageDLG('Действительно удалить выбранную строку?', mtConfirmation,
[mbYes, mbNo], 0) = idYes then
begin
// Вызов хранимой процедуры удаления
EditQuery.SQL.Text := 'delete from postavki where id = :id';
EditQuery.ParamByName('id').
ok := true;
try
EditQuery.Execute;
except
ok := false;
end;
if ok then
begin
// Обновление текущей выборки из таблицы
ReadQuery.Refresh;
FillDataForUpdate;
end
else
begin
ShowMessage('Произошла неизвестная ошибка.');
end;
ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ 1
end;
end;
// Вставка (создание) новой записи в БД
procedure TPostavkiForm.Button4Click(
var
ok: boolean;
begin
// Проверям, заполнены ли обязательные поля ввода
if (Trim(add_cena.Text) <> '') then
begin
// Вызываем хранимую процедуру вставки новой записи (та же функция, что и для обновления, но с пустым ID)
// Функция возвращает ID создаваемой записи, генерированный силами самой СУБД
EditQuery.SQL.Text :=
'INSERT INTO postavki( '+
' link_nomenklatura, link_kontragenti, link_dogovora, cena, ' +
' kol_vo, inv_nomer, data_platezha, data_postavki, primechanie) ' +
'VALUES (:link_nomenklatura, :link_kontragenti, :link_dogovora, :cena, :kol_vo, ' +
' :inv_nomer, :data_platezha, :data_postavki,:primechanie); ' ;
EditQuery.ParamByName('inv_
EditQuery.ParamByName('
EditQuery.ParamByName('kol_vo'
EditQuery.ParamByName('data_
EditQuery.ParamByName('data_
EditQuery.ParamByName('link_
TListObject(add_link_
EditQuery.ParamByName('link_
TListObject(add_link_
EditQuery.ParamByName('link_
TListObject(add_link_dogovora.
EditQuery.ParamByName('cena').
ok := false;
try
ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ 1
EditQuery.Execute;
ok := true;
except
on E: Exception do
begin
ShowMessage('Произошла неизвестная ошибка: ' + E.Message);
ok := false;
end;
end;
if ok then
begin
// Обновление текущей выборки из БД, отображаемой DbGrid
ReadQuery.Refresh;
FillDataForUpdate;
FillDataForAdd;
end;
end
else
begin
ShowMessage('Проверьте заполнение полей ввода!');
end;
end;
procedure TPostavkiForm.CheckBox1Click(
begin
if checkbox1.Checked=true then ed_data_platezha.DateMode:=
end;
procedure TPostavkiForm.CheckBox2Click(
begin
if checkbox2.Checked=true then ed_data_postavki.DateMode:=
end;
procedure TPostavkiForm.CheckBox3Click(
ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ 1
begin
if checkbox3.Checked=true then add_data_platezha.DateMode:=
end;
procedure TPostavkiForm.CheckBox4Click(
begin
if checkbox4.Checked=true then add_data_postavki.DateMode:=
end;
procedure TPostavkiForm.
begin
// Перечитать значение полей ввода на основе текущей строки выборки
FillDataForUpdate;
end;
// Смена сортировки по щелчку на заголовке столбца DbGrid
procedure TPostavkiForm.
ACol: Integer; Column: TColumnEh);
begin
if ORDER = Column.FieldName then
begin
// Столбец уже тот, что выбран ранее - меняем только порядок
if SORT = 'ASC' then
begin
SORT := 'DESC';
Column.Title.SortMarker := smDownEh;
end
else
begin
SORT := 'ASC';
Column.Title.SortMarker := smUpEh;
end;
end
// Столбец другой - меняем поле БД и порядок ставим по-умолчанию
ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ 1
else
begin
ORDER := Column.FieldName;
SORT := 'ASC';
Column.Title.SortMarker := smUpEh;
end;
FillGrid;
end;
// Заполнение полей ввода режима редактирования текущей строкой
procedure TPostavkiForm.
begin
ed_id.Text := ReadQuery.FieldByName('id').
ed_inv_nomer.Text := ReadQuery.FieldByName('inv_
ed_cena.Text := ReadQuery.FieldByName('cena').
ed_primechanie.Text := ReadQuery.FieldByName('
ed_data_postavki.Date := ReadQuery.FieldByName('data_
ed_data_platezha.Date := ReadQuery.FieldByName('data_
ed_kol_vo.Text := ReadQuery.FieldByName('kol_vo'
if ReadQuery.FieldByName('link_
ed_link_nomenklatura.ItemIndex := -1 else
ed_link_nomenklatura.ItemIndex := LBItemByID(ed_link_
//
if ReadQuery.FieldByName('link_
ed_link_kontragenti.ItemIndex := -1 else
ed_link_kontragenti.ItemIndex := LBItemByID(ed_link_
//
if ReadQuery.FieldByName('link_
ed_link_dogovora.ItemIndex := -1 else
ed_link_dogovora.ItemIndex := LBItemByID(ed_link_dogovora,
ReadQuery.FieldByName('link_
end;
// Заполнение полей ввода режима создания
ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ 1
procedure TPostavkiForm.FillDataForAdd;
begin
add_inv_nomer.Text := '';
// add_c_number.Text := '';
// add_reg_number.Text := '';
// add_date_from.Date := Now;
// add_date_to.Date := Now;
// add_docdate.Date := Now;
// add_unlim.Checked := False;
// add_scanfile.Text := '';
//
// add_resp.ItemIndex := -1;
// add_part_resp.ItemIndex := -1;
//
// add_partner.ItemIndex := -1;
end;
// События при активации формы (окна)
procedure TPostavkiForm.FormActivate(
var
Col: TColumnEh;
begin
onActivate := nil;
PageControl1.ActivePageIndex := 0;
Col := Self.FindColumnByField(ORDER);
FillCombos;
// Сортировка по-умолчанию и показ выборки
DBGridEh1.OnTitleBtnClick(Col, Col.Index, Col);
end;
procedure TPostavkiForm.FormDestroy(
begin
onDestroy := nil;
NullCombos;
ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ 1
end;
procedure TPostavkiForm.N2Click(Sender: TObject);
begin
// Выходи из окна
Close;
end;
procedure TPostavkiForm.N4Click(Sender: TObject);
begin
Report.ShowReport(true); //Предросмотр
end;
procedure TPostavkiForm.
begin
// Диалог поиска
DBGridEhFindDlgs.
end;
procedure TPostavkiForm.
begin
// Заполнение выборки
FillGrid;
end;
end.
ПРИЛОЖЕНИЕ 2
Связь модулей.
Unit 5
Unit 6 1
Unit 4
Unit 3
Unit 2
Unit 1
Информация о работе Модуль учета поставок компьютеров, оргтехнике и комплектующих