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

📄 unit8.~pas

📁 可以显示数据库中图书的信息以及读者的信息
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
          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 + -