📄 unit8.~pas
字号:
stringgrid1.Cells[2,i]:=ADOQuery2.FieldByname('编号').AsString;
stringgrid1.Cells[3,i]:=ADOQuery2.FieldByname('书名').AsString;
stringgrid1.Cells[4,i]:=ADOQuery2.FieldByname('出版社').AsString;
stringgrid1.Cells[5,i]:=ADOQuery2.FieldByname('价格').AsString;
stringgrid1.Cells[6,i]:=ADOQuery2.FieldByname('借阅时间').AsString;
stringgrid1.Cells[7,i]:=ADOQuery2.FieldByname('应还时间').AsString;
stringgrid1.Cells[8,i]:=ADOQuery2.FieldByname('书库名称').AsString;
i:=i+1;
ADOQuery2.Next;
end;
booknum:=i-1;
edit2.SetFocus;
end;
end;
procedure TForm8.Button2Click(Sender: TObject);
var
i,maxnum:integer;
begin
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('SELECT max(借阅编号) 最大编号 FROM 图书借阅');
ADOQuery2.open;
maxnum:=ADOQuery2.FieldByname('最大编号').AsInteger+1;
for i:= 1 to 7 do
if stringgrid1.Cells[0,i]='新借' then
begin
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('INSERT INTO 图书借阅([借阅编号],[图书条形码],[读者条形码],');
ADOQuery2.SQL.Add('[借阅时间],[应还时间],[续借次数],[操作员],[状态])');
ADOQuery2.SQL.Add('VALUES('''+inttostr(maxnum)+''','''+stringgrid1.Cells[1,i]+''','''+edit1.Text+''','''+stringgrid1.Cells[6,i]+''',');
ADOQuery2.SQL.Add(''''+stringgrid1.Cells[7,i]+''',''0'','''+edit6.Text+''',''未还'')');
ADOQuery2.Execsql;
maxnum:=maxnum+1;
end;
amount:=amount-1;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('UPDATE 图书信息 SET 现存量='''+inttostr(amount)+''' where (' + label5.Caption + '='''+ edit2.Text +''''+')');
ADOQuery2.Execsql;
Button2.Enabled:= false;
edit1.Clear;
edit2.Clear;
edit6.Clear;
end;
procedure TForm8.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT c.借阅编号,c.图书条形码,b.书名,c.读者条形码,a.姓名,c.借阅时间,c.应还时间,c.续借次数,c.状态,c.操作员 FROM 读者信息 a,图书信息 b,图书借阅 c');
ADOQuery1.SQL.Add('where(a.条形码=c.读者条形码)and(b.条形码=c.图书条形码)and(状态=''未还'')');
ADOQuery1.SQL.Add('and(' + label8.Caption + ' like '+''''+'%' + edit5.Text + '%'+''''+')');
ADOQuery1.SQL.Add('and(' + label6.Caption + ' like '+''''+'%' + edit3.Text + '%'+''''+')');
ADOQuery1.SQL.Add('and(' + label7.Caption + ' like '+''''+'%' + edit4.Text + '%'+''''+')');
ADOQuery1.open;
edit7.SetFocus;
Button5.Enabled:=true;
end;
procedure TForm8.Button5Click(Sender: TObject);
var
maxnum:integer;
bookbar,readerbar:string;
returndate:Tdatetime;
money:double;
begin
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('SELECT max(归还编号) 最大编号 FROM 图书归还');
ADOQuery2.open;
maxnum:=ADOQuery2.FieldByname('最大编号').AsInteger+1;
bookbar:=ADOQuery1.FieldByname('图书条形码').AsString;
readerbar:=ADOQuery1.FieldByname('读者条形码').AsString;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('INSERT INTO 图书归还([归还编号],[图书条形码],[读者条形码],');
ADOQuery2.SQL.Add('[归还时间],[操作员],[确认归还])');
ADOQuery2.SQL.Add('VALUES('''+inttostr(maxnum)+''','''+bookbar+''','''+readerbar+''',');
ADOQuery2.SQL.Add(''''+datetostr(date)+''','''+edit7.Text+''',''1'')');
ADOQuery2.Execsql;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('DELETE FROM 图书借阅 WHERE 图书条形码 = ''' + bookbar + '''and 读者条形码=''' + readerbar + '''');
ADOQuery2.Execsql;
returndate:=ADOQuery1.FieldByname('应还时间').AsDateTime;
if (date+time-returndate)>0 then
begin
money:=0.1*(date-returndate);
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('SELECT max(罚款编号) 最大编号 FROM 图书罚款');
ADOQuery2.open;
maxnum:=ADOQuery2.FieldByname('最大编号').AsInteger+1;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('INSERT INTO 图书罚款([罚款编号],[图书条形码],[读者条形码],');
ADOQuery2.SQL.Add('[罚款日期],[是否交款],[备注])');
ADOQuery2.SQL.Add('VALUES('''+inttostr(maxnum)+''','''+bookbar+''','''+readerbar+''',');
ADOQuery2.SQL.Add(''''+datetostr(date)+''',''0'','''')');
ADOQuery2.Execsql;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE 图书罚款 SET 应罚金额=cast('''+floattostr(money)+''' as money) where 罚款编号='''+inttostr(maxnum)+'''');
ADOQuery1.Execsql;
end;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM 图书信息 where (条形码='''+ bookbar +''''+')');
ADOQuery1.Open;
amount:=ADOQuery1.FieldByname('现存量').AsInteger;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE 图书信息 SET 现存量='''+inttostr(amount+1)+''' where (条形码='''+ bookbar +''''+')');
ADOQuery1.Execsql;
Button5.Enabled:= false;
edit3.Clear;
edit4.Clear;
edit5.Clear;
edit7.Clear;
end;
procedure TForm8.Button6Click(Sender: TObject);
var
i,j:integer;
returndate:Tdatetime;
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT c.借阅编号,c.图书条形码,b.书名,c.读者条形码,a.姓名,c.借阅时间,c.应还时间,c.续借次数,c.状态,c.操作员 FROM 读者信息 a,图书信息 b,图书借阅 c');
ADOQuery1.SQL.Add('where(a.条形码=c.读者条形码)and(b.条形码=c.图书条形码)and(状态=''未还'')');
ADOQuery1.SQL.Add('and(' + label11.Caption + ' like '+''''+'%' + edit8.Text + '%'+''''+')');
ADOQuery1.SQL.Add('and(' + label12.Caption + ' like '+''''+'%' + edit9.Text + '%'+''''+')');
ADOQuery1.SQL.Add('and(' + label13.Caption + ' like '+''''+'%' + edit10.Text + '%'+''''+')');
ADOQuery1.open;
stringgrid2.Cells[0,0]:='借阅编号';
stringgrid2.Cells[1,0]:='图书条形码';
stringgrid2.Cells[2,0]:='书名';
stringgrid2.Cells[3,0]:='读者条形码';
stringgrid2.Cells[4,0]:='姓名';
stringgrid2.Cells[5,0]:='借阅时间';
stringgrid2.Cells[6,0]:='应还时间';
stringgrid2.Cells[7,0]:='续借次数';
stringgrid2.Cells[8,0]:='状态';
stringgrid2.Cells[9,0]:='操作员';
for i:= 1 to 9 do
for j := 0 to 9 do
stringgrid2.cells[j,i]:= '';
i:=1;
while not ADOQuery1.Eof do
begin
returndate:=ADOQuery1.FieldByname('应还时间').AsDateTime;
if (date+time-returndate)>0 then
begin
stringgrid2.Cells[0,i]:=ADOQuery1.FieldByname('借阅编号').AsString;
stringgrid2.Cells[1,i]:=ADOQuery1.FieldByname('图书条形码').AsString;
stringgrid2.Cells[2,i]:=ADOQuery1.FieldByname('书名').AsString;
stringgrid2.Cells[3,i]:=ADOQuery1.FieldByname('读者条形码').AsString;
stringgrid2.Cells[4,i]:=ADOQuery1.FieldByname('姓名').AsString;
stringgrid2.Cells[5,i]:=ADOQuery1.FieldByname('借阅时间').AsString;
stringgrid2.Cells[6,i]:=ADOQuery1.FieldByname('应还时间').AsString;
stringgrid2.Cells[7,i]:=ADOQuery1.FieldByname('续借次数').AsString;
stringgrid2.Cells[8,i]:=ADOQuery1.FieldByname('状态').AsString;
stringgrid2.Cells[9,i]:=ADOQuery1.FieldByname('操作员').AsString;
i:=i+1;
end;
ADOQuery1.Next;
end;
end;
procedure TForm8.Button7Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT c.罚款编号,c.图书条形码,b.书名,c.读者条形码,a.姓名,c.罚款日期,c.应罚金额,c.是否交款,c.备注 FROM 读者信息 a,图书信息 b,图书罚款 c');
ADOQuery1.SQL.Add('where(a.条形码=c.读者条形码)and(b.条形码=c.图书条形码)and(是否交款=0)');
ADOQuery1.SQL.Add('and(' + label11.Caption + ' like '+''''+'%' + edit8.Text + '%'+''''+')');
ADOQuery1.SQL.Add('and(' + label12.Caption + ' like '+''''+'%' + edit9.Text + '%'+''''+')');
ADOQuery1.SQL.Add('and(' + label13.Caption + ' like '+''''+'%' + edit10.Text + '%'+''''+')');
ADOQuery1.open;
num:=ADOQuery1.FieldByname('罚款编号').AsInteger;
edit14.SetFocus;
Button8.Enabled:=true;
end;
procedure TForm8.Button8Click(Sender: TObject);
begin
if edit14.Text ='' then exit;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE 图书罚款 SET 实收金额=cast('''+edit14.Text+''' as money),是否交款=1 where 罚款编号='''+inttostr(num)+'''');
ADOQuery1.Execsql;
Button8.Enabled:=false;
edit11.Clear;
edit12.Clear;
edit13.Clear;
edit14.Clear;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -