📄 lendunit.~pas
字号:
unit LendUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Buttons;
type
TLendForm = class(TForm)
Label1: TLabel;
Edit1: TEdit;
GroupBox1: TGroupBox;
Label2: TLabel;
Edit2: TEdit;
BitBtn1: TBitBtn;
ListView1: TListView;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
procedure Edit1Exit(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
procedure WMNCpaint(var Msg:TWMNCPaint); message WM_NCPAINT;
public
{ Public declarations }
cannum,havenum,tempnum:byte;
end;
var
LendForm: TLendForm;
implementation
uses DMUnit,Share;
{$R *.dfm}
{ TLendForm }
procedure TLendForm.WMNCpaint(var Msg: TWMNCPaint);
begin
inherited;
Draw(LendForm);
end;
procedure TLendForm.Edit1Exit(Sender: TObject);
begin
with DM do
begin
LendQuery.SQL.Text:='select t.book_num from read_type as t inner join '+
'read_info as i on t.type_sno=i.read_type where i.read_id=:in0';
LendQuery.Parameters[0].Value:=Trim(edit1.Text);
LendQuery.Prepared;
LendQuery.Open;
if LendQuery.RecordCount=1 then
begin
cannum:=LendQuery.fields[0].AsInteger;
LendQuery.SQL.Text:='select count(read_id) from lend_book where read_id=:in0';
LendQuery.Parameters[0].Value:=Trim(Edit1.Text);
LendQuery.Prepared;
LendQuery.Open;
havenum:=LendQuery.Fields[0].AsInteger;
tempnum:=havenum;
LendQuery.Close;
end;
LendQuery.Close;
end;
listview1.Items.Clear;
end;
procedure TLendForm.BitBtn1Click(Sender: TObject);
var
bookname:string;
begin
if edit1.Text='' then
begin
showmessage('没有输入读者编号!');
edit1.SetFocus;
exit;
end;
if edit2.Text='' then
begin
showmessage('没有输入ISBN编号!');
exit;
end;
if tempnum=cannum then
begin
showmessage('该读者已经借满,不可再借!');
exit;
end;
if not DM.ValReadId(Trim(edit1.Text)) then
begin
showmessage('不存在该读者编号!');
edit1.SetFocus;
exit;
end;
bookname:=DM.ValBook(Trim(edit2.Text));
if bookname='' then
begin
showmessage('不存在该书籍!');
exit;
end;
with listview1.Items.Add do
begin
caption:=Trim(edit1.Text);
subitems.Add(bookname);
end;
inc(tempnum);
end;
procedure TLendForm.BitBtn2Click(Sender: TObject);
var
i:byte;
begin
if listview1.Items.Count=0 then
begin
showmessage('没有输入要借的书籍!');
exit;
end;
with DM do
begin
ADOconn.BeginTrans;
try
LendQuery.SQL.Text:='insert into lend_book(read_id,book_isbn) values(:in0,:in1)';
for i:=0 to listview1.Items.Count-1 do
begin
LendQuery.Parameters[0].Value:=Trim(edit1.Text);
LendQuery.Parameters[1].Value:=Trim(edit2.Text);
LendQuery.Prepared;
LendQuery.ExecSQL;
end;
LendQuery.SQL.Text:='update book_stock set lendout="y" where book_isbn=:in0';
for i:=0 to listview1.Items.Count-1 do
begin
Lendquery.Parameters[0].Value:=Trim(Edit2.Text);
LendQuery.Prepared;
LendQuery.ExecSQL;
end;
LendQuery.SQL.Text:='insert into lend_log(read_id,book_isbn,lend_date) '+
' values(:in0,:in1,:in2)';
for i:=0 to listview1.Items.Count-1 do
begin
LendQuery.Parameters[0].Value:=Trim(Edit1.Text);
LendQuery.Parameters[1].Value:=Trim(Edit2.Text);
LendQuery.Parameters[2].Value:=now;
LendQuery.Prepared;
LendQuery.ExecSQL;
end;
ADOconn.CommitTrans;
except
ADOConn.RollbackTrans;
showmessage('在借书时发生意外!事务回滚');
end;
LendQuery.Close;
end;
edit1.Clear;
edit2.Clear;
listview1.Items.Clear;
edit1.SetFocus;
end;
procedure TLendForm.BitBtn3Click(Sender: TObject);
begin
close;
end;
procedure TLendForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
AboutForm:=nil;
Action:=caFree;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -