Диплом: Автоматизация и обеспечение информационной безопасности управления проектами ООО «АРТЭКС»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
115
procedure TForm_proekt.view_document;
var buf_zapros,buf_kav : string;
begin
if form_proekt.DBGrid_proekt.DataSource.DataSet.RecordCount <> 0 then
begin
buf_kav := '''';
buf_zapros := 'SELECT document.name_file as Название_файла '
+' FROM proekt INNER JOIN document ON proekt.id_proekt = document.id_proekt '
+' WHERE proekt.id_proekt =
'+form_proekt.DBGrid_proekt.DataSource.DataSet.FieldByName('id_proekt').AsString
+' ORDER BY document.name_file;';
datamodule1.Query_document.Close;
datamodule1.Query_document.SQL.Clear;
datamodule1.Query_document.SQL.Text := buf_zapros;
datamodule1.Query_document.Open;
view_dbgrid_document;
end
else
datamodule1.Query_document.Close;
end;
procedure TForm_proekt.FormCreate(Sender: TObject);
begin
clear_label;
end;
procedure TForm_proekt.Button_add_documentClick(Sender: TObject);
var run_procedure : boolean;
begin
clear_label;
run_procedure := proverka;
if run_procedure then
if form_proekt.Label_name_proekt.Caption <> form_proekt.Edit_name_proekt.Text then
begin
add_proekt;
form_proekt.Label_name_proekt.Caption := form_proekt.Edit_name_proekt.Text;
add_document;
view_document;
end
else
begin
update_proekt;
form_proekt.Label_name_proekt.Caption := form_proekt.Edit_name_proekt.Text;
add_document;
view_document;
end;
end;
procedure TForm_proekt.add_document;
var buf_zapros,filename : string;
i : integer;
// savedialog : TsaveDialog;
begin
//узнаю имя файла
// savedialog := TSavedialog.Create(self);
opendialog.Title := 'Сохранение документа';
if opendialog.Execute then
begin
filename := opendialog.FileName;
for i := 0 to opendialog.Files.Count-1 do
begin
add_file(opendialog.Files.Strings[i]);
116
end;
end
else
showmessage('Сохранение отменено');
end;
procedure TForm_proekt.add_file(name_file : string);
var
buf_zapros, buf_kav : string;
buf_name : string;
buf_text :string;
put : string;
begin
//присваиваю начальные значения
buf_kav := '''';
put := put_dir+form_proekt.Label_id.Caption+'\';
//удаляю даныне о файле из БД
buf_zapros := 'DELETE FROM document WHERE name_file =
'+buf_kav+extractfilename(name_file)+buf_kav
+' AND id_proekt = '+form_proekt.Label_id.Caption+';';
datamodule1.Query_buf.Close;
datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_Zapros;
datamodule1.Query_buf.ExecSQL;
datamodule1.Query_buf.Close;
//удаляю файлы даже если их нет
buf_name := put+ExtractFileName(name_file);
deletefile(buf_name);
//создаю папку, если вдруг ее нет
CreateDir(put);
//копирую папку в файл
if copyfile(pchar(name_file),pchar(buf_name),True) then
begin
//добавляю данные в БД
buf_zapros := 'INSERT INTO document (name_file,id_proekt) VALUES ('
+buf_kav+ExtractFileName(name_file)+buf_kav+','
+form_proekt.Label_id.Caption+');';
datamodule1.Query_buf.Close;
datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros;
datamodule1.Query_buf.ExecSQL;
datamodule1.Query_buf.Close;
end
else
begin
buf_text :='Ошибка: файл '+name_file+' не был скопирован.';
buf_text := IntToStr(GetLastError);
ShowMessage(buf_text);
end;
end;
procedure TForm_proekt.Button_add_oborudovanieClick(Sender: TObject);
var run_procedure : boolean;
begin
clear_label;
run_procedure := proverka;
if run_procedure then
if form_proekt.Label_id.Caption = '0' then
117
begin
add_proekt;
Form_oborudovanie_proekt.ShowModal;
end
else
begin
update_proekt;
Form_oborudovanie_proekt.ShowModal;
end;
end;
procedure TForm_proekt.Button_add_proektClick(Sender: TObject);
var run_procedure : boolean;
begin
clear_label;
run_procedure := proverka();
//првоерка закончена
if run_procedure then
begin
if form_proekt.Button_add_proekt.Caption = 'Новый проект' then
if form_proekt.Label_id.Caption = '0' then
add_proekt
else
update_proekt;
if form_proekt.Button_add_proekt.Caption = 'Исправить проект' then
update_proekt;
//чищу поля ввода
form_proekt.Edit_name_proekt.Text := '';
form_proekt.Edit_klient.Text := '';
form_proekt.Edit_adres.Text := '';
form_proekt.Label_id.Caption := '0';
end;
end;
function proverka : boolean;
var buf_zapros : string;
buf_kav : string;
run_procedure : boolean;
begin
//присвыаиваю начальыне значеня
run_procedure := True;
buf_kav := '''';
//првоеряю данные
//првоеряю есть такой преокт уже или нет
if length(Form_proekt.Edit_name_proekt.Text) = 0 then
begin
run_procedure := False;
form_proekt.Label11.Caption := 'Не введено название проекта';
end
else
if form_proekt.Edit_name_proekt.Text <> form_proekt.Label_name_proekt.Caption then
begin
buf_zapros := 'SELECT name_proekt FROM proekt WHERE name_proekt =
'+buf_kav+form_proekt.Edit_name_proekt.Text+buf_kav+';';
datamodule1.Query_buf.Close;
datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros;
118
datamodule1.Query_buf.Open;
if datamodule1.Query_buf.RecordCount <> 0 then
begin
run_procedure := False;
form_proekt.Label11.Caption := 'Такой проект уже есть в БД';
end;
datamodule1.Query_buf.Close;
end;
if length(form_proekt.Edit_klient.Text) = 0 then
begin
run_procedure := False;
form_proekt.Label14.Caption := 'Не введены данные клиента';
end;
if length(form_proekt.Edit_adres.Text) = 0 then
begin
run_procedure := False;
form_proekt.Label15.Caption := 'Не введен адрес клиента';
end;
if form_proekt.DBGrid_sotrudnik.DataSource.DataSet.RecordCount = 0 then
begin
run_procedure := False;
form_proekt.Label16.Caption := 'Не выбран сотрудник';
end;
if form_proekt.DateTimePicker_begin.Date >form_proekt.DateTimePicker_end.Date then
begin
run_procedure := False;
form_proekt.Label13.Caption := 'Дата окончания меньше даты начала';
end;
result := run_procedure;
end;
procedure TForm_proekt.Button_deleteClick(Sender: TObject);
var buf_Zapros, buf_kav : string;
begin
if form_proekt.DBGrid_proekt.DataSource.DataSet.RecordCount <> 0 then
begin
buf_kav := '''';
buf_zapros := 'DELETE FROM proekt WHERE id_proekt =
'+buf_kav+form_proekt.DBGrid_proekt.DataSource.DataSet.FieldByName('id_proekt').AsString+buf_kav+';';
datamodule1.Query_buf.Close;
datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_Zapros;
datamodule1.Query_buf.ExecSQL;
//обновляю данные на форме
view_proekt;
form_proekt.Label_id.Caption := '0';
form_proekt.Label_name_proekt.Caption := '';
end;
end;
procedure TForm_proekt.Button_delete_documentClick(Sender: TObject);
var buf_zapros, buf_kav, buf_name : string;
begin
if form_proekt.DBGrid_document.DataSource.DataSet.RecordCount <> 0 then
begin
buf_kav := '''';
119
//удаляю файлы даже если их нет
buf_name :=
put_dir+form_proekt.DBGrid_proekt.DataSource.DataSet.FieldByName('id_proekt').AsString+'\'+form_proekt.DB
Grid_document.DataSource.DataSet.FieldByName('Название_файла').AsString;
deletefile(buf_name);
//удаляю из БД
buf_zapros := 'DELETE FROM document WHERE name_file =
'+buf_kav+form_proekt.DBGrid_document.DataSource.DataSet.FieldByName('Название_файла').AsString+buf_k
av
+' AND id_proekt =
'+form_proekt.DBGrid_proekt.DataSource.DataSet.FieldByName('id_proekt').AsString+';';
datamodule1.Query_buf.Close;
datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_Zapros;
datamodule1.Query_buf.ExecSQL;
datamodule1.Query_buf.Close;
view_document;
end;
end;
procedure TForm_proekt.Button_updateClick(Sender: TObject);
begin
if form_proekt.DBGrid_proekt.DataSource.DataSet.RecordCount <> 0 then
begin
form_proekt.Button_add_proekt.Caption := 'Исправить проект';
form_proekt.Label_id.Caption :=
form_proekt.DBGrid_proekt.DataSource.DataSet.FieldByName('id_proekt').AsString;
form_proekt.Edit_name_proekt.Text :=
form_proekt.DBGrid_proekt.DataSource.DataSet.FieldByName('Проект').AsString;
form_proekt.Edit_klient.Text :=
form_proekt.DBGrid_proekt.DataSource.DataSet.FieldByName('Клиент').AsString;
form_proekt.Edit_adres.Text :=
form_proekt.DBGrid_proekt.DataSource.DataSet.FieldByName('Адрес_объекта').AsString;
form_proekt.DateTimePicker_begin.Date :=
form_proekt.DBGrid_proekt.DataSource.DataSet.FieldByName('Дата_начала').AsDateTime;
form_proekt.DateTimePicker_end.Date :=
form_proekt.DBGrid_proekt.DataSource.DataSet.FieldByName('Дата_окончания').AsDateTime;
form_proekt.DBGrid_sotrudnik.DataSource.DataSet.Locate('Табель_номер',
form_proekt.DBGrid_proekt.DataSource.DataSet.FieldByName('tabel_nomer').AsString,[]);
form_proekt.Label_name_proekt.Caption :=
form_proekt.DBGrid_proekt.DataSource.DataSet.FieldByName('Проект').AsString;
end;
end;
procedure TForm_proekt.add_proekt;
var buf_Zapros, buf_kav : string;
myYear, myMonth, myDay : Word;
date_begin, date_end : string;
begin
//разбираю дату
buf_kav := '''';
DecodeDate(form_proekt.DateTimePicker_begin.Date , myYear, myMonth, myDay);
date_begin := buf_kav+inttostr(myYear)+'-'+inttostr(myMonth)+'-'+inttostr(myDay)+buf_kav;
DecodeDate(form_proekt.DateTimePicker_end.Date , myYear, myMonth, myDay);
date_end := buf_kav+inttostr(myYear)+'-'+inttostr(myMonth)+'-'+inttostr(myDay)+buf_kav;
buf_zapros := 'INSERT INTO proekt(name_proekt,sotrudnik,date_begin,date_end,adres_obekt,klient)
VALUES ('
+buf_kav+form_proekt.Edit_name_proekt.Text+buf_kav+','
+buf_kav+form_proekt.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Табель_номер').AsString+buf_kav+
120
','
+date_begin+','
+date_end+','
+buf_kav+form_proekt.Edit_adres.Text+buf_kav+','
+buf_kav+form_proekt.Edit_klient.Text+buf_kav+');';
datamodule1.Query_buf.Close;
datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_Zapros;
datamodule1.Query_buf.ExecSQL;
datamodule1.Query_buf.Close;
buf_zapros := 'SELECT @@IDENTITY as ident;';
datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_Zapros;
datamodule1.Query_buf.Open;
datamodule1.Query_buf.First;
form_proekt.Label_id.Caption := datamodule1.Query_buf.FieldByName('ident').asstring;
datamodule1.Query_buf.Close;
//ввожу название проекта
form_proekt.Label_name_proekt.Caption := form_proekt.Edit_name_proekt.Text;
//обновляю данные на форме
view_proekt;
end;
procedure TForm_proekt.update_proekt;
var buf_Zapros, buf_kav : string;
myYear, myMonth, myDay : Word;
date_begin, date_end : string;
begin
buf_kav := '''';
//разбираю дату
DecodeDate(form_proekt.DateTimePicker_begin.Date , myYear, myMonth, myDay);
date_begin := buf_kav+inttostr(myYear)+'-'+inttostr(myMonth)+'-'+inttostr(myDay)+buf_kav;
DecodeDate(form_proekt.DateTimePicker_end.Date , myYear, myMonth, myDay);
date_end := buf_kav+inttostr(myYear)+'-'+inttostr(myMonth)+'-'+inttostr(myDay)+buf_kav;
buf_zapros := 'UPDATE proekt SET name_proekt
='+buf_kav+form_proekt.Edit_name_proekt.Text+buf_kav+','
+' sotrudnik =
'+buf_kav+form_proekt.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Табель_номер').AsString+buf_kav
+','
+' date_begin ='+date_begin+','
+' date_end = '+date_end+','
+' adres_obekt = '+buf_kav+form_proekt.Edit_adres.Text+buf_kav+','
+' klient = '+buf_kav+form_proekt.Edit_klient.Text+buf_kav
+' WHERE id_proekt ='+form_proekt.Label_id.Caption+';';
datamodule1.Query_buf.Close;
datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_Zapros;
datamodule1.Query_buf.ExecSQL;
datamodule1.Query_buf.Close;
//обновляю данные на форме
view_proekt;
//переименовываю кнопку
form_proekt.Button_add_proekt.Caption := 'Новый проект';
end;
121
procedure TForm_proekt.clear_label;
begin
form_proekt.Label11.Caption := '';
form_proekt.Label12.Caption := '';
form_proekt.Label13.Caption := '';
form_proekt.Label14.Caption := '';
form_proekt.Label15.Caption := '';
form_proekt.Label16.Caption := '';
end;
procedure TForm_proekt.DBGrid_proektCellClick(Column: TColumn);
begin
view_ooborudovanie;
view_document;
end;
procedure TForm_proekt.Edit_findChange(Sender: TObject);
begin
view_sotrudnik;
end;
procedure TForm_proekt.FormShow(Sender: TObject);
begin
view_proekt;
view_sotrudnik;
end;
procedure TForm_proekt.view_dbgrid_document;
begin
Form_proekt.DBGrid_document.Columns[0].Width := 450;
end;
procedure TForm_proekt.view_ooborudovanie;
var buf_zapros,buf_kav : string;
begin
if form_proekt.DBGrid_proekt.DataSource.DataSet.RecordCount <> 0 then
begin
buf_kav := '''';
buf_zapros :='SELECT oborudovane.id_oborudovanie, oborudovane.name_oborudovane as
Оборудование, oborudovane.harakteristika1 as Характеристика1, oborudovane.harakteristika2 as
Характеристика2, firma.name_firma as Фирма, '
+' vid_oborudovanie.name_vid as Вид_оборудования, oborudovane.price as Цена_за_шт,
oborudovane_proekt.kolvo as Кол_во '
+' FROM vid_oborudovanie INNER JOIN (firma INNER JOIN (oborudovane INNER JOIN
oborudovane_proekt ON oborudovane.id_oborudovanie = oborudovane_proekt.oborudovane) ON firma.id_firma =
oborudovane.firma) ON vid_oborudovanie.id_vid = oborudovane.vid '
+' WHERE oborudovane_proekt.proekt
='+form_proekt.DBGrid_proekt.DataSource.DataSet.FieldByName('id_proekt').AsString+';';
datamodule1.Query_oborudovanie_proekt.Close;
datamodule1.Query_oborudovanie_proekt.SQL.Clear;
datamodule1.Query_oborudovanie_proekt.SQL.Text := buf_zapros;
datamodule1.Query_oborudovanie_proekt.Open;
view_dbgrid_oborudovanie;
end
else
datamodule1.Query_oborudovanie_proekt.Close;
end;
procedure TForm_proekt.view_dbgrid_oborudovanie;
begin
form_proekt.DBGrid_oborudovanie.Columns[0].Visible := False;
122
form_proekt.DBGrid_oborudovanie.Columns[1].Width := 150;
form_proekt.DBGrid_oborudovanie.Columns[2].Width := 150;
form_proekt.DBGrid_oborudovanie.Columns[3].Width := 150;
form_proekt.DBGrid_oborudovanie.Columns[4].Width := 150;
form_proekt.DBGrid_oborudovanie.Columns[5].Width := 150;
form_proekt.DBGrid_oborudovanie.Columns[6].Width := 150;
form_proekt.DBGrid_oborudovanie.Columns[7].Width := 150;
end;
procedure TForm_proekt.view_sotrudnik;
var buf_zapros,buf_kav : string;
begin
buf_kav := '''';
if length(form_proekt.Edit_find.Text) = 0 then
buf_zapros := 'SELECT sotrudnik.tabel_nomer as Табель_номер, sotrudnik.family as Фамилия,
sotrudnik.first_name as Имя, sotrudnik.second_name as Отчество, dolgnost.name_dolgnost as Должность '
+' FROM dolgnost INNER JOIN sotrudnik ON dolgnost.id_dolgnost = sotrudnik.id_dolgnost '
+' ORDER BY sotrudnik.family, sotrudnik.first_name, sotrudnik.second_name;'
else
buf_zapros := 'SELECT sotrudnik.tabel_nomer as Табель_номер, sotrudnik.family as Фамилия,
sotrudnik.first_name as Имя, sotrudnik.second_name as Отчество, dolgnost.name_dolgnost as Должность '
+' FROM dolgnost INNER JOIN sotrudnik ON dolgnost.id_dolgnost = sotrudnik.id_dolgnost '
+' WHERE sotrudnik.family LIKE '+buf_kav+form_proekt.Edit_find.Text+'%'+buf_kav
+' ORDER BY sotrudnik.family, sotrudnik.first_name, sotrudnik.second_name ;';
datamodule1.Query_sotrudnik.Close;
datamodule1.Query_sotrudnik.SQL.Clear;
datamodule1.Query_sotrudnik.SQL.Text := buf_zapros;
datamodule1.Query_sotrudnik.Open;
view_dbgrid_sotrudnik;
end;
procedure TForm_proekt.view_dbgrid_sotrudnik;
begin
form_proekt.DBGrid_sotrudnik.Columns[0].Width := 80;
form_proekt.DBGrid_sotrudnik.Columns[1].Width := 150;
form_proekt.DBGrid_sotrudnik.Columns[2].Width := 150;
form_proekt.DBGrid_sotrudnik.Columns[3].Width := 150;
form_proekt.DBGrid_sotrudnik.Columns[4].Width := 150;
end;
end.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)