📄 returnunit.pas
字号:
unit ReturnUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Buttons;
type
TReturnForm = class(TForm)
Label1: TLabel;
Edit1: TEdit;
GroupBox1: TGroupBox;
ListView1: TListView;
BitBtn1: TBitBtn;
GroupBox2: TGroupBox;
BitBtn2: TBitBtn;
ListBox1: TListBox;
procedure Edit1Exit(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure ListView1DblClick(Sender: TObject);
procedure ListBox1DblClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
procedure WMNCpaint(var Msg:TWMNCPaint); message WM_NCPAINT;
public
{ Public declarations }
end;
var
ReturnForm: TReturnForm;
implementation
uses DMUnit,Share;
{$R *.dfm}
procedure TReturnForm.WMNCpaint(var Msg: TWMNCPaint);
begin
inherited;
Draw(ReturnForm);
end;
procedure TReturnForm.Edit1Exit(Sender: TObject);
begin
with DM do
begin
ReturnQuery.SQL.Text:='select l.book_isbn,s.book_name from lend_book as l'+
' inner join book_stock as s on l.book_isbn=s.book_isbn'+
' where l.read_id=:in0';
ReturnQuery.Parameters[0].Value:=Trim(edit1.Text);
ReturnQuery.Prepared;
ReturnQuery.Open;
listview1.Items.Clear;
while not returnQuery.Eof do
begin
with listview1.Items.Add do
begin
caption:=returnquery.Fields[0].AsString;
subitems.Add(returnquery.Fields[1].AsString);
end;
ReturnQuery.Next;
end;
Returnquery.Close;
end;
end;
procedure TReturnForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
Edit1Exit(Sender);
end;
end;
procedure TReturnForm.ListView1DblClick(Sender: TObject);
begin
if listview1.Selected<>nil then
if listbox1.Items.IndexOf(listview1.Selected.Caption)<0 then
listbox1.Items.Add(listview1.Selected.Caption);
end;
procedure TReturnForm.ListBox1DblClick(Sender: TObject);
begin
listbox1.DeleteSelected;
end;
procedure TReturnForm.BitBtn1Click(Sender: TObject);
var
i:integer;
begin
if listbox1.Items.Count=0 then
exit;
With DM do
begin
ADOConn.BeginTrans;
try
ReturnQuery.SQL.Text:='delete from lend_book where read_id=:in0 and book_isbn=:in1';
for i:=0 to listbox1.Items.Count-1 do
begin
ReturnQuery.Parameters[0].Value:=Edit1.Text;
ReturnQuery.Parameters[1].Value:=listbox1.Items[i];
ReturnQuery.Prepared;
ReturnQuery.ExecSQL;
end;
ReturnQuery.Close;
ReturnQuery.SQL.Text:='update book_stock set lendout="n" where book_isbn=:in0';
for i:=0 to listbox1.Items.Count-1 do
begin
ReturnQuery.Parameters[0].Value:=listbox1.Items[i];
ReturnQuery.Prepared;
ReturnQuery.ExecSQL;
end;
Returnquery.Close;
ReturnQuery.SQL.Text:='insert into return_log(read_id,book_isbn,return_date)'+
' values(:in0,:in1,:in2)';
for i:=0 to listbox1.Items.Count-1 do
begin
ReturnQuery.Parameters[0].Value:=edit1.Text;
ReturnQuery.Parameters[1].Value:=listbox1.Items[i];
ReturnQuery.Parameters[2].Value:=Now;
ReturnQuery.Prepared;
ReturnQuery.ExecSQL;
end;
ADOconn.CommitTrans;
except
ADOconn.RollbackTrans;
showmessage('在还书时发生意外!');
end;
ReturnQuery.Close;
end;
edit1.Text:='';
listview1.Items.Clear;
listbox1.Items.Clear;
end;
procedure TReturnForm.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure TReturnForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ReturnForm:=nil;
Action:=caFree;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -