📄 bookclosefrm.~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 + -