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

📄 kqjwh.cpp

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

#include <vcl.h>
#pragma hdrstop

#include "KqjWh.h"
#include "DM1.h"
#include "syris.h"
#include "vtl.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormKqjWh *FormKqjWh;
//---------------------------------------------------------------------------
__fastcall TFormKqjWh::TFormKqjWh(TComponent* Owner)
  : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormKqjWh::FormCreate(TObject *Sender)
{
  pKqj = GetQuery("QKqj");
  pKqjLx = GetQuery("QTxKqjLx");
  pKqjBh = GetQuery("QTxKqjBh");
  DataSource1->DataSet = pKqj;
}
//---------------------------------------------------------------------------
void __fastcall TFormKqjWh::FormShow(TObject *Sender)
{
  AnsiString sLx;

  pKqj->Open();
  pKqjLx->Open();

  ComboBoxLx->Items->Clear();
  ComboBoxLx2->Items->Clear();
  while(!pKqjLx->Eof)
   {
     sLx = pKqjLx->FieldByName("kqjlx")->AsString;
     ComboBoxLx->Items->Add(sLx);
     ComboBoxLx2->Items->Add(sLx);
     pKqjLx->Next();
   }

  DateTimePicker1->DateTime = Now();
  DateTimePicker2->DateTime = Now();

}
//---------------------------------------------------------------------------
void __fastcall TFormKqjWh::FormClose(TObject *Sender,
      TCloseAction &Action)
{
  pKqj->Close();
  pKqjLx->Close();
  pKqjBh->Close();  
}
//---------------------------------------------------------------------------
void __fastcall TFormKqjWh::BitBtnAddClick(TObject *Sender)
{
  DBGrid1->Enabled = false;
  GroupBox1->Enabled = true;
  BitBtnQuit->Enabled = false;
  BitBtnSave->Enabled = true;
  BitBtnCancel->Enabled = true;
  BitBtnAdd->Enabled = false;
  BitBtnEdit->Enabled = false;
  BitBtnDelete->Enabled = false;

  DBComboBoxLx->SetFocus();

  pKqj->Append();
    
}
//---------------------------------------------------------------------------
void __fastcall TFormKqjWh::BitBtnDeleteClick(TObject *Sender)
{
  if (pKqj->RecNo < 1) return;
  if (Application->MessageBoxA("确定要删除吗?","询问",MB_YESNO)==IDYES)
    {
      pKqj->Delete();
    }
}
//---------------------------------------------------------------------------
void __fastcall TFormKqjWh::BitBtnEditClick(TObject *Sender)
{
  DBGrid1->Enabled = false;
  GroupBox1->Enabled = true;
  BitBtnQuit->Enabled = false;
  BitBtnSave->Enabled = true;
  BitBtnCancel->Enabled = true;
  BitBtnAdd->Enabled = false;
  BitBtnEdit->Enabled = false;
  BitBtnDelete->Enabled = false;
  DBComboBoxLx->SetFocus();
  pKqj->Edit();
}
//---------------------------------------------------------------------------
void __fastcall TFormKqjWh::BitBtnSaveClick(TObject *Sender)
{
  try
    {
      pKqj->Post();
    }
  catch(Exception &exception)
    {
      ShowMessage("保存失败!\n因为:" + exception.Message);
      BitBtnCancelClick(this);
      pKqj->Close();
      pKqj->Open();

      return;
    }
  //ShowMessage("保存成功!");

  DBGrid1->Enabled = true;
  GroupBox1->Enabled = false;
  BitBtnQuit->Enabled = true;
  BitBtnSave->Enabled = false;
  BitBtnCancel->Enabled = false;
  BitBtnAdd->Enabled = true;
  BitBtnEdit->Enabled = true;
  BitBtnDelete->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TFormKqjWh::BitBtnCancelClick(TObject *Sender)
{
  pKqj->Cancel();
  DBGrid1->Enabled = true;
  GroupBox1->Enabled = false;
  BitBtnQuit->Enabled = true;
  BitBtnSave->Enabled = false;
  BitBtnCancel->Enabled = false;
  BitBtnAdd->Enabled = true;
  BitBtnEdit->Enabled = true;
  BitBtnDelete->Enabled = true;
}
//---------------------------------------------------------------------------

void __fastcall TFormKqjWh::ComboBoxLxChange(TObject *Sender)
{
  AnsiString sBh;
  ComboBoxBh->Items->Clear();
  pKqjBh->Close();
  pKqjBh->Parameters->ParamByName("Lx")->Value =ComboBoxLx->Text;
  pKqjBh->Open();
  while(!pKqjBh->Eof)
   {
     sBh = pKqjBh->FieldByName("kqjbh")->AsString;
     ComboBoxBh->Items->Add(sBh);
     pKqjBh->Next();
   }  
}
//---------------------------------------------------------------------------


void __fastcall TFormKqjWh::BitBtn1Click(TObject *Sender)
{
  int nBh,nCom,nZt;
  unsigned short nYear,nMonth,nDay,nHour,nMinute,nSecond,nWeek,nMsec;
  String sTemp;
  TDateTime dtDate,dtTime;
  dtDate = DateTimePicker1->DateTime;
  dtTime = DateTimePicker2->DateTime;
  dtDate.DecodeDate(&nYear,&nMonth,&nDay);
  dtTime.DecodeTime(&nHour,&nMinute,&nSecond,&nMsec);
  nWeek = dtDate.DayOfWeek();
  nWeek = nWeek - 1;
  if (nWeek == 0) nWeek = 7;

  if (ComboBoxBh->Text.IsEmpty())
   {
     ShowMessage("请选择考勤机!");
     ComboBoxBh->SetFocus();
     return;
   }
  nBh = ComboBoxBh->Text.ToInt();
  if (ComboBoxLx->Text == "舒特考勤机")
    {

      nCom = _TESTCOM(nBh,1);

      if (nCom == -1)
        {
          ShowMessage("找不到考勤机或打开串口失败!请检查考勤机与电脑连接是否正确!");
          return;
        }
      nZt = _SETTIME(nBh,nCom,nYear,nMonth,nDay,nHour,nMinute,nSecond,nWeek);
      if (nZt == 0)
        {
          ShowMessage("修改考勤机日期时间成功!");
        }
      else
        {
          ShowMessage("修改考勤机日期时间失败!");
        }

    }
  else if (ComboBoxLx->Text == "Syris门禁控制器")
  {
    for (int i =1; i < 3; i++)
    {
      nCom = Syris_InitComm(i);
      if (nCom)
      {
        nZt = Syris_GetVersion(nBh,NULL);
        if(nZt==SYRIS_NOERROR)
        {
          break;
        }
        else
        {
          Syris_CloseComm();
        }
      }
    }
    if (!nCom)
    {
      ShowMessage("初始化端口失败!");
      return;
    }
    if(nZt != SYRIS_NOERROR)
    {
      ShowMessage("通讯失败!请检查控制器与计算机连接是否正确!");
      return;
    }
    sTemp = dtDate.FormatString("yyyymmdd");
    sTemp = sTemp + dtTime.FormatString("hhmmss");
    nZt = Syris_SetDatetime(nBh,sTemp.c_str());
    if(nZt==SYRIS_NOERROR)
    ShowMessage("修改控制器日期时间成功!");
    else
    ShowMessage("修改控制器日期时间失败!");
    Syris_CloseComm();
  }
}
//---------------------------------------------------------------------------

void __fastcall TFormKqjWh::ComboBoxBhChange(TObject *Sender)
{
  TLocateOptions Opts;
  Opts.Clear();
  if (pKqjBh->Locate("kqjbh",ComboBoxBh->Text,Opts))
  LabelMc->Caption = pKqjBh->FieldByName("kqjmc")->AsString;
}
//---------------------------------------------------------------------------

void __fastcall TFormKqjWh::ComboBoxLx2Change(TObject *Sender)
{
  AnsiString sBh;
  ComboBoxBh2->Items->Clear();
  pKqjBh->Close();
  pKqjBh->Parameters->ParamByName("Lx")->Value =ComboBoxLx2->Text;
  pKqjBh->Open();
  while(!pKqjBh->Eof)
   {
     sBh = pKqjBh->FieldByName("kqjbh")->AsString;
     ComboBoxBh2->Items->Add(sBh);
     pKqjBh->Next();
   }
}
//---------------------------------------------------------------------------

void __fastcall TFormKqjWh::ComboBoxBh2Change(TObject *Sender)
{
  TLocateOptions Opts;
  Opts.Clear();
  if (pKqjBh->Locate("kqjbh",ComboBoxBh2->Text,Opts))
  LabelMc2->Caption = pKqjBh->FieldByName("kqjmc")->AsString;
}
//---------------------------------------------------------------------------

void __fastcall TFormKqjWh::BitBtn2Click(TObject *Sender)
{
  int nBh,nCom,nZt;

  if (ComboBoxBh2->Text.IsEmpty())
   {
     ShowMessage("请选择考勤机!");
     ComboBoxBh2->SetFocus();
     return;
   }
  if (Application->MessageBox("确定要清空吗?","询问",MB_YESNO) == IDNO)
  return;
  nBh = ComboBoxBh2->Text.ToInt();
  if (ComboBoxLx2->Text == "舒特考勤机")
    {
      ShowMessage("舒特考勤机暂无此项功能!");
      /*
      nCom = _TESTCOM(nBh,1);

      if (nCom == -1)
        {
          ShowMessage("找不到考勤机或打开串口失败!请检查考勤机与电脑连接是否正确!");
          return;
        }
 //     nZt = _DELETE(nBh,nCom);
      if (nZt == 0)
        {
          ShowMessage("清空考勤机内刷卡数据成功!");
        }
      else
        {
          ShowMessage("清空考勤机内刷卡数据失败!");
        }
      */
    }
  else if (ComboBoxLx2->Text == "Syris门禁控制器")
  {
    for (int i =1; i < 3; i++)
    {
      nCom = Syris_InitComm(i);
      if (nCom)
      {
        nZt = Syris_GetVersion(nBh,NULL);
        if(nZt==SYRIS_NOERROR)
        {
          break;
        }
        else
        {
          Syris_CloseComm();
        }
      }
    }
    if (!nCom)
    {
      ShowMessage("初始化端口失败!");
      return;
    }
    if(nZt != SYRIS_NOERROR)
    {
      ShowMessage("通讯失败!请检查控制器与计算机连接是否正确!");
      return;
    }
    nZt = Syris_DelAllIodata(nBh);
    if(nZt==SYRIS_NOERROR)
    ShowMessage("清空控制器刷卡数据成功!");
    else
    ShowMessage("清空控制器刷卡数据失败!");
    Syris_CloseComm();
  }

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

⌨️ 快捷键说明

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