//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "BookBorrow.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfmBookBorrow *fmBookBorrow;
//---------------------------------------------------------------------------
__fastcall TfmBookBorrow::TfmBookBorrow(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfmBookBorrow::FormShow(TObject *Sender)
{
// 输入读者查询条件获取焦点
edReaderCon->SetFocus();
// 设置借阅图书明细Grid的标题
StringGrid1->Cells[0][0] = "状态";
StringGrid1->Cells[1][0] = "编号";
StringGrid1->Cells[2][0] = "书名";
StringGrid1->Cells[3][0] = "借出时间";
StringGrid1->Cells[4][0] = "应还时间";
StringGrid1->Cells[5][0] = "出版社";
StringGrid1->Cells[6][0] = "书价";
}
//---------------------------------------------------------------------------
void __fastcall TfmBookBorrow::btOkClick(TObject *Sender)
{
// 保存 新借 的图书
AnsiString sql;
for(int i=1; i<StringGrid1->RowCount; i++)
{
if(!(StringGrid1->Cells[0][i] == "新借" && StringGrid1->Cells[1][i].Length()>0))
{
continue;
}
sql = "insert into 图书借阅(图书编号, 读者编号, 借阅时间, ";
sql += "应还时间, 续借次数, 操作员, 状态) values ('";
sql += StringGrid1->Cells[1][i] + "','";
sql += edReaderCon->Text + "','";
sql += StringGrid1->Cells[3][i] + "','";
sql += StringGrid1->Cells[4][i] + "',0,'操作员','新借')";
Query1->SQL->Clear();
Query1->SQL->Add(sql);
Query1->ExecSQL();
}
// 调用存储过程, 减少图书库存
TQuery* pQuery = new TQuery(NULL);
pQuery->DatabaseName = "db";
pQuery->SQL->Add("exec sf_图书借阅");
pQuery->ExecSQL();
delete pQuery;
m_nBorrowNum = 0;
m_nNum = 0;
// 清空数据
edReaderCon->Text = "";
edBookCon->Text = "";
// 输入读者查询条件获取焦点
edReaderCon->SetFocus();
// 清空借阅列表
for(int i=1; i<StringGrid1->RowCount; i++)
{
StringGrid1->Cells[0][i] = "";
StringGrid1->Cells[1][i] = "";
StringGrid1->Cells[2][i] = "";
StringGrid1->Cells[3][i] = "";
StringGrid1->Cells[4][i] = "";
StringGrid1->Cells[5][i] = "";
StringGrid1->Cells[6][i] = "";
}
Panel2->Caption = "";
}
//---------------------------------------------------------------------------
void __fastcall TfmBookBorrow::btCancelClick(TObject *Sender)
{
m_nBorrowNum = 0;
m_nNum = 0;
// 清空数据
edReaderCon->Text = "";
edBookCon->Text = "";
// 输入读者查询条件获取焦点
edReaderCon->SetFocus();
// 清空借阅列表
for(int i=1; i<StringGrid1->RowCount; i++)
{
StringGrid1->Cells[0][i] = "";
StringGrid1->Cells[1][i] = "";
StringGrid1->Cells[2][i] = "";
StringGrid1->Cells[3][i] = "";
StringGrid1->Cells[4][i] = "";
StringGrid1->Cells[5][i] = "";
StringGrid1->Cells[6][i] = "";
}
Panel2->Caption = "";
}
//---------------------------------------------------------------------------
void __fastcall TfmBookBorrow::btExitClick(TObject *Sender)
{
this->Close();
}
//---------------------------------------------------------------------------
void __fastcall TfmBookBorrow::FormClose(TObject *Sender,
TCloseAction &Action)
{
// 删除窗体并回收空间
Action = caFree;
}
//---------------------------------------------------------------------------
void __fastcall TfmBookBorrow::edReaderConKeyPress(TObject *Sender, char &Key)
{
// 回车选择读者
if(Key == 13)
{
// 检查是否存在未保存的记录
for(int i=1; i<StringGrid1->RowCount; i++)
{
if(StringGrid1->Cells[0][i] == "新借")
{
Application->MessageBox("存在未保存的记录","提示",MB_OK);
return;
}
}
AnsiString szCon, sql, szReadCode;
// 按照编号查询
if(rbReaderCode->Checked)
szCon = "编号";
else
szCon = "条形码";
szCon += "='" + edReaderCon->Text + "'";
sql = "select 姓名,类型,编号 from 读者信息 where " + szCon;
Query1->SQL->Clear();
Query1->SQL->Add(sql);
Query1->Open();
// 选择读者
edName->Text = Query1->FieldByName("姓名")->AsString;
edType->Text = Query1->FieldByName("类型")->AsString;
szReadCode = Query1->FieldByName("编号")->AsString;
// 如果查询条件不正确,返回重新查询
if(edName->Text == "")
{
return;
}
// 选择该类型读者可以借阅的册书
Query1->SQL->Clear();
sql = "select 图书册书 from 读者类型 where 类型='";
sql += edType->Text + "'";
Query1->SQL->Add(sql);
Query1->Open();
edNum->Text = Query1->FieldByName("图书册书")->AsString;
// 将焦点跳到选择图书
edBookCon->SetFocus();
// -------------------
// 在借书列表中显示已经借出的图书
Query1->SQL->Clear();
sql = "select 图书编号,借阅时间,应还时间 from 图书借阅 ";
sql += "where 状态='未还' and 读者编号='";
sql += szReadCode + "'";
Query1->SQL->Add(sql);
Query1->Open();
Query1->First();
m_nBorrowNum = 0;
// 清空借阅列表
for(int i=1; i<StringGrid1->RowCount; i++)
{
StringGrid1->Cells[0][i] = "";
StringGrid1->Cells[1][i] = "";
StringGrid1->Cells[2][i] = "";
StringGrid1->Cells[3][i] = "";
StringGrid1->Cells[4][i] = "";
StringGrid1->Cells[5][i] = "";
StringGrid1->Cells[6][i] = "";
}
// 序号写入已借图书列表
while(!Query1->Eof)
{
// 借出册书加一
m_nBorrowNum ++;
AnsiString szBookCode = Query1->FieldByName("图书编号")->AsString;
Table1->Filtered = false;
Table1->Filter = "编号='" + szBookCode + "'";
Table1->Filtered = true;
StringGrid1->Cells[0][m_nBorrowNum] = "未还";
StringGrid1->Cells[1][m_nBorrowNum] =
Table1->FieldByName("编号")->AsString;
StringGrid1->Cells[2][m_nBorrowNum] =
Table1->FieldByName("书名")->AsString;
StringGrid1->Cells[3][m_nBorrowNum] =
Query1->FieldByName("借阅时间")->AsString;
StringGrid1->Cells[4][m_nBorrowNum] =
Query1->FieldByName("应还时间")->AsString;
StringGrid1->Cells[5][m_nBorrowNum] =
Table1->FieldByName("出版社")->AsString;
StringGrid1->Cells[6][m_nBorrowNum] =
Table1->FieldByName("价格")->AsString;
// 下一记录
Query1->Next();
}
}
// 设置状态条册书
Panel2->Caption = "共 " + IntToStr(m_nBorrowNum) + " 册 ";
Panel2->Caption = Panel2->Caption + "本次 0 册";
}
//---------------------------------------------------------------------------
void __fastcall TfmBookBorrow::edBookConKeyPress(TObject *Sender,
char &Key)
{
// 回车选择图书
if(Key == 13)
{
// 检查数量是否达到限制了
if(m_nBorrowNum >= StrToInt(edNum->Text))
{
Application->MessageBox("借书数量达到上限","提示",MB_OK);
return;
}
AnsiString szCon, sql, szBookType;
// 按照编号查询
if(rbBookCode->Checked)
szCon = "编号";
else
szCon = "条形码";
szCon += "='" + edBookCon->Text + "'";
Table1->Filtered = false;
没有合适的资源?快使用搜索试试~ 我知道了~
c++ builder 数据库开发案例
共149个文件
cpp:15个
obj:15个
~cpp:15个
需积分: 10 19 下载量 113 浏览量
2008-11-12
17:48:53
上传
评论
收藏 3.74MB RAR 举报
温馨提示
里面有几个经典的案例如:图书馆管理系统,教务系统等
资源推荐
资源详情
资源评论
收起资源包目录
c++ builder 数据库开发案例 (149个子文件)
libbook.bak 1.83MB
删除.bmp 246B
上记录.bmp 246B
搜索.bmp 246B
关闭.bmp 246B
尾记录.bmp 246B
取消.bmp 246B
保存.bmp 246B
计算.bmp 246B
修改.bmp 246B
下记录.bmp 246B
首记录.bmp 246B
查询选择.bmp 246B
新增.bmp 246B
lib.bpr 8KB
BookBorrow.cpp 10KB
Parent.cpp 7KB
Main.cpp 5KB
BookOrder.cpp 3KB
ReaderInfo.cpp 3KB
BookReturn.cpp 2KB
BookFine.cpp 2KB
SelectReader.cpp 2KB
SelectBook.cpp 2KB
BookDue.cpp 2KB
BookInfo.cpp 1KB
lib.cpp 1KB
BookType.cpp 697B
readertype.cpp 665B
db.cpp 545B
db.ddp 51B
ReaderInfo.ddp 51B
Main.ddp 51B
SelectBook.ddp 51B
BookDue.ddp 51B
BookFine.ddp 51B
Parent.ddp 51B
BookOrder.ddp 51B
BookBorrow.ddp 51B
BookInfo.ddp 51B
readertype.ddp 51B
SelectReader.ddp 51B
BookReturn.ddp 51B
Parent.dfm 45KB
BookBorrow.dfm 16KB
BookOrder.dfm 10KB
ReaderInfo.dfm 9KB
Main.dfm 9KB
BookInfo.dfm 9KB
BookReturn.dfm 7KB
BookFine.dfm 7KB
SelectBook.dfm 6KB
BookDue.dfm 5KB
SelectReader.dfm 5KB
readertype.dfm 4KB
BookType.dfm 2KB
db.dfm 365B
lib.exe 1.24MB
Parent.h 3KB
ReaderInfo.h 2KB
BookOrder.h 2KB
BookBorrow.h 2KB
Main.h 2KB
BookInfo.h 2KB
BookFine.h 2KB
BookReturn.h 2KB
BookDue.h 2KB
SelectReader.h 1KB
SelectBook.h 1KB
readertype.h 1KB
BookType.h 1KB
db.h 840B
lib.ICO 1KB
libbook_log.ldf 1024KB
libbook.mdf 2.13MB
Main.obj 953KB
ReaderInfo.obj 855KB
BookInfo.obj 822KB
BookOrder.obj 822KB
Parent.obj 809KB
BookFine.obj 805KB
BookReturn.obj 802KB
readertype.obj 796KB
BookDue.obj 789KB
BookBorrow.obj 787KB
BookType.obj 786KB
SelectReader.obj 735KB
SelectBook.obj 735KB
lib.obj 412KB
db.obj 354KB
lib.res 1KB
图书馆管理系统.sql 38KB
lib.tds 2.31MB
lib.~bpr 8KB
BookBorrow.~cpp 10KB
Parent.~cpp 7KB
Main.~cpp 5KB
BookOrder.~cpp 3KB
ReaderInfo.~cpp 3KB
BookReturn.~cpp 2KB
共 149 条
- 1
- 2
资源评论
zhongzhongyangy
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功