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

📄 card.cpp

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

#include <vcl.h>
#pragma hdrstop

#include "Card.h"
#include "DM1.h"
#include "CardSelect.h"
#include "QuerySql.h"
#include "PrintSet.h"
#include "SortSelect.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormCard *FormCard;
TFormCardSelect *FormCardSelect;
//---------------------------------------------------------------------------
__fastcall TFormCard::TFormCard(TComponent* Owner)
  : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFormCard::FormCreate(TObject *Sender)
{
  pBm = GetQuery("QCardWh");
  pRenShi = GetQuery("Query3");
  pCardId = GetQuery("Query4");
  DataSource1->DataSet = pBm;

}
//---------------------------------------------------------------------------
void __fastcall TFormCard::FormShow(TObject *Sender)
{

  pBm->Open();
  sOldSql = pBm->SQL->Text;
  pRenShi->Close();
  pRenShi->SQL->Clear();
  pRenShi->SQL->Add("select holderno,holdername,getcardflag,cardno from renshi");
  pRenShi->Open();

}
//---------------------------------------------------------------------------
void __fastcall TFormCard::FormClose(TObject *Sender,
      TCloseAction &Action)
{
  pBm->Close();
  pBm->SQL->Clear();
  pBm->SQL->Add(sOldSql);
  pRenShi->Close();
  pRenShi->SQL->Clear();
  pCardId->Close();
  pCardId->SQL->Clear();

}
//---------------------------------------------------------------------------
void __fastcall TFormCard::BitBtnAddClick(TObject *Sender)
{
  DBGrid1->Enabled = false;
  GroupBox1->Enabled = true;
  BitBtnQuit->Enabled = false;
  BitBtnStop->Enabled = false;
  BitBtnLost->Enabled = false;
  BitBtnSave->Enabled = true;
  BitBtnCancel->Enabled = true;
  BitBtnAdd->Enabled = false;
  BitBtnQuery->Enabled = false;
  BitBtnPrint->Enabled = false;
  BitBtnSort->Enabled = false;

  BitBtnDelete->Enabled = false;
  BitBtnFaka->Enabled = false;
  DBEditBh->SetFocus();

  pBm->Append();

}
//---------------------------------------------------------------------------
void __fastcall TFormCard::BitBtnDeleteClick(TObject *Sender)
{
  if (pBm->RecNo < 1) return;
  if (pBm->FieldByName("canuse")->AsBoolean)
  {
     Application->MessageBoxA("该卡正在使用,不能删除!如果要暂停使用该卡片请按‘暂停使用’!","错误",MB_OK);
     return;
  }
  if (Application->MessageBoxA("确定要删除吗?","询问",MB_YESNO)==IDYES)
    {
      pBm->Delete();
    }
}
//---------------------------------------------------------------------------
void __fastcall TFormCard::BitBtnSaveClick(TObject *Sender)
{
  pBm->Edit();
  pRenShi->Edit();
  try
    {
      pBm->Post();
      if (pRenShi->RecordCount > 0)
      pRenShi->Post();
    }
  catch(Exception &exception)
    {
      ShowMessage("保存失败!\n因为:" + exception.Message);
      BitBtnCancelClick(this);
      //pBm->Close();
      //pBm->Open();

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

  DBGrid1->Enabled = true;
  GroupBox1->Enabled = false;
  BitBtnQuit->Enabled = true;
  BitBtnSave->Enabled = false;
  BitBtnStop->Enabled = true;
  BitBtnLost->Enabled = true;
  BitBtnCancel->Enabled = false;
  BitBtnAdd->Enabled = true;
  BitBtnQuery->Enabled = true;
  BitBtnPrint->Enabled = true;
  BitBtnSort->Enabled = true;
  BitBtnDelete->Enabled = true;
  BitBtnFaka->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TFormCard::BitBtnCancelClick(TObject *Sender)
{
  pBm->Cancel();
  pRenShi->Cancel();
  DBGrid1->Enabled = true;
  GroupBox1->Enabled = false;
  BitBtnQuit->Enabled = true;
  BitBtnSave->Enabled = false;
  BitBtnCancel->Enabled = false;
  BitBtnAdd->Enabled = true;
  BitBtnStop->Enabled = true;
  BitBtnLost->Enabled = true;
  BitBtnQuery->Enabled = true;
  BitBtnPrint->Enabled = true;
  BitBtnDelete->Enabled = true;
  BitBtnFaka->Enabled = true;
  BitBtnSort->Enabled = true;
}
//---------------------------------------------------------------------------






void __fastcall TFormCard::BitBtnStopClick(TObject *Sender)
{
  TLocateOptions Opts;
  Opts.Clear();
  if (pBm->RecNo < 1) return;
  if (pBm->FieldByName("holderno")->AsString == "")
  {
    MessageDlg("'" + pBm->FieldByName("cardno")->AsString + "'卡片还未发行!",mtInformation,TMsgDlgButtons() << mbOK, 0);
    return;
  }
  if (pBm->FieldByName("canuse")->AsBoolean == 0) return;
  if (MessageDlg("确定要暂停使用'" + pBm->FieldByName("cardno")->AsString + "'卡片吗?",mtConfirmation,TMsgDlgButtons() << mbYes << mbNo, 0)==mrYes)
    {
      pBm->Edit();

      pBm->FieldByName("canuse")->AsBoolean = 0 ;
      if (pRenShi->Locate("holderno",pBm->FieldByName("holderno")->AsInteger,Opts))
      {
         pRenShi->Edit();
        pRenShi->FieldByName("getcardflag")->AsBoolean = 0;
        pRenShi->FieldByName("cardno")->Clear();
      }
      DBGrid1->Enabled = false;
      //GroupBox1->Enabled = true;
      BitBtnQuit->Enabled = false;
      BitBtnStop->Enabled = false;
      BitBtnLost->Enabled = false;
      BitBtnSave->Enabled = true;
      BitBtnCancel->Enabled = true;
      BitBtnAdd->Enabled = false;
      BitBtnQuery->Enabled = false;
      BitBtnPrint->Enabled = false;
      BitBtnSort->Enabled = false;

      BitBtnDelete->Enabled = false;
      BitBtnFaka->Enabled = false;
      //BitBtnSaveClick(this);
    }
}
//---------------------------------------------------------------------------

void __fastcall TFormCard::BitBtnLostClick(TObject *Sender)
{
  TLocateOptions Opts;
  Opts.Clear();
  if (pBm->RecNo < 1) return;
  if (pBm->FieldByName("holderno")->AsString == "")
  {
    MessageDlg("'" + pBm->FieldByName("cardno")->AsString + "'卡片还未发行,要使用该卡片请使用'发卡'功能!",mtInformation,TMsgDlgButtons() << mbOK, 0);
    return;
  }
  if (pBm->FieldByName("canuse")->AsBoolean == 1) return;
  if (MessageDlg("确定要恢复使用'" + pBm->FieldByName("cardno")->AsString + "'卡片吗?",mtConfirmation,TMsgDlgButtons() << mbYes << mbNo, 0)==mrYes)
    {
      if (pRenShi->Locate("holderno",pBm->FieldByName("holderno")->AsInteger,Opts))
      {

        if (pRenShi->FieldByName("cardno")->AsInteger != 0)
        {
          Application->MessageBoxA("该卡片的持有者已领取新卡片,不能恢复使用旧卡片!","错误",MB_OK);
          return;
        }
        pBm->Edit();
        pRenShi->Edit();
        pRenShi->FieldByName("cardno")->AsInteger = pBm->FieldByName("cardno")->AsInteger;
        pRenShi->FieldByName("getcardflag")->AsBoolean = 1;
        pBm->FieldByName("canuse")->AsBoolean = 1 ;

        DBGrid1->Enabled = false;
        //GroupBox1->Enabled = true;
        BitBtnQuit->Enabled = false;
        BitBtnStop->Enabled = false;
        BitBtnLost->Enabled = false;
        BitBtnSave->Enabled = true;
        BitBtnCancel->Enabled = true;
        BitBtnAdd->Enabled = false;
        BitBtnQuery->Enabled = false;
        BitBtnPrint->Enabled = false;
        BitBtnSort->Enabled = false;
        BitBtnDelete->Enabled = false;
        BitBtnFaka->Enabled = false;
      }
      else
      {
        Application->MessageBoxA("该卡片的持有者已不存在!","错误",MB_OK);
        return;
      }
      //BitBtnSaveClick(this);
    }
}
//---------------------------------------------------------------------------

void __fastcall TFormCard::BitBtnFakaClick(TObject *Sender)
{
  if (pBm->RecNo < 1) return;
  if (pBm->FieldByName("holderno")->AsInteger != 0)
  {
    Application->MessageBoxA("该卡已发行!","错误",MB_OK);
    return;
  }

  DBGrid1->Enabled = false;
  //GroupBox1->Enabled = true;
  BitBtnQuit->Enabled = false;
  BitBtnStop->Enabled = false;
  BitBtnLost->Enabled = false;
  BitBtnSave->Enabled = true;
  BitBtnCancel->Enabled = true;
  BitBtnAdd->Enabled = false;
  BitBtnDelete->Enabled = false;
  BitBtnQuery->Enabled = false;
  BitBtnPrint->Enabled = false;
  BitBtnFaka->Enabled = false;
  BitBtnSort->Enabled = false;

  FormCardSelect = new TFormCardSelect(this);
  FormCardSelect->pRenShi = pRenShi;
  //FormCardSelect->DataSource1->DataSet = pRenShi;
  FormCardSelect->LabelCardno->Caption = pBm->FieldByName("cardno")->AsString;
  FormCardSelect->nFlag = 0;
  FormCardSelect->ShowModal();
  if (FormCardSelect->nFlag == 1)
  {
    pBm->Edit();
    pRenShi->Edit();
    pBm->FieldByName("holderno")->AsInteger = pRenShi->FieldByName("holderno")->AsInteger;
    pBm->FieldByName("holdername")->AsString = pRenShi->FieldByName("holdername")->AsString;
    pBm->FieldByName("canuse")->AsBoolean = 1;
    pRenShi->FieldByName("getcardflag")->AsBoolean = 1;
    pRenShi->FieldByName("cardno")->AsInteger = pBm->FieldByName("cardno")->AsInteger;
  }
  else
  {
    BitBtnCancelClick(this);
  }
  delete FormCardSelect;
}
//---------------------------------------------------------------------------


void __fastcall TFormCard::BitBtnQueryClick(TObject *Sender)
{
  TFormQuerySql *FormQuerySql = new TFormQuerySql(this);
  FormQuerySql->pGrid = DBGrid1;
  FormQuerySql->pQuery = pBm;
  if(FormQuerySql->ShowModal() == mrCancel)
  {
    delete FormQuerySql;
    return;
  }
  sNewSql = "select * from carddata " + FormQuerySql->sSql + " order by cardno";
  pBm->Close();
  pBm->SQL->Clear();
  pBm->SQL->Add(sNewSql);
  pBm->Open();
  delete FormQuerySql;

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

void __fastcall TFormCard::BitBtnPrintClick(TObject *Sender)
{
  TFormPrintSet *FormPrintSet = new TFormPrintSet(this);
  FormPrintSet->SetDataSource(pBm);
  FormPrintSet->SetGrid(DBGrid1);
  FormPrintSet->EditTitle->Text = "卡片资料";
  FormPrintSet->ShowModal();
  delete FormPrintSet;
  
}
//---------------------------------------------------------------------------

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

void __fastcall TFormCard::DBEditMcExit(TObject *Sender)
{
  if (DBEditMc->Text == "")
    return;
  else
  {
    pCardId->Close();
    pCardId->SQL->Clear();
    pCardId->SQL->Add("select cardid from carddata where cardid = " + DBEditMc->Text.Trim());
    pCardId->Open();
    if (pCardId->RecordCount > 0)
    {
      DBEditMc->SetFocus();
      DBEditMc->SelectAll();
      ShowMessage("卡片表中已存在该卡片内码的卡片!");
    }
  }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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