Диплом: Автоматизация учета сдельной оплаты труда в ОАО "Научно-исследовательский институт технологии, контроля и диагностики железнодорожного транспорта"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
120
ADOQuery2->SQL->Add("SELECT DISTINCT id, ФИО FROM
Работники WHERE код_отдела IN ( SELECT id FROM Отделы WHERE
наименование = '" + ComboBox_otd->Items->Strings[ComboBox_otd->ItemIndex]
+"') AND код_должности IN ( SELECT id FROM Должности WHERE
наименование = '" + ComboBox_dol->Items->Strings[ComboBox_dol->ItemIndex]
+"')");
ADOQuery2->ExecSQL();
ADOQuery2->Active=true;
ADOQuery2->First();
Edit_tab->Text = ADOQuery2->FieldByName("id")->AsString;
ComboBox_fio->Items->Clear();
while(!ADOQuery2->Eof){
ComboBox_fio->Items->Add(ADOQuery2->FieldByName("ФИО")-
>AsString);
ADOQuery2->Next();
}
ADOQuery2->Active=false;
ComboBox_fio->ItemIndex = 0;
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT T.id As id, R.id AS [Табельный №],
R.ФИО AS ФИО, O.наименование AS Отдел, D.наименование AS Должность,
Op.наименование AS [Операция], T.[количествочасов] AS [Кол-вочасов], T.дата
AS Дата FROM [Работники] AS R, [Отделы] AS O, [Должности] AS D, [Табель]
AS T, [Операции] AS Op WHERE O.id = R.код_отдела AND D.id =
R.код_должности AND T.код_работника = R.id AND T.код_операции = Op.id");
ADOQuery1->ExecSQL();
ADOQuery1->Close();
ADOQuery1->Active=true;
121
}
//---------------------------------------------------------------------------
void __fastcallTForm_tabel::FormClose(TObject *Sender,
TCloseAction&Action)
{
ADOQuery1->Active=false;
ADOConnection1->Connected = false;
}
//---------------------------------------------------------------------------
void __fastcallTForm_tabel::ButtonInsertClick(TObject *Sender)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT id FROM Отделы WHERE
наименование = \""+ComboBox_otd->Items->Strings[ComboBox_otd-
>ItemIndex]+"\"");
ADOQuery1->ExecSQL();
ADOQuery1->Active=true;
AnsiStringotd = ADOQuery1->FieldByName("id")->AsString;
ADOQuery1->Close();
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT id FROM Должности WHERE
наименование = \""+ComboBox_dol->Items->Strings[ComboBox_dol-
>ItemIndex]+"\"");
ADOQuery1->ExecSQL();
ADOQuery1->Active=true;
AnsiStringdol = ADOQuery1->FieldByName("id")->AsString;
ADOQuery1->Close();
//Label3->Caption = DateToStr(DateTimePicker_datefrom->Date);
122
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT id FROM Операции WHERE
наименование = \""+ComboBox_oper->Items->Strings[ComboBox_oper-
>ItemIndex]+"\"");
ADOQuery1->ExecSQL();
ADOQuery1->Active=true;
AnsiStringoper = ADOQuery1->FieldByName("id")->AsString;
ADOQuery1->Close();
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("INSERT INTO [Табель] (код_работника,
код_операции, [количествочасов], [дата]) VALUES ("+Edit_tab->Text+",
"+oper+", "+Edit_kol->Text+", '"+DateToStr(DateTimePicker_datefrom->Date)+"')");
inti = ADOQuery1->ExecSQL();
if (i) MessageDlg("Записьуспешнодобавлена", mtWarning,
TMsgDlgButtons()<<mbOK,0);
ADOQuery1->Close();
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT [Табельный №],
SUM(Сделка)/SUM(Часы) AS Среднее FROM (SELECT R.id AS [Табельный №],
(T.[количествочасов]*Op.оплата) AS Сделка,
IIf(Op.наименование='Больничный',0,IIf(Op.наименование='Отпуск',0,T.[количес
твочасов])) AS Часы FROM Работники AS R, Отделы AS O, Должности AS D,
Табель AS T, Операции AS Op WHERE O.id=R.код_отдела And
D.id=R.код_должности And T.код_работника=R.id And T.код_операции=Op.id
AND R.id = "+Edit_tab->Text+") GROUP BY [Табельный №]");
ADOQuery1->ExecSQL();
123
ADOQuery1->Active=true;
AnsiStringsred = ADOQuery1->FieldByName("Среднее")->AsString;
ADOQuery1->Close();
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("UPDATE [Работники] SET
средний_заработок = "+sred+" WHERE id = "+Edit_tab->Text);
i = ADOQuery1->ExecSQL();
if (i) MessageDlg("Произведенуспешныйперерасчетсреднейзарплаты",
mtWarning, TMsgDlgButtons()<<mbOK,0);
ADOQuery1->Close();
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT T.id As id, R.id AS [Табельный №],
R.ФИО AS ФИО, O.наименование AS Отдел, D.наименование AS Должность,
Op.наименование AS [Операция], T.[количествочасов] AS [Кол-вочасов], T.дата
AS Дата FROM [Работники] AS R, [Отделы] AS O, [Должности] AS D, [Табель]
AS T, [Операции] AS Op WHERE O.id = R.код_отдела AND D.id =
R.код_должности AND T.код_работника = R.id AND T.код_операции = Op.id");
ADOQuery1->ExecSQL();
ADOQuery1->Close();
ADOQuery1->Active=true;
}
//---------------------------------------------------------------------------
void __fastcallTForm_tabel::ComboBox_dolChange(TObject *Sender)
{
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Add("SELECT DISTINCT id, ФИО FROM
Работники WHERE код_отдела IN ( SELECT id FROM Отделы WHERE
124
наименование = '" + ComboBox_otd->Items->Strings[ComboBox_otd->ItemIndex]
+"') AND код_должности IN ( SELECT id FROM Должности WHERE
наименование = '" + ComboBox_dol->Items->Strings[ComboBox_dol->ItemIndex]
+"')");
ADOQuery2->ExecSQL();
ADOQuery2->Active=true;
ADOQuery2->First();
Edit_tab->Text = ADOQuery2->FieldByName("id")->AsString;
ComboBox_fio->Items->Clear();
while(!ADOQuery2->Eof){
ComboBox_fio->Items->Add(ADOQuery2->FieldByName("ФИО")-
>AsString);
ADOQuery2->Next();
}
ADOQuery2->Active=false;
ComboBox_fio->ItemIndex = 0;
}
//---------------------------------------------------------------------------
void __fastcallTForm_tabel::ComboBox_otdChange(TObject *Sender)
{
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Add("SELECT DISTINCT id, ФИО FROM
Работники WHERE код_отдела IN ( SELECT id FROM Отделы WHERE
наименование = '" + ComboBox_otd->Items->Strings[ComboBox_otd->ItemIndex]
+"') AND код_должности IN ( SELECT id FROM Должности WHERE
наименование = '" + ComboBox_dol->Items->Strings[ComboBox_dol->ItemIndex]
+"')");
ADOQuery2->ExecSQL();
ADOQuery2->Active=true;
ADOQuery2->First();
125
Edit_tab->Text = ADOQuery2->FieldByName("id")->AsString;
ComboBox_fio->Items->Clear();
while(!ADOQuery2->Eof){
ComboBox_fio->Items->Add(ADOQuery2->FieldByName("ФИО")-
>AsString);
ADOQuery2->Next();
}
ADOQuery2->Active=false;
ComboBox_fio->ItemIndex = 0;
}
//---------------------------------------------------------------------------
void __fastcallTForm_tabel::ComboBox_fioChange(TObject *Sender)
{
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Add("SELECT DISTINCT id FROM Работники
WHERE ФИО = '"+ ComboBox_fio->Items->Strings[ComboBox_fio->ItemIndex] +"'
AND код_отдела IN ( SELECT id FROM Отделы WHERE наименование = '" +
ComboBox_otd->Items->Strings[ComboBox_otd->ItemIndex] +"') AND
код_должности IN ( SELECT id FROM Должности WHERE наименование = '" +
ComboBox_dol->Items->Strings[ComboBox_dol->ItemIndex] +"')");
ADOQuery2->ExecSQL();
ADOQuery2->Active=true;
ADOQuery2->First();
Edit_tab->Text = ADOQuery2->FieldByName("id")->AsString;
ADOQuery2->Active=false;
}
//---------------------------------------------------------------------------
void __fastcallTForm_tabel::ButtonUpdateClick(TObject *Sender)
{
AnsiString id = ADOQuery1->FieldByName("id")->AsString;
126
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT id FROM Операции WHERE
наименование = \""+ComboBox_oper->Items->Strings[ComboBox_oper-
>ItemIndex]+"\"");
ADOQuery1->ExecSQL();
ADOQuery1->Active=true;
AnsiStringoper = ADOQuery1->FieldByName("id")->AsString;
ADOQuery1->Close();
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("UPDATE [Табель] SET код_работника
="+Edit_tab->Text+", код_операции = "+oper+", [количествочасов] = "+Edit_kol-
>Text+", дата = '"+DateToStr(DateTimePicker_datefrom->Date)+"' WHERE id =
"+id);
inti = ADOQuery1->ExecSQL();
if (i) MessageDlg("Записьуспешноизменена", mtWarning,
TMsgDlgButtons()<<mbOK,0);
ADOQuery1->Close();
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT T.id As id, R.id AS [Табельный №],
R.ФИО AS ФИО, O.наименование AS Отдел, D.наименование AS Должность,
Op.наименование AS [Операция], T.[количествочасов] AS [Кол-вочасов], T.дата
AS Дата FROM [Работники] AS R, [Отделы] AS O, [Должности] AS D, [Табель]
AS T, [Операции] AS Op WHERE O.id = R.код_отдела AND D.id =
R.код_должности AND T.код_работника = R.id AND T.код_операции = Op.id");
ADOQuery1->ExecSQL();
ADOQuery1->Close();
127
ADOQuery1->Active=true;
}
//---------------------------------------------------------------------------
void __fastcallTForm_tabel::DBGrid1CellClick(TColumn *Column)
{
Edit_kol->Text = ADOQuery1->FieldByName("Кол-вочасов")->AsString;
Edit_tab->Text = ADOQuery1->FieldByName("Табельный №")->AsString;
DateTimePicker_datefrom->Date = ADOQuery1->FieldByName("Дата")-
>AsString;
for (inti=0; i<ComboBox_otd->Items->Count; i++)
if (ComboBox_otd->Items->Strings[i] == ADOQuery1-
>FieldByName("Отдел")->AsString){ ComboBox_otd->ItemIndex = i; break; }
for (inti=0; i<ComboBox_dol->Items->Count; i++)
if (ComboBox_dol->Items->Strings[i] == ADOQuery1-
>FieldByName("Должность")->AsString){ ComboBox_dol->ItemIndex = i; break; }
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Add("SELECT DISTINCT id, ФИО FROM
Работники WHERE код_отдела IN ( SELECT id FROM Отделы WHERE
наименование = '" + ComboBox_otd->Items->Strings[ComboBox_otd->ItemIndex]
+"') AND код_должности IN ( SELECT id FROM Должности WHERE
наименование = '" + ComboBox_dol->Items->Strings[ComboBox_dol->ItemIndex]
+"')");
ADOQuery2->ExecSQL();
ADOQuery2->Active=true;
ADOQuery2->First();
ComboBox_fio->Items->Clear();
while(!ADOQuery2->Eof){
ComboBox_fio->Items->Add(ADOQuery2->FieldByName("ФИО")-
>AsString);
128
ADOQuery2->Next();
}
ADOQuery2->Active=false;
ComboBox_fio->ItemIndex = 0;
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Add("SELECT ФИО FROM Работники WHERE
id = "+ADOQuery1->FieldByName("Табельный №")->AsString);
ADOQuery2->ExecSQL();
ADOQuery2->Active=true;
for (inti=0; i<ComboBox_fio->Items->Count; i++)
if (ComboBox_fio->Items->Strings[i] == ADOQuery2-
>FieldByName("ФИО")->AsString){ ComboBox_fio->ItemIndex = i; break; }
}
//---------------------------------------------------------------------------
void __fastcallTForm_tabel::ButtonDeleteClick(TObject *Sender)
{
AnsiString id = ADOQuery1->FieldByName("id")->AsString;
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("DELETE FROM [Табель] WHERE id =
"+id);
inti = ADOQuery1->ExecSQL();
if (i) MessageDlg("Записьуспешноудалена", mtWarning,
TMsgDlgButtons()<<mbOK,0);
elseMessageDlg("Указаннойзаписинесуществует", mtError,
TMsgDlgButtons()<<mbOK,0);
ADOQuery1->Close();
129
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT T.id As id, R.id AS [Табельный №],
R.ФИО AS ФИО, O.наименование AS Отдел, D.наименование AS Должность,
Op.наименование AS [Операция], T.[количествочасов] AS [Кол-вочасов], T.дата
AS Дата FROM [Работники] AS R, [Отделы] AS O, [Должности] AS D, [Табель]
AS T, [Операции] AS Op WHERE O.id = R.код_отдела AND D.id =
R.код_должности AND T.код_работника = R.id AND T.код_операции = Op.id");
ADOQuery1->ExecSQL();
ADOQuery1->Close();
ADOQuery1->Active=true;
}
//---------------------------------------------------------------------------
void __fastcallTForm_tabel::ButtonSearchClick(TObject *Sender)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT T.id As id, R.id AS [Табельный №],
R.ФИО AS ФИО, O.наименование AS Отдел, D.наименование AS Должность,
Op.наименование AS [Операция], T.[количествочасов] AS [Кол-вочасов], T.дата
AS Дата FROM [Работники] AS R, [Отделы] AS O, [Должности] AS D, [Табель]
AS T, [Операции] AS Op WHERE O.id = R.код_отдела AND D.id =
R.код_должности AND T.код_работника = R.id AND T.код_операции = Op.id");
if(CheckBox_otd->Checked) ADOQuery1->SQL->Add(" AND
O.наименование = \""+ComboBox_otd->Items->Strings[ComboBox_otd-
>ItemIndex]+"\"");
if(CheckBox_dol->Checked) ADOQuery1->SQL->Add(" AND
D.наименование = \""+ComboBox_dol->Items->Strings[ComboBox_dol-
>ItemIndex]+"\"");
if(CheckBox_fio->Checked) ADOQuery1->SQL->Add(" AND R.id =
"+Edit_tab->Text);

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

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