📄 card.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 + -