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

📄 unit8.~pas

📁 可以显示数据库中图书的信息以及读者的信息
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit Unit8;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DBGrids, StdCtrls, Grids, Mask, DBCtrls, ComCtrls, DB, ADODB,
  Buttons;

type
  TForm8 = class(TForm)
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    ADOQuery2: TADOQuery;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    Label9: TLabel;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    DBEdit3: TDBEdit;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    Button3: TButton;
    GroupBox2: TGroupBox;
    Label5: TLabel;
    Edit2: TEdit;
    Button4: TButton;
    StringGrid1: TStringGrid;
    Button2: TButton;
    Edit6: TEdit;
    TabSheet2: TTabSheet;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Button1: TButton;
    DBGrid1: TDBGrid;
    Button5: TButton;
    TabSheet4: TTabSheet;
    TabSheet5: TTabSheet;
    Label10: TLabel;
    Edit7: TEdit;
    Label11: TLabel;
    Edit8: TEdit;
    Edit9: TEdit;
    Label12: TLabel;
    Label13: TLabel;
    Edit10: TEdit;
    Button6: TButton;
    StringGrid2: TStringGrid;
    Label14: TLabel;
    Edit11: TEdit;
    Edit12: TEdit;
    Label15: TLabel;
    Label16: TLabel;
    Edit13: TEdit;
    Button7: TButton;
    Button8: TButton;
    Label17: TLabel;
    Edit14: TEdit;
    DBGrid2: TDBGrid;
    Label18: TLabel;
    procedure Formclose(Sender: TObject; var Action: TCloseAction);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    keeptime,booknum,num,amount:integer;

  end;

var
  Form8: TForm8;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm8.Formclose(Sender: TObject; var Action: TCloseAction);
begin
   Form2.show;
   Form8.hide;
end;

procedure TForm8.Button4Click(Sender: TObject);
var
   i:integer;
   booktype:string;
begin
  Button2.Enabled:=true;
  if booknum-strtoint(dbedit3.Text)>=0 then
   begin
    showmessage('达到借书数目的上限,请先还再借');
    Button2.Enabled:=false;
    exit;
   end;
  ADOQuery2.Close;
  ADOQuery2.SQL.Clear;
  ADOQuery2.SQL.Add('SELECT * FROM 图书信息 where (' + label5.Caption + '='''+ edit2.Text +''''+')');
  //ADOQuery2.SQL.Add('SELECT * FROM 图书信息 where 条形码 = '''+ edit2.Text +'''');
  ADOQuery2.open;
  amount:=ADOQuery2.FieldByname('现存量').AsInteger;
  if ADOQuery2.FieldByname('条形码').AsString <>'' then
    begin
      for i:=1 to 7 do
       if stringgrid1.Cells[1,i]=ADOQuery2.FieldByname('条形码').AsString then
        begin
         showmessage('读者已借此书,不允许再借');
         Button2.Enabled:=false;
         edit2.Clear;
         exit;
        end;
       if ADOQuery2.FieldByname('现存量').AsInteger=0 then
        begin
         showmessage('此书都已借出');
         Button2.Enabled:=false;
         edit2.Clear;
         exit;
        end;

     stringgrid1.Cells[0,booknum+1]:='新借';
     stringgrid1.Cells[1,booknum+1]:=ADOQuery2.FieldByname('条形码').AsString;
     stringgrid1.Cells[2,booknum+1]:=ADOQuery2.FieldByname('编号').AsString;
     stringgrid1.Cells[3,booknum+1]:=ADOQuery2.FieldByname('书名').AsString;
     stringgrid1.Cells[4,booknum+1]:=ADOQuery2.FieldByname('出版社').AsString;
     stringgrid1.Cells[5,booknum+1]:=ADOQuery2.FieldByname('价格').AsString;
     stringgrid1.Cells[8,booknum+1]:=ADOQuery2.FieldByname('书库名称').AsString;

     booktype:=ADOQuery2.FieldByname('类型').AsString;
     ADOQuery2.Close;
     ADOQuery2.SQL.Clear;
     ADOQuery2.SQL.Add('SELECT * FROM 图书类型 where 类型 = '''+ booktype +'''');
     ADOQuery2.open;
     keeptime:=ADOQuery2.FieldByname('可借天数').AsInteger;
     stringgrid1.Cells[6,booknum+1]:=datetostr(date);
     stringgrid1.Cells[7,booknum+1]:=datetostr(date+keeptime);
     booknum:= booknum+1;
     edit5.Clear;
     edit6.SetFocus;
    end;
end;

procedure TForm8.Button3Click(Sender: TObject);
var
   barcode:string;
   i,j:integer;
begin
   DBEdit1.ReadOnly := true;
   DBEdit2.ReadOnly := true;
   DBEdit3.ReadOnly := true;
   booknum:=0;
   ADOQuery1.Close;
   ADOQuery1.SQL.Clear;
   ADOQuery1.SQL.Add('SELECT a.*,b.可借图书册数 FROM 读者信息 a,读者类型 b where(a.' + label1.Caption + '='''+ edit1.Text + ''')and(a.类型=b.类型)');
   ADOQuery1.open;
   if ADOQuery1.FieldByname('是否挂失').AsBoolean=true then
     begin
       Button2.Enabled:= false;
       Button4.Enabled:= false;
       MessageBox(handle, PAnsiChar('此卡已经挂失。'), nil, MB_ICONERROR + MB_OK);
     end
   else
     begin
       Button2.Enabled:= true;
       Button4.Enabled:= true;
       DBEdit1.Text:=ADOQuery1.FieldByname('姓名').AsString;
       DBEdit2.Text:=ADOQuery1.FieldByname('类型').AsString;
       DBEdit3.Text:=ADOQuery1.FieldByname('可借图书册数').AsString;

       barcode:=ADOQuery1.FieldByname('条形码').AsString;
       ADOQuery2.Close;
       ADOQuery2.SQL.Clear;
       ADOQuery2.SQL.Add('SELECT a.*,b.书名,b.编号,b.出版社,b.价格,b.书库名称 FROM 图书借阅 a,图书信息 b where(读者条形码=''' + barcode + ''')and(a.图书条形码=b.条形码)and(a.状态=''未还'')');
       ADOQuery2.open;

       stringgrid1.Cells[0,0]:='状态';
       stringgrid1.Cells[1,0]:='图书条形码';
       stringgrid1.Cells[2,0]:='编号';
       stringgrid1.Cells[3,0]:='书名';
       stringgrid1.Cells[4,0]:='出版社';
       stringgrid1.Cells[5,0]:='价格';
       stringgrid1.Cells[6,0]:='借阅时间';
       stringgrid1.Cells[7,0]:='应还时间';
       stringgrid1.Cells[8,0]:='书库名称';

       for i:= 1 to 7 do
            for j := 0 to 8 do
              stringgrid1.cells[j,i]:= '';
       i:=1;
       while not ADOQuery2.Eof do
         begin
          stringgrid1.Cells[0,i]:=ADOQuery2.FieldByname('状态').AsString;
          stringgrid1.Cells[1,i]:=ADOQuery2.FieldByname('图书条形码').AsString;

⌨️ 快捷键说明

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