📄 unit8.~pas
字号:
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 + -