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

📄 bookclosefrm.~pas

📁 基于Interbase的图书管理系统
💻 ~PAS
字号:
unit bookclosefrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ChildFrm, ExtCtrls, StdCtrls, Buttons, ComCtrls, Mask, DBCtrls,
  Menus;

type
  TBookcloseForm = class(TChildForm)
    GroupBox1: TGroupBox;
    GroupBox3: TGroupBox;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label13: TLabel;
    DBE1: TDBEdit;
    DBE2: TDBEdit;
    DBE3: TDBEdit;
    DBE4: TDBEdit;
    DBE5: TDBEdit;
    GroupBox4: TGroupBox;
    LBbook: TListBox;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Panel1: TPanel;
    Label1: TLabel;
    Edreaderno: TEdit;
    BtBreaderno: TBitBtn;
    Panel2: TPanel;
    Label2: TLabel;
    Edreaderid: TEdit;
    BtBreaderid: TBitBtn;
    Splitter1: TSplitter;
    Panel3: TPanel;
    GroupBox6: TGroupBox;
    Splitter2: TSplitter;
    Label22: TLabel;
    Label23: TLabel;
    GroupBox2: TGroupBox;
    Label7: TLabel;
    Edbookid: TEdit;
    BtBsave: TBitBtn;
    BtBcancel: TBitBtn;
    GBbook: TGroupBox;
    CB1: TCheckBox;
    CB2: TCheckBox;
    CB3: TCheckBox;
    CB4: TCheckBox;
    CB5: TCheckBox;
    CB6: TCheckBox;
    CB7: TCheckBox;
    GroupBox5: TGroupBox;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    Label8: TLabel;
    Ednomal: TEdit;
    Label9: TLabel;
    Edstand: TEdit;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    procedure FormDestroy(Sender: TObject);
    procedure BtBreaderidClick(Sender: TObject);
    procedure BtBreadernoClick(Sender: TObject);
    procedure EdreaderidKeyPress(Sender: TObject; var Key: Char);
    procedure FormShow(Sender: TObject);
    procedure BtBcancelClick(Sender: TObject);
    procedure BtBsaveClick(Sender: TObject);
    procedure EdbookidKeyPress(Sender: TObject; var Key: Char);
    procedure EdstandKeyPress(Sender: TObject; var Key: Char);
    procedure EdnomalKeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn4Click(Sender: TObject);
    procedure LBbookClick(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
        { Private declarations }
  public
     procedure clearDBEdit;
            { Public declarations }
  end;

var
  BookcloseForm: TBookcloseForm;

implementation

uses dmfrm, delhistoryfrm;

{$R *.dfm}
procedure TBookcloseForm.clearDBEdit;
begin
  Edreaderid.Clear;
  EdReaderno.Clear;
  DBE1.Clear;
  DBE2.Clear;
  DBE3.Clear;
  DBE4.Clear;
  DBE5.Clear;
  Edbookid.Clear;
  LBbook.Clear;
  CB1.Checked:=false;
  CB2.Checked:=false;
  CB3.Checked:=false;
  CB4.Checked:=false;
  CB5.Checked:=false;
  CB6.Checked:=false;
  CB7.Checked:=false;
end;

procedure TBookcloseForm.FormDestroy(Sender: TObject);
begin
  inherited;
BookcloseForm:=nil;
end;

procedure TBookcloseForm.BtBreaderidClick(Sender: TObject);
begin
  inherited;
 if Edreaderid.Text=Emptystr then
  begin
   bookInformation('请输入借书证号!');
   Edreaderid.SetFocus;
   Edreaderid.Clear;
   exit;
  end;
 dmbook.readerfirst;
  if not dmbook.Qryreader.Locate('reader_id',Edreaderid.Text,[]) then
   begin
    clearDBEdit;
    bookInformation('输入借书证号在数据库中不存在!');
    Edreaderid.SetFocus;
    exit;
   end;
//dmbook.Qryreader.EnableControls;
LBbook.Items.text:=dmbook.getborrowedbook(Edreaderid.Text);
end;

procedure TBookcloseForm.BtBreadernoClick(Sender: TObject);
begin
  inherited;
 if Edreaderno.Text=Emptystr then
  begin
   bookInformation('请输入工号!');
   Edreaderno.SetFocus;
   Edreaderno.Clear;
   exit;
  end;
  dmbook.readerfirst;
  if not dmbook.Qryreader.Locate('reader_no',Edreaderno.Text,[]) then
   begin
    clearDBEdit;
    bookInformation('输入工号在数据库中不存在!');
    Edreaderno.SetFocus;
    exit;
   end;
//dmbook.Qryreader.EnableControls;
LBbook.Items.text:=dmbook.getborrowedbook(dmbook.Qryreader['reader_id']);
end;

procedure TBookcloseForm.EdreaderidKeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
 if key=#13 then
 begin
  if TEdit(Sender)=Edreaderid then BtBreaderidClick(Sender);
  if TEdit(Sender)=Edreaderno then BtBreadernoClick(Sender);
 end
 else begin
        if not(key in ['0'..'9',#8]) then
         begin
          key:=#0;
          beep;
         end;
       end;
end;

procedure TBookcloseForm.FormShow(Sender: TObject);
begin
  inherited;
 dmbook.closebook;
 dmbook.closereader;
 dmbook.closeBooklose;   
 dmbook.openbook;
 dmbook.openreader;
 dmbook.openBooklose;
 clearDBEdit;
end;

procedure TBookcloseForm.BtBcancelClick(Sender: TObject);
begin
  inherited;
Edbookid.Clear;
CB1.Checked:=false;
CB2.Checked:=false;
CB3.Checked:=false;
CB4.Checked:=false;
CB5.Checked:=false;
CB6.Checked:=false;
CB7.Checked:=false;
end;

procedure TBookcloseForm.BtBsaveClick(Sender: TObject);
var
 bookmark,strtemp:string;
 book_lose:integer;
begin
  inherited;
  if DBE2.Text=Emptystr then
   begin
    bookInformation('输入借书证号,并确认!');
   Edreaderid.Clear;
   Edreaderid.SetFocus;
   exit;
   end;
 if Edbookid.Text=Emptystr then
  begin
   bookInformation('输入遗失破损图书的书号!');
   Edbookid.Clear;
   Edbookid.SetFocus;
   exit;
  end;
 dmbook.bookfirst;
  bookmark:=dmbook.Qrybook.Bookmark;
  if not dmbook.Qrybook.Locate('book_id',Edbookid.Text,[]) then
    begin
      bookInformation('输入书号在数据中不存在!');
      Edbookid.Clear;
      Edbookid.SetFocus;
      exit;
    end;
  dmbook.Qrybook.Bookmark:=bookmark;
 if (CB1.Checked=false)and(CB2.Checked=false)and(CB2.Checked=false)
 and(CB3.Checked=false)and(CB4.Checked=false)and(CB5.Checked=false)and
 (CB6.Checked=false)and(CB7.Checked=false) then
   begin
    bookInformation('至少选择一种原因!');
    GBbook.SetFocus;
    exit;
   end;
if CB1.Checked then strtemp:=strtemp+'少页、';
if CB2.Checked then strtemp:=strtemp+'散页、';
if CB3.Checked then strtemp:=strtemp+'折叠、';
if cb4.Checked then strtemp:=strtemp+'封面破损、';
if cb5.Checked then strtemp:=strtemp+'页面破损、';
if cb6.Checked then strtemp:=strtemp+'页面乱画、';
if cb7.Checked then begin
             strtemp:=strtemp+'遗失。';
             book_lose:=1;
           end
      else  book_lose:=0;
   //处理破损和遗失问题
if dmbook.Qrybooklose.Locate('reader_id;book_id;book_lose;booklose_cause',
 VarArrayOf([DBE2.text,Edbookid.text,book_lose,strtemp]),[]) then
  begin
   bookInformation('已经处理过了!');
   LBbook.SetFocus;
   exit;
  end;
 dmbook.closeBooklose;
 bookmark:=dmbook.Qrybooklose.SQL.Text;
 dmbook.Qrybooklose.SQL.Clear;
 dmbook.Qrybooklose.SQL.Add('INSERT INTO BOOKLOSE (');
 dmbook.Qrybooklose.SQL.Add('reader_id,book_id,book_lose,booklose_cause,booklose_date)');
dmbook.Qrybooklose.sql.Add('VALUES (:IREADER_ID,:IBOOK_ID,:IBOOK_LOSE,:IBOOKLOSE_CAUSE,:IBOOKLOSE_DATE)');
  try
dmbook.Qrybooklose.Prepare;
dmbook.Qrybooklose.ParamByName('IREADER_ID').AsString:=DBE2.Text;
dmbook.Qrybooklose.ParamByName('IBOOK_ID').AsString:=Edbookid.Text;
dmbook.Qrybooklose.ParamByName('IBOOK_LOSE').AsInteger:=book_lose;
dmbook.Qrybooklose.ParamByName('IBOOKLOSE_CAUSE').AsString:=strtemp;
dmbook.Qrybooklose.ParamByName('IBOOKLOSE_DATE').AsDateTime:=now;  
dmbook.Qrybooklose.ExecSQL;
  finally
dmbook.closeBooklose;
dmbook.Qrybooklose.SQL.Text:=bookmark;
dmbook.Qrybooklose.Prepare;
dmbook.openBooklose;
  end;
end;

procedure TBookcloseForm.EdbookidKeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
  if key=#13 then GBbook.SetFocus;
  if not(key in ['a'..'z','A'..'Z','0'..'9','-',#8]) then
   begin
    key:=#0;
    beep;
   end;
  if (key in ['a'..'z']) then key:=chr(ord(key)-32);
end;

procedure TBookcloseForm.EdstandKeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
if key=#13 then BitBtn2.SetFocus;
if not (key in ['0'..'9',#8]) then
    begin
    key:=#0;
    beep;
    end;
end;

procedure TBookcloseForm.EdnomalKeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
if key=#13 then Edstand.SetFocus;
if not (key in ['0'..'9',#8]) then
    begin
    key:=#0;
    beep;
    end;
end;

procedure TBookcloseForm.BitBtn4Click(Sender: TObject);
begin
  inherited;
Ednomal.Clear;
Edstand.Clear;
end;

procedure TBookcloseForm.LBbookClick(Sender: TObject);
var
 tmpstring:string;
begin
  inherited;
  tmpstring:=LBbook.Items.Strings[LBbook.ItemIndex];
  tmpstring:=copy(tmpstring,2,length(tmpstring));
  tmpstring:=copy(tmpstring,1,pos(']',tmpstring)-1);
  Edbookid.Text:=tmpstring;
end;

procedure TBookcloseForm.BitBtn3Click(Sender: TObject);
begin
  inherited;
if not assigned(delhistoryform) then
delhistoryform:=Tdelhistoryform.create(self);
try
  delhistoryform.Caption:='清空过期库';
  if delhistoryform.ShowModal=mrYes then
    dmbook.clearCloseTime(delhistoryform.DTPhistory.DateTime);
finally
 delhistoryform.free;
 delhistoryform:=nil;
end;
end;

procedure TBookcloseForm.BitBtn1Click(Sender: TObject);
begin
  inherited;
bookInformation('需要与《人事系统》、《新资系统》连接处理,请电脑室联系!');
end;

procedure TBookcloseForm.BitBtn2Click(Sender: TObject);
begin
  inherited;
bookInformation('需要与《人事系统》、《新资系统》连接处理,请电脑室联系!');
end;

procedure TBookcloseForm.FormCreate(Sender: TObject);
begin
  inherited;
Ednomal.Text:=inttostr(passdaybookcomm);//初始为默认借书过期一般扣点数
Edstand.Text:=inttostr(passdayself);    //初始为默认借书过期特殊扣点数
end;

end.

⌨️ 快捷键说明

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