📄 borrowmanage.pas
字号:
unit BorrowManage;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Grids, DBGrids, Mask, DBCtrls;
type
TBorrowManageForm = class(TForm)
DBGrid1: TDBGrid;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
BorrowManageForm: TBorrowManageForm;
Types : String;
Purview : array [1..2] of Smallint;
ReaderId : Integer;
UserId,BookId, DateLend, DateBack : String;
Xujie, Chaoqi, N :String;
DT : TDateTime;
NumRemain, NumCanBorrow : Smallint;
implementation
uses Login,Main,Data;
{$R *.dfm}
procedure TBorrowManageForm.FormShow(Sender: TObject);
begin
Button1.Visible := true;
Button2.Visible := true;
Types := Main.Types;
DBGrid1.DataSource := Data.DataModule.BorrowManageDS;
if Main.Choose=9 then
begin
GroupBox1.Caption := '借阅管理';
Button2.Enabled := false;
Button2.Visible := false;
end
else if Main.Choose=10 then
begin
GroupBox1.Caption := '归还管理';
Button1.Enabled := false;
Button1.Visible := false;
end
end;
procedure TBorrowManageForm.Button1Click(Sender: TObject);
begin
UserId := Edit1.Text;
BookId := Edit2.Text;
DT := Date();
DateLend := datetostr(DT);
DateBack := datetostr(DT + 30);
Xujie := '2';
Chaoqi := '0';
with Data.DataModule.BorrowManage do
begin
//是否还有书可借
Close;
SQL.Clear;
SQL.Add('select * from 在库图书 where 图书编号 = ''' + BookId + '''');
Open;
NumRemain := FieldByName('剩余数量').AsInteger;
if (NumRemain=0) then
begin
Application.MessageBox('该书无库存','借阅信息',MB_OK+MB_ICONEXCLAMATION);
abort;
end;
//读者是否还可借
NumCanBorrow := 7;
Close;
SQL.Clear;
SQL.Add('select * from 读者 where 读者证号 = ''' + UserId + '''');
Open;
NumRemain := FieldByName('已借数量').AsInteger;
if (NumRemain=NumCanBorrow) then
begin
Application.MessageBox('该读者以借满','借阅信息',MB_OK+MB_ICONEXCLAMATION);
abort;
end;
//插入借阅信息
Close;
SQL.Clear;
SQL.Add('insert into 借阅信息 values (');
SQL.Add(UserId);
SQL.Add(',');
SQL.Add('''' + BookId + '''');
SQL.Add(',');
SQL.Add('''' + DateLend + '''');
SQL.Add(',');
SQL.Add('''' + DateBack + '''');
SQL.Add(',');
SQL.Add('''' + Xujie + '''');
SQL.Add(',');
SQL.Add('''' + Chaoqi + '''');
SQL.Add(',');
SQL.Add(Login.UseId);
SQL.Add(')');
ExecSQL;
//更新读者的借阅信息
Close;
SQL.Clear;
SQL.Add('update 读者 set 已借数量=已借数量+1 where 读者证号 = ''' + UserId + '''');
ExecSQL;
//更新图书的信息
Close;
SQL.Clear;
SQL.Add('update 在库图书 set 剩余数量=剩余数量-1,被借阅次数=被借阅次数+1 where 图书编号 = ''' + BookId + '''' );
ExecSQL;
//更新视图
Close;
SQL.Clear;
SQL.Add('select * from 借阅信息');
SQL.Add('where 读者证号 = ');
SQL.Add('''' + UserId + '''');
Open;
end;
end;
procedure TBorrowManageForm.Button2Click(Sender: TObject);
begin
UserId := Edit1.Text;
BookId := Edit2.Text;
DT := Date();
DateLend := datetostr(DT);
DateBack := datetostr(DT + 30);//简化处理,借期统一使用30天
Xujie := '2';//简化处理,续借次数统一为2次
Chaoqi := '0';//简化处理,超期项不使用
with Data.DataModule.BorrowManage do
begin
//删除借阅信息
Close;
SQL.Clear;
SQL.Add('delete from 借阅信息');
SQL.Add('where 读者证号= ');
SQL.Add('''' + UserId + '''');
SQL.Add(' and 图书编号= ');
SQL.Add('''' + BookId + '''');
ExecSQL;
//更新读者的借阅信息
Close;
SQL.Clear;
SQL.Add('update 读者 set 已借数量=已借数量-1 where 读者证号 = ''' + UserId + '''');
ExecSQL;
//更新图书的信息
Close;
SQL.Clear;
SQL.Add('update 在库图书 set 剩余数量=剩余数量+1 where 图书编号 = ''' + BookId + '''' );
ExecSQL;
//更新视图
Close;
SQL.Clear;
SQL.Add('select * from 借阅信息');
SQL.Add('where 读者证号 = ');
SQL.Add('''' + UserId + '''');
Open;
end;
end;
procedure TBorrowManageForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Button2.Enabled := true;
Button2.Visible := true;
Button2.Enabled := true;
Button2.Visible := true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -