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

📄 huanbooku.pas

📁 包含详细的代码设计,实现图书管理系统功能.是一个很好的实例
💻 PAS
字号:
unit HuanBookU;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls,ADODB, DB, Grids, DBGrids,StrUtils,
  ComCtrls;

type
  THuanBookF = class(TForm)
    StaticText1: TStaticText;
    Edit1: TEdit;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    ListBoxWeiID: TListBox;
    ListView1: TListView;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    ListBoxHuanID: TListBox;
    ListBoxHuan: TListBox;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Edit1Exit(Sender: TObject);
    procedure ListBoxHuanDblClick(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure ListView1DblClick(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    procedure CGetLendBook(readercardid:string);
    function CSaveHuan(readercardid:string):boolean;
    procedure WMNCPaint(var Msg : TWMNCPaint); message WM_NCPAINT;
  public
    { Public declarations }

  end;

var
  HuanBookF: THuanBookF;
implementation

{$R *.dfm}

uses DataModule,ShareU, MainU;

procedure THuanBookF.WMNCPaint(var Msg: TWMNCPaint);
begin
    inherited;
    draw(HuanBookF);
end;

function THuanBookF.CSaveHuan(readercardid:string):boolean;
var
  Query:TADOQuery;
  i:integer;
begin
    Query:=TADOQuery.Create(self);
    Query.Connection:=dm.ADOConnection1;
    Query.SQL.Text:='update lend_book set state=0 where Readercardid=:readercardid '+
                  ' and Bookid=:bookid and state=1';
    Query.Parameters.ParamByName('readercardid').Value:=readercardid;

    dm.ADOConnection1.BeginTrans;
    try
      for i:=0 to listboxhuanid.Items.Count-1 do
      begin
        Query.Parameters.ParamByName('bookid').Value:=listboxhuanid.Items.Strings[i];
        Query.ExecSQL;
      end;
      dm.ADOConnection1.CommitTrans;
      result:=true;
    except
      dm.ADOConnection1.RollbackTrans;
      showmessage('还书失败!');
      result:=false;
    end;
    query.Close;
    query.Free;
end;

procedure THuanBookF.CGetLendBook(readercardid:string);
var
  Query:TADOQuery;
begin
    Query:=TADOQuery.Create(self);
    Query.Connection:=dm.ADOConnection1;
    Query.SQL.Text:='select bookid from lend_book where readercardid=:readercardid'+
                   ' and state=:state';
    Query.Parameters.ParamByName('readercardid').Value:=readercardid;
    Query.Parameters.ParamByName('state').Value:=1;
    Query.Open;
    Query.First;
    while not query.Eof do
    begin
      with listview1.Items.Add do
      begin
          listboxweiid.Items.Add(query.FieldByName('bookid').Value);
          caption:=inttostr(listboxweiid.Items.Count)+')';
          subitems.Add(DM.GetBookName(query.FieldByName('bookid').Value));
      end;
      query.Next;
    end;
    query.Close;
    query.Free;
end;

procedure THuanBookF.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    HuanBookF:=nil;
    action:=cafree;
end;

procedure THuanBookF.Edit1Exit(Sender: TObject);
begin
    listview1.Items.Clear;
    listboxweiid.Items.Clear;
    listboxhuanid.Items.Clear;
    listboxhuan.Items.Clear;
    CGetLendBook(trim(Edit1.Text));
end;

procedure THuanBookF.ListBoxHuanDblClick(Sender: TObject);
begin
    listboxhuanid.Items.Delete(listboxhuan.ItemIndex);
    listboxhuan.DeleteSelected;
    getOrder(ListBoxHuan);//ShareU-getOrder
end;

procedure THuanBookF.BitBtn2Click(Sender: TObject);
begin
      if CSaveHuan(trim(edit1.Text)) then
      begin
       showmessage('还书成功!');
       close;
     end;
end;

procedure THuanBookF.ListView1DblClick(Sender: TObject);
var
  str:string;
begin
    if listboxhuanid.Items.IndexOf(listboxweiid.Items.Strings[listview1.Selected.Index])<0 then  //没有则增加新的
    begin
     str:=listview1.Selected.SubItems.Strings[0];
     listboxhuanid.Items.Add(listboxweiid.Items.Strings[listview1.Selected.Index]);
     listboxhuan.Items.Add(inttostr(listboxhuan.Items.count+1)+')'+rightstr(str,length(str)-pos(')',str)));
    end;
end;

procedure THuanBookF.BitBtn3Click(Sender: TObject);
begin
    close;
end;

procedure THuanBookF.FormCreate(Sender: TObject);
begin
    caption:='还书';
    Icon:=mainf.Icon;
end;

end.

⌨️ 快捷键说明

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