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

📄 ureeditf.pas

📁 一套功能非常丰富的图书管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
var
  Query : TQuery;
begin
  try
    Query := TQuery.Create(nil);
    Query.DatabaseName := DBName;
    Query.SQL.Add('select * from Class where ClassID =:ClassID');
    Query.ParamByName('ClassID').AsString := ClassID;
    Query.Open;
    if Query.RecordCount = 0 then
      Result := False
    else Result := True;
    Query.Free;
  except
    Result := False;
  end;
end;

procedure TReEditF.DelClass(ClassID: string);
var
  Query : TQuery;
begin
  Query := TQuery.Create(nil);
  Query.DatabaseName := DBName;
  Query.SQL.Add('delete from Class where ClassID =:ClassID');
  Query.ParamByName('ClassID').AsString := ClassID;
  Query.ExecSQL;
  Query.Free;
end;

procedure TReEditF.InsClass(ClassID, ClassName: string);
var
  Query : TQuery;
begin
  Query := TQuery.Create(nil);
  Query.DatabaseName := DBName;
  Query.SQL.Add('insert into Class(ClassID,ClassName) values(:ClassID,:ClassName)');
  Query.ParamByName('ClassID').AsString := ClassID;
    Query.ParamByName('ClassName').AsString := ClassName;
  Query.ExecSQL;
  Query.Free;
end;

procedure TReEditF.Button4Click(Sender: TObject);
var
  i : integer;
begin
  if RadioButton3.Checked then
  begin
    if Length(ClassEdit.Text)<>4 then
    begin
      MessageDlg('类别代码错误',mtError,[mbok],0);
      Exit;
    end;
    if CheckExistClass(ClassEdit.Text) then
    begin
      MessageDlg('类别代码已经存在',mtError,[mbok],0);
      Exit;
    end;
    try
      InsClass(ClassEdit.Text,ClassNameEdit.Text);
      with ListView2.Items.Add do
      begin
        Caption := ClassEdit.Text;
        SubItems.Add(ClassNameEdit.Text);
      end;
      MessageBox(0,'添加类别成功',PChar('添加'+ClassEdit.Text),MB_OK);

    except
      MessageDlg('添加类别出错',mtError,[mbok],0);
    end;
  end;
  if RadioButton4.Checked then
  begin
    if Length(ClassEdit.Text)<>4 then
    begin
      MessageDlg('类别代码错误',mtError,[mbok],0);
      Exit;
    end;
    try
      UpdateClass(ClassEdit.Text,ClassNameEdit.Text);
      for i := 0 to ListView2.Items.Count -1do
      begin
        if ListView2.Items[i].Caption = ClassEdit.Text then
          ListView2.Items[i].SubItems.Strings[0] := ClassNameEdit.Text;
      end;
      MessageBox(0,'修改类别成功',PChar('修改'+ClassEdit.Text),MB_OK);
    except
      MessageDlg('修改类别出错',mtError,[mbok],0);
    end;
  end;
  try
    CountInit;
    DelInit;
  except
    ListView1.Items.Clear;
  end;
end;

procedure TReEditF.RadioButton3Click(Sender: TObject);
begin
  ClassEdit.Enabled := true;
  ClassEdit.Color := clWindow;
end;

procedure TReEditF.RadioButton4Click(Sender: TObject);
begin
  ClassEdit.Enabled := False;
  ClassEdit.Color := clBtnFace;
end;

procedure TReEditF.UpDateClass(ClassID,ClassName: string);
var
  Query : TQuery;
begin
  Query := TQuery.Create(nil);
  Query.DatabaseName := DBName;
  Query.SQL.Add('update Class set ClassName=:ClassName where ClassID =:ClassID');
  Query.ParamByName('ClassID').AsString := ClassID;
    Query.ParamByName('ClassName').AsString := ClassName;
  Query.ExecSQL;
  Query.Free;
end;

procedure TReEditF.Button3Click(Sender: TObject);
begin
  if ListView2.Selected <> nil then
  try
    DelClass(ListView2.Selected.Caption);
    ListView2.Items.Delete(ListView2.Selected.Index);
    try
      CountInit;
      DelInit;
    except
      ListView1.Items.Clear;
    end;
  except
    MessageDlg('删除类别<'+ListView2.Selected.Caption+'>',mtError,[mbok],0);
  end
  else MessageDlg('没有选择类别',mtWarning,[mbok],0);
end;

function TReEditF.GetClassName(ClassID: string): string;
var
  Query : TQuery;
begin
  try
    Query := TQuery.Create(nil);
    Query.DatabaseName := DBName;
    Query.SQL.Add('select ClassName from Class where ClassID =:ClassID');
    Query.ParamByName('ClassID').AsString := ClassID;
    Query.Open;
    if Query.RecordCount <> 0 then
      Result := Query.FieldByName('ClassName').AsString
    else Result := '未知';
    Query.Free;
  except
    Result := '未知';
  end;
end;

procedure TReEditF.ListView2Change(Sender: TObject; Item: TListItem;
  Change: TItemChange);
begin
  ListView2Click(Sender);
end;

procedure TReEditF.CountInit;
begin
  try
    ViewClass;
  except
    ListView3.Items.Clear;
  end;
  {try
    ViewGroup;
  except
    ListView4.Items.Clear;
  end;}
  ViewBook;
end;

function TReEditF.GetIsClassBookCount(ClassID: string): integer;
var
  Query : TQuery;
begin
  try
    Query := TQuery.Create(nil);
    Query.DatabaseName := DBName;
    Query.SQL.Add('select Count(Code) from Book where Class =:ClassID');
    Query.ParamByName('ClassID').AsString := ClassID;
    Query.Open;
    Result := Query.Fields[0].Value;
    Query.Free;
  except
    Result := -1;
  end;
end;

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

{function TReEditF.GetIsGroupUserCount(GroupID: string): integer;
var
  Query : TQuery;
begin
  try
    Query := TQuery.Create(nil);
    Query.DatabaseName := DBName;
    Query.SQL.Add('select Count(UserID) from Userb where GroupID =:GroupID');
    Query.ParamByName('GroupID').AsString := GroupID;
    Query.Open;
    Result := Query.Fields[0].Value;
    Query.Free;
  except
    Result := -1;
  end;
end;}

{procedure TReEditF.ViewGroup;
var
  Query : TQuery;
  Total ,c: integer;
begin
  Query := TQuery.Create(nil);
  Query.DatabaseName := DBName;
  Query.SQL.Add('select * from Groupb');
  Query.Open;
  ListView4.Items.Clear;
  Total := 0;
  while not Query.Eof do
  begin
    with ListView4.Items.Add do
    begin
      Caption := Query.FieldByName('GroupID').AsString;
      SubItems.Add(Query.FieldByName('Des').AsString);
      c := GetIsGroupUserCount(Caption);
      Total := Total + c;
      SubItems.Add(IntToStr(c));
    end;
    Edit2.Text := IntToStr(Total);
    Query.Next;
  end;
  Query.Free;
end;}

function TReEditF.GetBookCount: integer;
var
  Query : TQuery;
begin
  try
    Query := TQuery.Create(nil);
    Query.DatabaseName := DBName;
    Query.SQL.Add('select Count(Code) from Book');
    Query.Open;
    Result := Query.Fields[0].Value;
    Query.Free;
  except
    Result := -1;
  end;
end;

function TReEditF.GetCurrBookCount: integer;
begin
  Result := GetBookCount - GetLandedBookCount;
end;

function TReEditF.GetLandedBookCount: integer;
var
  Query : TQuery;
begin
  try
    Query := TQuery.Create(nil);
    Query.DatabaseName := DBName;
    Query.SQL.Add('select Count(Code) from Owner');
    Query.Open;
    Result := Query.Fields[0].Value;
    Query.Free;
  except
    Result := -1;
  end;
end;

function TReEditF.GetTimeOutBookCount: integer;
var
  Query : TQuery;
begin
  try
    Query := TQuery.Create(nil);
    Query.DatabaseName := DBName;
    Query.SQL.Add('select Count(distinct(Code)) from Owner where LandDate <:LandDate');
    Query.ParamByName('LandDate').AsDateTime := Date-OutDay;
    Query.Open;
    Result := Query.Fields[0].Value;
    Query.Free;
  except
    Result := -1;
  end;
end;

procedure TReEditF.ViewBook;
begin
  Edit3.Text := '    '+ IntToStr(GetBookCount);
  Edit4.Text := '    '+IntToStr(GetCurrBookCount);
  Edit5.Text := '    '+IntToStr(GetLandedBookCount);
  Edit6.Text := '    '+IntToStr(GetTimeOutBookCount);
end;

procedure TReEditF.Button5Click(Sender: TObject);
begin
  if SaveDialog1.Execute then
    SaveListView(ListView2,'--- 图书类别列表 ---',SaveDialog1.FileName);
end;

procedure TReEditF.Button6Click(Sender: TObject);
begin
  PrintListView(ListView2,'--- 图书类别列表 ---');
end;

end.

⌨️ 快捷键说明

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