⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jiaban.cpp

📁 企业员工考勤和工资管理系统
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "JiaBan.h"
#include "DM1.h"
#include "stdio.h"
#include "QuerySql.h"
#include "PrintSet.h"
#include "SortSelect.h"
#include "ColumnSelect.h"
#include <math.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormJiaBan *FormJiaBan;

//---------------------------------------------------------------------------
__fastcall TFormJiaBan::TFormJiaBan(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormJiaBan::FormClose(TObject *Sender,
      TCloseAction &Action)
{
  pAdd->Close();
  pYgbh->Close();
  pChaxun->Close();
}
//---------------------------------------------------------------------------

void __fastcall TFormJiaBan::BitBtnSaveClick(TObject *Sender)
{
  int nYgbh;
  double fZsj;
  AnsiString sYgxm,sBmmc,sBzmc,sJz,sRq,sKssj,sJssj,sSp,temp;
  char pTemp[500];

  if (Trim(MBh->Text) == "")
    {
      ShowMessage("请输入员工编号!");
      MBh->SetFocus();
      return;
    }
  if (Trim(ComboBoxJj->Text) == "")
    {
      ShowMessage("请选择加班种类!");
      ComboBoxJj->SetFocus();
      return;
    }


     try
      {
        StrToDateTime(Trim(MRq->Text));
      }
     catch(...)
      {
        ShowMessage("请输入正确的日期!");
        MRq->SetFocus();
        return;
      }
     try
      {
        StrToTime(Trim(MKs->Text));
      }
     catch(...)
      {
        ShowMessage("请输入正确的开始时间!");
        MKs->SetFocus();
        return;
      }
     try
      {
        StrToTime(Trim(MJs->Text));
      }
     catch(...)
      {
        ShowMessage("请输入正确的结束时间!");
        MJs->SetFocus();
        return;
      }
     sRq = FormatDateTime("yyyy-mm-dd",StrToDate(Trim(MRq->Text)));
     sKssj = FormatDateTime("hh:mm",StrToTime(Trim(MKs->Text)));
     sJssj = FormatDateTime("hh:mm",StrToTime(Trim(MJs->Text)));


   if (sJssj < sKssj)
     {
       ShowMessage("结束时间不能小于开始时间!");
       MJs->SetFocus();
       return;
     }
   if (Trim(MZsj->Text) == "")
     {
       ShowMessage("请输入总时间!");
       MZsj->SetFocus();
       return;
     }
  nYgbh = Trim(MBh->Text).ToInt();
  sYgxm = Trim(EditXm->Text);
  sBmmc = Trim(EditBm->Text);
  sBzmc = Trim(EditBz->Text);
  sJz = Trim(ComboBoxJj->Text);
  fZsj = Trim(MZsj->Text).ToDouble();
  sSp = Trim(EditSp->Text);
  temp = "insert into kq_jiaban(ygbh,ygxm,bmmc,bzmc,jbzl,riqi,kssj,jssj,zsj,spren) values(";
  sprintf(pTemp,"%d,'%s','%s','%s','%s','%s','%s','%s',%f,'%s')",nYgbh,sYgxm.c_str(),sBmmc.c_str(),sBzmc.c_str(),sJz.c_str(),sRq.c_str(),sKssj.c_str(),sJssj.c_str(),fZsj,sSp.c_str());
  pAdd->Close();
  pAdd->SQL->Clear();
  pAdd->SQL->Add(temp);
  pAdd->SQL->Add(pTemp);
  try
    {
      pAdd->ExecSQL();
    }
  catch(Exception &exception)
    {
      ShowMessage("保存失败!  \n因为:" + exception.Message);
      return;
    }
  pAdd->Close();
  MBh->Text = "";
  EditXm->Text = "";
  EditBm->Text = "";
  EditBz->Text = "";
  ComboBoxJj->Text = "";
  MRq->Text = "";
  MKs->Text = "";
  MJs->Text = "";
  MZsj->Text = "";

  EditSp->Text = "";
  MBh->SetFocus();

}
//---------------------------------------------------------------------------

void __fastcall TFormJiaBan::MBhExit(TObject *Sender)
{
  if (Trim(MBh->Text) == "")
    {
       EditXm->Text = "";
       EditBm->Text = "";
       EditBz->Text = "";
      return;
    }
  pYgbh->Close();
  pYgbh->SQL->Clear();
  pYgbh->SQL->Add("select holdername,departmentname,groupname from renshi where holderno = " + Trim(MBh->Text));
  pYgbh->Open();
  if (pYgbh->RecNo == 1)
     {
       EditXm->Text = pYgbh->FieldByName("holdername")->AsString;
       EditBm->Text = pYgbh->FieldByName("departmentname")->AsString;
       EditBz->Text = pYgbh->FieldByName("groupname")->AsString;
     }
  else
     {
       ShowMessage("没有编号为" + Trim(MBh->Text) + "的员工!");
       EditXm->Text = "";
       EditBm->Text = "";
       EditBz->Text = "";
       MBh->Text = "";


     }
}
//---------------------------------------------------------------------------


void __fastcall TFormJiaBan::MZsjEnter(TObject *Sender)
{

  try
   {
     StrToDateTime(Trim(MKs->Text));
     StrToDateTime(Trim(MJs->Text));
   }
  catch(...)
   {
     MZsj->Text = "";
     return;
   }
  TDateTime tKssj,tJssj;
  tKssj = StrToDateTime(Trim(MKs->Text));
  tJssj = StrToDateTime(Trim(MJs->Text));
  if (tJssj < tKssj)
  {
    MZsj->Text = "";
    return;

  }
  MZsj->Text = Round((double)(tJssj - tKssj) * 24,1);
}
//---------------------------------------------------------------------------

void __fastcall TFormJiaBan::FormKeyPress(TObject *Sender, char &Key)
{
  if(Key==VK_RETURN)
      {
        SendMessage(this->Handle,WM_NEXTDLGCTL,0,0);
        Key=0;
      }        
}
//---------------------------------------------------------------------------






void __fastcall TFormJiaBan::FormShow(TObject *Sender)
{
  pChaxun->Close();
  pChaxun->SQL->Clear();
  pChaxun->SQL->Add("select lshao,ygbh,ygxm,bmmc,bzmc,jbzl,riqi,kssj,jssj,zsj,spren from kq_jiaban where 1 =2");
  pChaxun->Open();

  TIniFile* pIni = new TIniFile(ExtractFilePath(Application->ExeName) + "reckq.ini");
   pIni->ReadSection(Name,ComboBoxCol->Items);
   for (int i= 0; i< ComboBoxCol->Items->Count;i++)
   {
     pIni->ReadBool(Name,ComboBoxCol->Items->Strings[i],true);
     for (int j = 0; j< DBGrid1->Columns->Count;j++)
     {
       if (DBGrid1->Columns->Items[j]->FieldName == ComboBoxCol->Items->Strings[i])
       {
         DBGrid1->Columns->Items[j]->Visible = pIni->ReadBool(Name,ComboBoxCol->Items->Strings[i],true);
         break;
       }
     }
   }
   delete pIni;
}
//---------------------------------------------------------------------------


void __fastcall TFormJiaBan::BitBtnDeleteClick(TObject *Sender)
{
  if (!(pChaxun->RecNo >0)) return;
  if ( Application->MessageBox("确定要删除该加班记录吗?","警告", MB_OKCANCEL) == IDOK)
    {
      pChaxun->Delete();
      LabelCount->Caption = LabelCount->Caption.ToInt() - 1;
    }
}
//---------------------------------------------------------------------------

void __fastcall TFormJiaBan::BitBtnQueryClick(TObject *Sender)
{
  AnsiString sNewSql;
  TFormQuerySql *FormQuerySql = new TFormQuerySql(this);
  FormQuerySql->pGrid = DBGrid1;
  FormQuerySql->pQuery = pChaxun;
  if(FormQuerySql->ShowModal() == mrCancel)
  {
    delete FormQuerySql;
    return;
  }
  sNewSql = "select lshao,ygbh,ygxm,bmmc,bzmc,jbzl,riqi,kssj,jssj,zsj,spren from kq_jiaban " + FormQuerySql->sSql + " order by riqi,ygbh";
  pChaxun->Close();
  pChaxun->SQL->Clear();
  pChaxun->SQL->Add(sNewSql);
  pChaxun->Open();
  LabelCount->Caption = pChaxun->RecordCount;
  delete FormQuerySql;
}
//---------------------------------------------------------------------------

void __fastcall TFormJiaBan::BitBtnSortClick(TObject *Sender)
{
  TFormSortSelect *FormSortSelect = new TFormSortSelect(this);
  FormSortSelect->SetItem(DBGrid1);
  if (FormSortSelect->ShowModal() == mrOk)
  pChaxun->Sort = FormSortSelect->sSort;
  delete FormSortSelect;  
}
//---------------------------------------------------------------------------

void __fastcall TFormJiaBan::BitBtnPrintClick(TObject *Sender)
{
  TFormPrintSet *FormPrintSet = new TFormPrintSet(this);
  FormPrintSet->SetDataSource(pChaxun);
  FormPrintSet->SetGrid(DBGrid1);
  FormPrintSet->EditTitle->Text = "手工录入加班";
  FormPrintSet->ShowModal();
  delete FormPrintSet;  
}
//---------------------------------------------------------------------------

void __fastcall TFormJiaBan::FormCreate(TObject *Sender)
{
  pAdd= GetQuery("QQingjia1");
  pYgbh= GetQuery("QQingjia2");
  pChaxun= GetQuery("QQingjia3");
  if (pAdd == NULL || pYgbh == NULL || pChaxun == NULL)
    {
      ShowMessage("打开请假表失败!");
      BitBtnSave->Enabled = false;
      return;
    }
  DataSource1->DataSet = pChaxun;  
}
//---------------------------------------------------------------------------

void __fastcall TFormJiaBan::BitBtn1Click(TObject *Sender)
{
  TFormColumnSelect *FormColumnSelect = new TFormColumnSelect(this);
  FormColumnSelect->pGrid = DBGrid1;
  FormColumnSelect->asWinName = Name;
  FormColumnSelect->ShowModal();
  delete FormColumnSelect;  
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -