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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
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);
Источник: https://baza.diplomsite.ru/previewfile/2463