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

📄 bookbrallunit.cpp

📁 简单的C++小程序
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "BookBRAllUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TBookBRAll *BookBRAll;
AnsiString mySQL,tmpStr;
AnsiString PassNo,BookNo;
int lendID;
bool bflag;

//---------------------------------------------------------------------------
__fastcall TBookBRAll::TBookBRAll(TComponent* Owner)
        : TForm(Owner)
{
        RadioGroup1->Enabled = false;
        Button2->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TBookBRAll::FormClose(TObject *Sender,
      TCloseAction &Action)
{
        ADOQuery1->Close();
        ADOTable1->Close();
        ADOConnection1->Close();
        Action = caFree;        
}
//---------------------------------------------------------------------------
void __fastcall TBookBRAll::mnuBookBRExitClick(TObject *Sender)
{
        this->Close();        
}
//---------------------------------------------------------------------------
void __fastcall TBookBRAll::Button1Click(TObject *Sender)
{
        Memo1->Lines->Clear();
        Memo2->Lines->Clear();

        PassNo = Edit1->Text.Trim();
        BookNo = Edit2->Text.Trim();

        //检查借书证号
        if(PassNo.Length() > 0)
        {
                mySQL = "SELECT 借书证号,注销 FROM cards where 注销 = False AND 借书证号 = ";
                mySQL = mySQL + char(34) + PassNo + char(34);
                ADOQuery1->Active = false;
                ADOQuery1->SQL->Clear();
                ADOQuery1->SQL->Add(mySQL);
                ADOQuery1->Active = true;
                if(ADOQuery1->RecordCount == 0)
                {
                        ShowMessage("借书证号不存在或已注销!");
                        return;
                }
                ViewBookBorrow(PassNo);
                Edit1->Enabled = false;
        }

        if(BookNo.Length() > 0)
        {
                //检查借书号
                mySQL = "SELECT 借书号 FROM books where 借书号 = ";
                mySQL = mySQL + char(34) + BookNo + char(34);
                ADOQuery1->Active = false;
                ADOQuery1->SQL->Clear();
                ADOQuery1->SQL->Add(mySQL);
                ADOQuery1->Active = true;
                if(ADOQuery1->RecordCount == 0)
                {
                        ShowMessage("借书号错误!");
                        return;
                }

                //检查是否是本人已借的书
                mySQL = "SELECT * FROM lendsql WHERE 借书证号 = ";
                mySQL = mySQL + char(34) + PassNo + char(34);
                mySQL += " AND 借书号 = ";
                mySQL = mySQL + char(34) + BookNo + char(34);
                ADOQuery1->Active = false;
                ADOQuery1->SQL->Clear();
                ADOQuery1->SQL->Add(mySQL);
                ADOQuery1->Active = true;
                if(ADOQuery1->RecordCount == 1)
                {
                        RadioGroup1->Enabled = true;
                        RadioGroup1->ItemIndex = 0;

                        bflag = false;
                        lendID = ADOQuery1->FieldByName("ID")->AsInteger;
                }
                else  //检查是否被别人借出
                {
                        mySQL = "SELECT 借书号 FROM lendsql WHERE 借书号 = ";
                        mySQL = mySQL + char(34) + BookNo + char(34);
                        ADOQuery1->Active = false;
                        ADOQuery1->SQL->Clear();
                        ADOQuery1->SQL->Add(mySQL);
                        ADOQuery1->Active = true;
                        if(ADOQuery1->RecordCount == 1)
                        {
                                ShowMessage("此书已被借出!");
                                return;
                        }
                        bflag = true;
                        RadioGroup1->Enabled = false;
                }
                ViewBookInfo(BookNo);
                Edit2->Enabled = false;
                Button2->Enabled = true;
        }
}
//---------------------------------------------------------------------------
void TBookBRAll::ViewBookBorrow(AnsiString PassNo)
{
        //列出已借图书信息
        ADOQuery1->Active = false;
        ADOQuery1->SQL->Clear();
        mySQL = "SELECT * FROM lendsql";
        mySQL = mySQL + " WHERE 借书证号 = ";
        mySQL = mySQL + char(34) + PassNo + char(34);
        mySQL += " ORDER BY 借阅日期";
        ADOQuery1->SQL->Add(mySQL);
        ADOQuery1->Active = true;
        Memo2->Clear();
        while(!ADOQuery1->Eof)
        {
                tmpStr = ADOQuery1->FieldByName("借阅日期")->AsString + "  ";
                tmpStr = tmpStr + ADOQuery1->FieldByName("借书号")->AsString + "  ";
                tmpStr = tmpStr + ADOQuery1->FieldByName("名称")->AsString;
                Memo2->Lines->Add(tmpStr);
                ADOQuery1->Next();
        }
        ADOQuery1->First();

        ADOQuery1->Active = false;
        ADOQuery1->SQL->Clear();
        mySQL = "SELECT * FROM readersql";
        mySQL = mySQL + " WHERE 借书证号 = ";
        mySQL = mySQL + char(34) + PassNo + char(34);
        ADOQuery1->SQL->Add(mySQL);
        ADOQuery1->Active = true;
        tmpStr = ADOQuery1->FieldByName("姓名")->AsString + "已借";
        tmpStr = tmpStr + ADOQuery1->FieldByName("借数")->AsString + "本书";
        StatusBar1->Panels->Items[0]->Text = tmpStr;
}
//---------------------------------------------------------------------------

void TBookBRAll::ViewBookInfo(AnsiString BookNo)
{
        ADOQuery1->Active = false;
        ADOQuery1->SQL->Clear();
        mySQL = "SELECT * FROM books";
        mySQL = mySQL + " WHERE 借书号 = ";
        mySQL = mySQL + char(34) + BookNo + char(34);
        ADOQuery1->SQL->Add(mySQL);
        ADOQuery1->Active = true;
        Memo1->Lines->Clear();
        tmpStr = ADOQuery1->FieldByName("借书号")->AsString + ":";
        Memo1->Lines->Add(tmpStr);
        tmpStr = ADOQuery1->FieldByName("名称")->AsString;
        Memo1->Lines->Add(tmpStr);
        tmpStr = ADOQuery1->FieldByName("出版单位")->AsString;
        Memo1->Lines->Add(tmpStr);
}
//---------------------------------------------------------------------------
void __fastcall TBookBRAll::Button2Click(TObject *Sender)
{
        if(!bflag)
        {
                //还书
                //修改借书记录
                ADOQuery1->Active = false;
                ADOQuery1->SQL->Clear();
                mySQL = "UPDATE lendlist SET 已还 = True";
                mySQL = mySQL + " WHERE ID = ";
                mySQL = mySQL + AnsiString(lendID);
                ADOQuery1->SQL->Add(mySQL);
                ADOQuery1->ExecSQL();

                if(RadioGroup1->ItemIndex == 0)
                {
                        //修改书库标记
                        ADOQuery1->Active = false;
                        ADOQuery1->SQL->Clear();
                        mySQL = "UPDATE books SET 借出 = False";
                        mySQL = mySQL + " WHERE 借书号 = ";
                        mySQL = mySQL + char(34) + BookNo + char(34);
                        ADOQuery1->SQL->Add(mySQL);
                        ADOQuery1->ExecSQL();

                        //修改个人借数
                        ADOQuery1->Active = false;
                        ADOQuery1->SQL->Clear();
                        mySQL = "UPDATE cards SET 借数 = 借数-1";
                        mySQL = mySQL + " WHERE 借书证号 = ";
                        mySQL = mySQL + char(34) + PassNo + char(34);
                        ADOQuery1->SQL->Add(mySQL);
                        ADOQuery1->ExecSQL();
                }

                //续借
                if(RadioGroup1->ItemIndex == 1)
                {
                        //添加借书记录
                        ADOTable1->Active = true;
                        ADOTable1->Insert();
                        ADOTable1->FieldValues["借阅日期"] = DateToStr(Date());
                        ADOTable1->FieldValues["借书证号"] = PassNo;
                        ADOTable1->FieldValues["借书号"] = BookNo;
                        ADOTable1->FieldValues["已还"] = false;
                        ADOTable1->Post();
                        ADOTable1->Last();
                        ADOTable1->Active = false;
                }
        }
        else  //借书
        {
                ADOQuery1->Active = false;
                ADOQuery1->SQL->Clear();
                mySQL = "SELECT * FROM readersql";
                mySQL = mySQL + " WHERE 借书证号 = ";
                mySQL = mySQL + char(34) + PassNo + char(34);
                ADOQuery1->SQL->Add(mySQL);
                ADOQuery1->Active = true;
                int borrowNum,ValueNum; //已借数,可借数
                borrowNum = ADOQuery1->FieldByName("借数")->AsInteger;
                ValueNum = ADOQuery1->FieldByName("本数")->AsInteger;
                ADOQuery1->First();

                if(borrowNum < ValueNum) //完成借书过程
                {
                        //修改书库标记
                        ADOQuery1->Active = false;
                        ADOQuery1->SQL->Clear();
                        mySQL = "UPDATE books SET 借出 = True";
                        mySQL = mySQL + " WHERE 借书号 = ";
                        mySQL = mySQL + char(34) + BookNo + char(34);
                        ADOQuery1->SQL->Add(mySQL);
                        ADOQuery1->ExecSQL();

                        //修改个人借数
                        ADOQuery1->Active = false;
                        ADOQuery1->SQL->Clear();
                        mySQL = "UPDATE cards SET 借数 = 1+借数 ";
                        mySQL = mySQL + " WHERE 借书证号 = ";
                        mySQL = mySQL + char(34) + PassNo + char(34);
                        ADOQuery1->SQL->Add(mySQL);
                        ADOQuery1->ExecSQL();

                        //添加借书记录
                        ADOTable1->Active = true;
                        ADOTable1->Insert();
                        ADOTable1->FieldValues["借阅日期"] = DateToStr(Date());
                        ADOTable1->FieldValues["借书证号"] = PassNo;
                        ADOTable1->FieldValues["借书号"] = BookNo;
                        ADOTable1->FieldValues["已还"] = false;
                        ADOTable1->Post();
                        ADOTable1->Last();
                        ADOTable1->Active = false;
                }
                else
                {
                        ShowMessage("您借书数量已满!");
                }
        }
        Button2->Enabled = false;
        ViewBookBorrow(PassNo);
        Edit2->Enabled = true;
        Edit2->Text = "";
}
//---------------------------------------------------------------------------

void __fastcall TBookBRAll::Edit1KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
        switch(Key)
        {
                case VK_RETURN:
                        Edit2->SetFocus();
                        break;
                case VK_ESCAPE:
                        Edit1->Text = "";
                        break;
        }        
}
//---------------------------------------------------------------------------

void __fastcall TBookBRAll::Edit2KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
        switch(Key)
        {
                case VK_RETURN:
                        this->Button1->Click();
                        break;
                case VK_ESCAPE:
                        Edit2->Text = "";
                        break;
        }
}
//---------------------------------------------------------------------------

void __fastcall TBookBRAll::Button3Click(TObject *Sender)
{
        RadioGroup1->Enabled = false;
        Button2->Enabled = false;
        Edit1->Enabled = true;
        Edit2->Enabled = true;
        Edit1->Text = "";
        Edit2->Text = "";
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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