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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
110
ПРИЛОЖЕНИЕ 6
Листинг модуля справочника «Работники»
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Rabotniki.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm_rabotniki *Form_rabotniki;
//---------------------------------------------------------------------------
__fastcallTForm_rabotniki::TForm_rabotniki(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcallTForm_rabotniki::FormShow(TObject *Sender)
{
ADOConnection1->ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source="+GetCurrentDir()+"\\ras4et_zp.mdb"+";Persist Security Info=False";
ADOTable1->Active = true;
ADOTable1->First();
ComboBox_otd->Items->Clear();
while(!ADOTable1->Eof){
ComboBox_otd->Items->Add(ADOTable1->FieldByName("наименование")-
>Value);
111
ADOTable1->Next();
}
ADOTable1->Active=false;
ComboBox_otd->ItemIndex = 0;
ADOTable2->Active = true;
ADOTable2->First();
ComboBox_dol->Items->Clear();
while(!ADOTable2->Eof){
ComboBox_dol->Items->Add(ADOTable2->FieldByName("наименование")-
>Value);
ADOTable2->Next();
}
ADOTable2->Active=false;
ComboBox_dol->ItemIndex = 0;
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT R.id AS id, R.ФИО AS ФИО,
O.наименование AS Отдел, D.наименование AS Должность, средний_заработок
AS [Средняязп] FROM [Работники] AS R, [Отделы] AS O, [Должности] AS D
WHERE O.id = R.код_отдела AND D.id = R.код_должности");
ADOQuery1->ExecSQL();
ADOQuery1->Close();
ADOQuery1->Active=true;
}
//---------------------------------------------------------------------------
void __fastcallTForm_rabotniki::FormClose(TObject *Sender,
TCloseAction&Action)
112
{
ADOQuery1->Active=false;
ADOConnection1->Connected = false;
}
//---------------------------------------------------------------------------
void __fastcallTForm_rabotniki::ButtonInsertClick(TObject *Sender)
{
if(Edit_fio->Text == "") MessageDlg("НевведеныФИО", mtError,
TMsgDlgButtons()<<mbOK,0);
else
{
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();
ADOQuery1->Close();
113
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("INSERT INTO [Работники] (ФИО,
код_отдела, код_должности) VALUES (\""+Edit_fio->Text+"\", "+otd+",
"+dol+")");
inti = ADOQuery1->ExecSQL();
if (i) MessageDlg("Записьуспешнодобавлена", mtWarning,
TMsgDlgButtons()<<mbOK,0);
ADOQuery1->Close();
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT R.id AS id, R.ФИО AS ФИО,
O.наименование AS Отдел, D.наименование AS Должность, средний_заработок
AS [Средняязп] FROM [Работники] AS R, [Отделы] AS O, [Должности] AS D
WHERE O.id = R.код_отдела AND D.id = R.код_должности");
ADOQuery1->ExecSQL();
ADOQuery1->Close();
ADOQuery1->Active=true;
}
}
//---------------------------------------------------------------------------
void __fastcallTForm_rabotniki::ButtonUpdateClick(TObject *Sender)
{
if(Edit_fio->Text == "") MessageDlg("НевведеныФИО", mtError,
TMsgDlgButtons()<<mbOK,0);
else
{
AnsiString id = ADOQuery1->FieldByName("id")->AsString;
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
114
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();
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("UPDATE [Работники] SET ФИО
=\""+Edit_fio->Text+"\", код_отдела = "+otd+", код_должности = "+dol+" WHERE
id = "+id);
inti = ADOQuery1->ExecSQL();
if (i) MessageDlg("Записьуспешноизменена", mtWarning,
TMsgDlgButtons()<<mbOK,0);
ADOQuery1->Close();
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT R.id AS id, R.ФИО AS ФИО,
O.наименование AS Отдел, D.наименование AS Должность, средний_заработок
Источник: https://baza.diplomsite.ru/previewfile/2463