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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
135
}
//---------------------------------------------------------------------------
void __fastcallTForm_zp::FormClose(TObject *Sender,
TCloseAction&Action)
{
ADOQuery1->Active=false;
ADOConnection1->Connected = false;
}
//---------------------------------------------------------------------------
void __fastcallTForm_zp::ButtonSearchClick(TObject *Sender)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT [Табельный №], ФИО, Должность,
Отдел, Заработано AS Сделка, БЛ AS Больничные, Отпуск AS Отпускные,
(Заработано+БЛ+Отпуск) AS Итого FROM "
"(SELECT [Табельный №], ФИО, Должность, Отдел, SUM(Сделка)
AS Заработано, SUM(Больничные) AS БЛ, SUM(Отпускные) AS Отпуск FROM "
"(SELECT R.id AS [Табельный №], R.ФИО AS ФИО, D.наименование
AS Должность, O.наименование AS Отдел, (T.[количество часов]*Op.оплата) AS
Сделка, IIf(Op.наименование='Больничный',ROUND((T.[количество
часов]*R.средний_заработок*(SELECT FIRST(значение) FROM Коэффициенты
WHERE наименование = 'Больничный')),0),0) AS Больничные,
IIf(Op.наименование='Отпуск',ROUND((T.[количество
часов]*R.средний_заработок*(SELECT FIRST(значение) FROM Коэффициенты
WHERE наименование = 'Отпуск')),0),0) 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 AndT.код_операции=Op.id");
136
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);
//if(CheckBox_oper->Checked) ADOQuery1->SQL->Add(" AND
Op.наименование = \""+ComboBox_oper->Items->Strings[ComboBox_oper-
>ItemIndex]+"\"");
if(CheckBox_datefrom->Checked) ADOQuery1->SQL->Add(" AND T.дата>=
DateValue('"+FormatDateTime("dd/mm/yyyy",DateToStr(DateTimePicker_datefrom-
>Date))+"')");
if(CheckBox_dateto->Checked) ADOQuery1->SQL->Add(" AND T.дата<=
DateValue('"+FormatDateTime("dd/mm/yyyy",DateToStr(DateTimePicker_dateto-
>Date))+"')");
ADOQuery1->SQL->Add(") GROUP BY [Табельный №], ФИО, Должность,
Отдел)");
ADOQuery1->ExecSQL();
ADOQuery1->Close();
ADOQuery1->Active=true;
}
//---------------------------------------------------------------------------
Источник: https://baza.diplomsite.ru/previewfile/2463