delrec.pas

来自「好多上载非界面和非WEB源码」· PAS 代码 · 共 209 行

PAS
209
字号
unit delrec;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls,dbtables;

type
  Tdelfrm = class(TForm)
    page1: TPageControl;
    ts1: TTabSheet;
    ts2: TTabSheet;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    r1: TRadioButton;
    Label1: TLabel;
    Edit1: TEdit;
    r2: TRadioButton;
    ListView1: TListView;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Label2: TLabel;
    Panel4: TPanel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    ListView2: TListView;
    procedure r1Click(Sender: TObject);
    procedure r2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure ts1Show(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure ts2Show(Sender: TObject);
  private
  function checkbookno(b_no:string) :boolean;
  procedure delbook(b_no:string);
  procedure listallbooks;
  procedure booksumup;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  delfrm: Tdelfrm;
  result: boolean;
implementation
 uses global;
{$R *.dfm}

procedure Tdelfrm.r1Click(Sender: TObject);
begin
if r1.Checked then
begin
edit1.Enabled:=true;
edit1.Color:=clwindow;
r2.Checked:=false;
listview1.Enabled:=false;
listview1.Color:=clbtnface;
end;
end;

procedure Tdelfrm.r2Click(Sender: TObject);
begin
if r2.Checked then
begin
r1.Checked:=false;
edit1.Enabled:=false;
edit1.Color:=clinfobk;
listview1.Enabled:=true;
listview1.Color:=clwindow;
end;
end;
function tdelfrm.checkbookno(b_no:string) :boolean;
var t:ttable;
begin
t:=ttable.Create(nil);
t.DatabaseName:=dbname;
t.TableName:='book_info.db';
t.Open;
t.SetKey;
t.FieldByName('图书编号').AsString:=b_no;
if t.GotoKey then result:=true else result:=false;
t.Close;
t.Free;
end;
procedure tdelfrm.delbook(b_no:string);
var q:tquery;
begin
q:=tquery.Create(nil);
q.DatabaseName:=dbname;
q.SQL.Add('delete from book_info where 图书编号=:book_no');
q.ParamByName('book_no').AsString:=b_no;
q.ExecSQL;
messagedlg('成功删除!',mtinformation,[mbYes],0);
q.Close;
q.Free;
end;
procedure tdelfrm.listallbooks;
var q:tquery;
begin
q:=tquery.Create(nil);
q.DatabaseName:=dbname;
q.SQL.Add('select * from book_info ');
q.Open;
listview1.Items.Clear;
while not q.Eof do
begin
with listview1.Items.Add do
begin
caption:=q.fieldbyname('图书编号').AsString;
subitems.Add(q.fieldbyname('书名').AsString);
subitems.Add(q.fieldbyname('作者').AsString);
subitems.Add(q.fieldbyname('出版社').AsString);
subitems.Add(datetostr(q.fieldbyname('出版时间').AsDateTime));
subitems.Add(q.fieldbyname('类别').AsString);
if isborrowed (caption) then subitems.Add('是') else subitems.Add('否');
end;
q.Next;
end;
label2.Caption:='共'+inttostr(listview1.Items.Count)+'本';
q.close;
q.free;
end;

procedure Tdelfrm.BitBtn1Click(Sender: TObject);
var b_no:string;
ch:integer;
begin
if r1.Checked then
if checkbookno (edit1.Text) then b_no:=edit1.Text
else
begin
messagedlg('图书不存在',mterror,[mbYes],0);
edit1.Clear;
exit;
end;
if r2.Checked then
if listview1.Selected=nil then exit
else b_no:=listview1.Selected.Caption;
if isborrowed (b_no) then
begin
messagedlg('该图书处于借出状态,不能删除!',mtwarning,[mbYes],0);
exit;
end;
ch:=messagedlg('确认删除图书吗?',mtconfirmation,[mbYes,mbNo],0);
if ch=mrNo then exit;
delbook(b_no);
listallbooks;
end;

procedure Tdelfrm.ts1Show(Sender: TObject);
begin
listallbooks;
end;

procedure Tdelfrm.BitBtn2Click(Sender: TObject);
begin
close;
end;

procedure tdelfrm.booksumup;
var
q:tquery;
begin
q:=tquery.Create(nil);
q.DatabaseName:=dbname;
q.SQL.Add('select * from book_info');
q.Open;
edit2.Text:=inttostr(q.RecordCount);
q.Close;
q.SQL.Clear;
q.SQL.Add('select * from borrow_info');
q.Open;
edit3.Text:=inttostr(q.RecordCount);
edit4.Text:=inttostr(strtoint(edit2.Text)-strtoint(edit3.Text));
q.Close;
q.SQL.Clear;
q.SQL.Add('select 类别,count(类别) as 藏书总数 from book_info group by 类别');
q.Open;
listview2.Items.Clear;
while not q.Eof do
begin
with listview2.Items.Add do
begin
caption:=q.fieldbyname('类别').AsString;
subitems.Add(q.fieldbyname('藏书总数').AsString);
end;
q.Next;
end;
q.Close;
q.Free;
end;

procedure Tdelfrm.ts2Show(Sender: TObject);
begin
booksumup;
end;

end.

⌨️ 快捷键说明

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