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

📄 ureeditf.pas

📁 一套功能非常丰富的图书管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit uReEditF;

interface

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

type
  TReEditF = class(TFrame)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Button1: TButton;
    Panel1: TPanel;
    Edit1: TEdit;
    StaticText1: TStaticText;
    Button2: TButton;
    GroupBox1: TGroupBox;
    ListView1: TListView;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    Button4: TButton;
    TabSheet4: TTabSheet;
    GroupBox4: TGroupBox;
    ListView3: TListView;
    GroupBox6: TGroupBox;
    StaticText5: TStaticText;
    StaticText6: TStaticText;
    StaticText7: TStaticText;
    StaticText8: TStaticText;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    GroupBox7: TGroupBox;
    ListView2: TListView;
    GroupBox8: TGroupBox;
    ClassEdit: TEdit;
    ClassNameEdit: TEdit;
    StaticText3: TStaticText;
    StaticText2: TStaticText;
    Button3: TButton;
    Button5: TButton;
    Button6: TButton;
    SaveDialog1: TSaveDialog;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure ListView2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);
    procedure RadioButton4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure ListView2Change(Sender: TObject; Item: TListItem;
      Change: TItemChange);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    function GetUserID(Code : string):string;
    procedure DelInit;
    procedure  EditInit;
    procedure DelBook(Code: string);
    procedure InsClass(ClassID , ClassName : string);
    procedure DelClass(ClassID : string);
    procedure UpDateClass(ClassID,ClassName : string);
    function CheckExistClass(ClassID : string):boolean;
    function CheckExistCode(Code : string):boolean;
    function GetClassName(ClassID : string):string;
    procedure CountInit;
    function GetIsClassBookCount(ClassID: string):integer;
    procedure ViewClass;
    //function GetIsGroupUserCount(GroupID : string):integer;
   //procedure ViewGroup;
    function GetBookCount:integer;
    function GetCurrBookCount:integer;
    function GetLandedBookCount:integer;
    function GetTimeOutBookCount:integer;
    procedure ViewBook; 
    constructor Create(AOwner : TComponent);override;
  end;

var
  ReEditF : TReEditF;

implementation

uses uMainF, uGloabVar;

{$R *.DFM}

procedure TReEditF.Button1Click(Sender: TObject);
begin
  Parent := nil;
  MainF.Caption := '图书管理系统';
end;

function TReEditF.GetUserID(Code: string): string;
var
  Query : TQuery;
begin
  try
    Query := TQuery.Create(nil);
    Query.DatabaseName := DBName;
    Query.SQL.Add('select UserID from Owner where Code =:Code');
    Query.ParamByName('Code').AsString := Code;
    Query.Open;
    if Query.RecordCount = 0 then
      Result := ''
    else Result := Query.FieldByName('UserID').AsString;
    Query.Close;
    Query.Free;
  except
    Result := '';
  end;
end;

procedure TReEditF.Button2Click(Sender: TObject);
var
  UserID : string;
  i : integer;
  Answer : integer;
begin
  if RadioButton1.Checked then
  begin
    if CheckExistCode(Edit1.Text) = False then
    begin
      MessageDlg('此号<'+Edit1.Text+'>不存在',mtWarning,[mbok],0);
      if RadioButton1.Checked then
      begin
        Edit1.SetFocus;
        Edit1.SelectAll;
      end;
      Exit;
    end;
    UserID := GetUserID(Edit1.Text);
    if UserID <> '' then
    begin
      if MessageBox(0,PChar('此书<'+Edit1.Text+'>借出,确实要删除吗?'),'警告',MB_YESNO)= IDYES then
      begin
        try
          DelBook(Edit1.Text);
          MessageBox(0,'删除完成',PChar('删除'+Edit1.Text),MB_OK);
        except
          MessageDlg('删除<'+Edit1.Text+'>失败',mtWarning,[mbok],0);
        end;
      end
      else begin
        if RadioButton1.Checked then
        begin
          Edit1.SetFocus;
          Edit1.SelectAll;
        end;
        Exit;
      end;
    end
    else begin
      try
        DelBook(Edit1.Text);
        MessageBox(0,'删除完成',PChar('删除'+Edit1.Text),MB_OK);
      except
        MessageDlg('删除<'+Edit1.Text+'>失败',mtWarning,[mbok],0);
      end;
        if RadioButton1.Checked then
        begin
          Edit1.SetFocus;
          Edit1.SelectAll;
        end;
    end;
  end;
  if RadioButton2.Checked then
  begin
    for i := ListView1.Items.Count-1 downto 0 do
    begin
      if ListView1.Items.Item[i].Selected then
      begin
        UserID := GetUserID(ListView1.Items[i].Caption);
        if UserID <> '' then
        begin
          Answer := MessageBox(0,PChar('此书<'+ListView1.Items[i].Caption+'>借出,确实要删除吗?'),'警告',MB_YESNOCANCEL);
          if Answer = IDYES then
          begin
            try
              DelBook(ListView1.Items[i].Caption);
              ListView1.Items.Delete(i);
            except
              MessageDlg('删除<'+ListView1.Items[i].Caption+'>失败',mtWarning,[mbok],0);
            end;
          end
          else if Answer = IDCANCEL then
                 Exit;
        end
        else begin
          try
            DelBook(ListView1.Items[i].Caption);
            ListView1.Items.Delete(i);
          except
            MessageDlg('删除<'+ListView1.Items[i].Caption+'>失败',mtWarning,[mbok],0);
          end;
        end;
      end;
    end;
  end;
end;

function TReEditF.CheckExistCode(Code: string): boolean;
var
  Query : TQuery;
begin
  try
    Query := TQuery.Create(nil);
    Query.DatabaseName := DBName;
    Query.SQL.Add('select Code from Book where Code =:Code');
    Query.ParamByName('Code').AsString := Code;
    Query.Open;
    if Query.RecordCount = 0 then
      Result := False
    else Result := True; 
    Query.Close;
    Query.Free;
  except
    Result := False;;
  end;
end;

procedure TReEditF.DelBook(Code: string);
var
  Query : TQuery;
begin
  Query := TQuery.Create(nil);
  Query.DatabaseName := DBName;
  Query.SQL.Clear;
  Query.SQL.Add('delete from Book where Code =:Code');
  Query.ParamByName('Code').AsString := Code;
  Query.ExecSQL;
  Query.SQL.Clear;
  Query.SQL.Add('delete from Owner where Code =:Code');
  Query.ParamByName('Code').AsString := Code;
  Query.ExecSQL;
  Query.Close;
  Query.Free;
end;

procedure TReEditF.DelInit;
var
  Query : TQuery;
begin
  Query := TQuery.Create(nil);
  Query.DatabaseName := DBName;
  Query.SQL.Add('select Code , Name ,Class from' +
                ' book');
  Query.Open;
  ListView1.Items.Clear;
  while not Query.Eof do
  begin
    with ListView1.Items.Add do
    begin
      Caption := Query.FieldByName('Code').AsString;
      SubItems.Add(Query.FieldByName('Class').AsString);
      SubItems.Add(GetClassName(Query.FieldByName('Class').AsString));
      SubItems.Add(Query.FieldByName('Name').AsString);
      SubItems.Add(GetUserID(Caption));
    end;
    Query.Next;
  end;
  Query.Close;
  Query.Free;
end;

constructor TReEditF.Create(AOwner: TComponent);
begin
  inherited Create(Aowner);
  try
    DelInit;
  except
    ListView1.Items.Clear;
  end;
  try
    EditInit;
  except
    ListView2.Items.Clear;
  end;
  CountInit;
end;

procedure TReEditF.RadioButton1Click(Sender: TObject);
begin
  Edit1.Color := clWindow;
  Edit1.Enabled := True;
  ListView1.Color := clBtnFace;
  ListView1.Enabled := False;
end;

procedure TReEditF.RadioButton2Click(Sender: TObject);
begin
  Edit1.Color := clBtnFace;
  Edit1.Enabled := False;
  ListView1.Color := clWindow;
  ListView1.Enabled := True;
end;

procedure TReEditF.ListView2Click(Sender: TObject);
begin
  if ListView2.Selected <> nil then
  begin
    ClassEdit.Text := ListView2.Selected.Caption;
    ClassNameEdit.Text := ListView2.Selected.SubItems.Strings[0];
  end;
end;

procedure TReEditF.EditInit;
var
  Query : TQuery;
begin
  Query := TQuery.Create(nil);
  Query.DatabaseName := DBName;
  Query.SQL.Add('select * from Class');
  Query.Open;
  ListView2.Items.Clear;
  while not Query.Eof do
  begin
    with ListView2.Items.Add do
    begin
      Caption := Query.FieldByName('ClassID').AsString;
      SubItems.Add(Query.FieldByName('ClassName').AsString);
    end;
    Query.Next;
  end;
  Query.Close;
  Query.Free;
end;

function TReEditF.CheckExistClass(ClassID: string): boolean;

⌨️ 快捷键说明

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