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

📄 borrowmanage.pas

📁 四川大学图书管理系统!sql+c++实现
💻 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 + -