📄 ureeditf.pas
字号:
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 + -