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

📄 returnunit.pas

📁 图书馆管理系统,非常有用,希望给你带来帮助
💻 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 + -