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

📄 banci2.cpp

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

#include <vcl.h>
#pragma hdrstop

#include "Banci2.h"
#include "DM1.h"
#include "SortSelect.h"
#include "PrintSet.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormBanci2 *FormBanci2;

//---------------------------------------------------------------------------
__fastcall TFormBanci2::TFormBanci2(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormBanci2::BitBtnAddClick(TObject *Sender)
{
  pBanci->Append();
  GroupBox1->Enabled = true;
  DBGrid1->Enabled = false;
  BitBtnAdd->Enabled = false;
  BitBtnAlter->Enabled = false;
  BitBtnDel->Enabled = false;
  BitBtnSave->Enabled = true;
  BitBtnCancel->Enabled = true;
  BitBtnSort->Enabled = false;
  BitBtnPrint->Enabled = false;

  BitBtnQuit->Enabled = false;
  DBEditBcmc->SetFocus();
  DBComboBoxSdChange(this);
}
//---------------------------------------------------------------------------
void __fastcall TFormBanci2::BitBtnCancelClick(TObject *Sender)
{
   pBanci->Cancel();
   GroupBox1->Enabled = false;
   DBGrid1->Enabled = true;
   BitBtnAdd->Enabled = true;
   BitBtnAlter->Enabled = true;
   BitBtnDel->Enabled = true;
   BitBtnSave->Enabled = false;
   BitBtnCancel->Enabled = false;
   BitBtnQuit->Enabled = true;
   BitBtnSort->Enabled = true;
   BitBtnPrint->Enabled = true;


}
//---------------------------------------------------------------------------
void __fastcall TFormBanci2::BitBtnAlterClick(TObject *Sender)
{
  GroupBox1->Enabled = true;
  DBGrid1->Enabled = false;
  BitBtnAlter->Enabled = false;
  BitBtnAdd->Enabled = false;
  BitBtnDel->Enabled = false;
  BitBtnSave->Enabled = true;
  BitBtnCancel->Enabled = true;
  BitBtnQuit->Enabled = false;
  BitBtnSort->Enabled = false;
  BitBtnPrint->Enabled = false;
  pBanci->Edit();
  DBEditBcmc->SetFocus();
  DBComboBoxSdChange(this);
}
//---------------------------------------------------------------------------
void __fastcall TFormBanci2::BitBtnSaveClick(TObject *Sender)
{
  if (DBEditBcmc->Text == "")
    {
      ShowMessage("请输入班次名称!");
      DBEditBcmc->SetFocus();
      return;
    }
  if (DBComboBoxSd->Text == "")
    {
      ShowMessage("请输入时段数!");
      DBComboBoxSd->SetFocus();
      return;
    }

//*****************
  if (DBComboBoxSd->ItemIndex >=0)
    {
      try
        {
          StrToTime(DBEditSd1ks->Text);
        }
      catch(...)
        {
          ShowMessage("请输入正确的时间!格式必须为:" + FormatDateTime("hh:mm",Now()));
          DBEditSd1ks->SetFocus();
          return;
        }
      if (Trim(DBEditSd11qian->Text) == "" )
        {
          ShowMessage("请输入有效刷卡时间范围!");
          DBEditSd11qian->SetFocus();
          return;
        }
      if (StrToInt(Trim(DBEditSd11qian->Text)) < 0)
        {
          ShowMessage("刷卡时间范围不能为负数!");
          DBEditSd11qian->SetFocus();
          return;
        }
      if (Trim(DBEditSd11hou->Text) == "" )
        {
          ShowMessage("请输入有效刷卡时间范围!");
          DBEditSd11hou->SetFocus();
          return;
        }
      if (StrToInt(Trim(DBEditSd11hou->Text)) < 0)
        {
          ShowMessage("刷卡时间范围不能为负数!");
          DBEditSd11hou->SetFocus();
          return;
        }
      try
        {
          StrToTime(DBEditSd1js->Text);
        }
      catch(...)
        {
          ShowMessage("请输入正确的时间!格式必须为:  " + FormatDateTime("hh:mm",Now()));
          DBEditSd1js->SetFocus();
          return;
        }
      if (Trim(DBEditSd12qian->Text) == "" )
        {
          ShowMessage("请输入有效刷卡时间范围!");
          DBEditSd12qian->SetFocus();
          return;
        }
      if (StrToInt(Trim(DBEditSd12qian->Text)) < 0)
        {
          ShowMessage("刷卡时间范围不能为负数!");
          DBEditSd12qian->SetFocus();
          return;
        }
      if (Trim(DBEditSd12hou->Text) == "" )
        {
          ShowMessage("请输入有效刷卡时间范围!");
          DBEditSd12hou->SetFocus();
          return;
        }
      if (StrToInt(Trim(DBEditSd12hou->Text)) < 0)
        {
          ShowMessage("刷卡时间范围不能为负数!");
          DBEditSd12hou->SetFocus();
          return;
        }
      DBEditSd1ks->Text = FormatDateTime("hh:mm",StrToTime(DBEditSd1ks->Text));
      DBEditSd1js->Text = FormatDateTime("hh:mm",StrToTime(DBEditSd1js->Text));
    }
//***************************
  if (DBComboBoxSd->ItemIndex >=1)
    {
      try
        {
          StrToTime(DBEditSd2ks->Text);
        }
      catch(...)
        {
          ShowMessage("请输入正确的时间!格式必须为:" + FormatDateTime("hh:mm",Now()));
          DBEditSd2ks->SetFocus();
          return;
        }
      if (Trim(DBEditSd21qian->Text) == "" )
        {
          ShowMessage("请输入有效刷卡时间范围!");
          DBEditSd21qian->SetFocus();
          return;
        }
      if (StrToInt(Trim(DBEditSd21qian->Text)) < 0)
        {
          ShowMessage("刷卡时间范围不能为负数!");
          DBEditSd21qian->SetFocus();
          return;
        }
      if (Trim(DBEditSd21hou->Text) == "" )
        {
          ShowMessage("请输入有效刷卡时间范围!");
          DBEditSd21hou->SetFocus();
          return;
        }
      if (StrToInt(Trim(DBEditSd21hou->Text)) < 0)
        {
          ShowMessage("刷卡时间范围不能为负数!");
          DBEditSd21hou->SetFocus();
          return;
        }
      try
        {
          StrToTime(DBEditSd2js->Text);
        }
      catch(...)
        {
          ShowMessage("请输入正确的时间!格式必须为:  " + FormatDateTime("hh:mm",Now()));
          DBEditSd2js->SetFocus();
          return;
        }
      if (Trim(DBEditSd22qian->Text) == "" )
        {
          ShowMessage("请输入有效刷卡时间范围!");
          DBEditSd22qian->SetFocus();
          return;
        }
      if (StrToInt(Trim(DBEditSd22qian->Text)) < 0)
        {
          ShowMessage("刷卡时间范围不能为负数!");
          DBEditSd22qian->SetFocus();
          return;
        }
      if (Trim(DBEditSd22hou->Text) == "" )
        {
          ShowMessage("请输入有效刷卡时间范围!");
          DBEditSd22hou->SetFocus();
          return;
        }
      if (StrToInt(Trim(DBEditSd22hou->Text)) < 0)
        {
          ShowMessage("刷卡时间范围不能为负数!");
          DBEditSd22hou->SetFocus();
          return;
        }
      DBEditSd2ks->Text = FormatDateTime("hh:mm",StrToTime(DBEditSd2ks->Text));
      DBEditSd2js->Text = FormatDateTime("hh:mm",StrToTime(DBEditSd2js->Text));
      if (DBEditSd2ks->Text <= DBEditSd1js->Text)
        {
          ShowMessage("开始时间不能小于上一时段的结束时间!");
          DBEditSd2ks->SetFocus();
          return;
        }
      if (DBEditSd1ks->Text >= DBEditSd1js->Text)
        {
          ShowMessage("开始时间不能大于结束时间!");
          DBEditSd1ks->SetFocus();
          return;
        }
    }

//*******************
    if (DBComboBoxSd->ItemIndex ==2)
    {
      try
        {
          StrToTime(DBEditSd3ks->Text);
        }
      catch(...)
        {
          ShowMessage("请输入正确的时间!格式必须为:" + FormatDateTime("hh:mm",Now()));
          DBEditSd3ks->SetFocus();
          return;
        }
      if (Trim(DBEditSd31qian->Text) == "" )
        {
          ShowMessage("请输入有效刷卡时间范围!");
          DBEditSd31qian->SetFocus();
          return;
        }
      if (StrToInt(Trim(DBEditSd31qian->Text)) < 0)
        {
          ShowMessage("刷卡时间范围不能为负数!");
          DBEditSd31qian->SetFocus();
          return;
        }
      if (Trim(DBEditSd31hou->Text) == "" )
        {
          ShowMessage("请输入有效刷卡时间范围!");
          DBEditSd31hou->SetFocus();
          return;
        }
      if (StrToInt(Trim(DBEditSd31hou->Text)) < 0)
        {
          ShowMessage("刷卡时间范围不能为负数!");
          DBEditSd31hou->SetFocus();
          return;
        }
      try
        {
          StrToTime(DBEditSd3js->Text);
        }
      catch(...)
        {
          ShowMessage("请输入正确的时间!格式必须为:  " + FormatDateTime("hh:mm",Now()));
          DBEditSd3js->SetFocus();
          return;
        }
      if (Trim(DBEditSd32qian->Text) == "" )
        {
          ShowMessage("请输入有效刷卡时间范围!");
          DBEditSd32qian->SetFocus();
          return;
        }
      if (StrToInt(Trim(DBEditSd31hou->Text)) < 0)
        {
          ShowMessage("刷卡时间范围不能为负数!");
          DBEditSd31hou->SetFocus();
          return;
        }
      if (Trim(DBEditSd32hou->Text) == "" )
        {
          ShowMessage("请输入有效刷卡时间范围!");
          DBEditSd32hou->SetFocus();
          return;
        }
      if (StrToInt(Trim(DBEditSd32hou->Text)) < 0)
        {
          ShowMessage("刷卡时间范围不能为负数!");
          DBEditSd32hou->SetFocus();
          return;
        }
      DBEditSd3ks->Text = FormatDateTime("hh:mm",StrToTime(DBEditSd3ks->Text));
      DBEditSd3js->Text = FormatDateTime("hh:mm",StrToTime(DBEditSd3js->Text));

      if (DBEditSd3ks->Text <= DBEditSd2js->Text)
        {
          ShowMessage("开始时间不能小于上一时段的结束时间!");
          DBEditSd3ks->SetFocus();
          return;
        }
      if (DBEditSd2ks->Text >= DBEditSd2js->Text)
        {
          ShowMessage("开始时间不能大于结束时间!");
          DBEditSd2ks->SetFocus();
          return;
        }

    }

//*******************

  try
   {
     pBanci->Post();
   }
  catch(Exception &exception)
   {
    ShowMessage("保存失败!\n因为:" + exception.Message);
    return;
   }
  DBGrid1->Enabled = true;
  GroupBox1->Enabled = false;
  BitBtnSave->Enabled = false;
  BitBtnCancel->Enabled = false;
  BitBtnAdd->Enabled = true;
  BitBtnAlter->Enabled = true;
  BitBtnDel->Enabled = true;
  BitBtnQuit->Enabled = true;
  BitBtnSort->Enabled = true;
  BitBtnPrint->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TFormBanci2::BitBtnDelClick(TObject *Sender)
{
  if (Application->MessageBoxA("确定要删除当前记录吗?","警告!",MB_YESNO) ==IDYES)
  {
   pBanci->Delete();

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


void __fastcall TFormBanci2::BitBtnQuitClick(TObject *Sender)
{
  FormBanci2->Close();
}
//---------------------------------------------------------------------------





void __fastcall TFormBanci2::FormCreate(TObject *Sender)
{
  pBanci = GetQuery("QBanciWf");

  try
    {
     pBanci->Open();
    }
  catch(...)
    {
      ShowMessage("打开班次表失败!");
    }
  DataSource1->DataSet = pBanci;
}
//---------------------------------------------------------------------------


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

void __fastcall TFormBanci2::FormClose(TObject *Sender,
      TCloseAction &Action)
{
  pBanci->Close();        
}
//---------------------------------------------------------------------------


void __fastcall TFormBanci2::DBComboBoxSdChange(TObject *Sender)
{
 switch (DBComboBoxSd->ItemIndex)
  {
   case 0:
     GroupBox2->Enabled = true;
     GroupBox3->Enabled = false;
     GroupBox4->Enabled = false;
     DBEditSd2ks->Clear();
     DBEditSd21qian->Clear();
     DBEditSd21hou->Clear();
     DBEditSd2js->Clear();
     DBEditSd22qian->Clear();
     DBEditSd22hou->Clear();
     DBEditSd3ks->Clear();
     DBEditSd31qian->Clear();
     DBEditSd31hou->Clear();
     DBEditSd3js->Clear();
     DBEditSd32qian->Clear();
     DBEditSd32hou->Clear();
     break;
   case 1:
     GroupBox2->Enabled = true;
     GroupBox3->Enabled = true;
     GroupBox4->Enabled = false;
     DBEditSd3ks->Clear();
     DBEditSd31qian->Clear();
     DBEditSd31hou->Clear();
     DBEditSd3js->Clear();
     DBEditSd32qian->Clear();
     DBEditSd32hou->Clear();
     break;
   case 2:
     GroupBox2->Enabled = true;
     GroupBox3->Enabled = true;
     GroupBox4->Enabled = true;
     break;
   default :
     GroupBox2->Enabled = false;
     GroupBox3->Enabled = false;
     GroupBox4->Enabled = false;
   }
}
//---------------------------------------------------------------------------

void __fastcall TFormBanci2::DBEditBcmcExit(TObject *Sender)
{
  DBEditBcmc->Text = Trim(DBEditBcmc->Text);
}
//---------------------------------------------------------------------------

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

void __fastcall TFormBanci2::BitBtnPrintClick(TObject *Sender)
{
  TFormPrintSet *FormPrintSet = new TFormPrintSet(this);
  FormPrintSet->SetDataSource(pBanci);
  FormPrintSet->SetGrid(DBGrid1);
  FormPrintSet->EditTitle->Text = "班次表";
  FormPrintSet->ShowModal();
  delete FormPrintSet;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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