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

📄 unewf.pas

📁 一套功能非常丰富的图书管理系统
💻 PAS
字号:
unit uNewF;

interface

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

type
  TNewF = class(TFrame)
    Panel1: TPanel;
    Button1: TButton;
    StaticText1: TStaticText;
    CodeEdit: TEdit;
    Bevel1: TBevel;
    NameEdit: TEdit;
    ComboBox1: TComboBox;
    ClassEdit: TEdit;
    StaticText3: TStaticText;
    StaticText4: TStaticText;
    AuthorEdit: TEdit;
    ConcernEdit: TEdit;
    StaticText5: TStaticText;
    StaticText6: TStaticText;
    CostEdit: TEdit;
    Memo1: TMemo;
    StaticText8: TStaticText;
    StaticText7: TStaticText;
    OutTimeEdit: TEdit;
    Button2: TButton;
    StaticText2: TStaticText;
    Panel2: TPanel;
    StaticText9: TStaticText;
    procedure Button1Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure Init;
    function GetClassName(ClassID : string): string;
    procedure InsBook(Code : string);
    function CheckExistCode(Code : string):boolean;
    constructor Create(AOwner : TComponent);override;
  end;

var
  NewF : TNewF;

implementation

uses
  uGloabVar, uMainF;

{$R *.DFM}

procedure TNewF.Button1Click(Sender: TObject);
begin
  if Length(CodeEdit.Text)<> CodeLength then
  begin
    MessageDlg('书号不正确',mtError,[mbok],0);
    CodeEdit.SetFocus;
    Exit;
  end;
  if CheckExistCode(CodeEdit.Text) then
  begin
    MessageDlg('书号<'+CodeEdit.Text+'>已经存在',mtError,[mbok],0);
    CodeEdit.SetFocus;
    Exit;
  end;
  try
    InsBook(CodeEdit.Text);
    Init;
  except
    MessageDlg('入库出错',mtError,[mbok],0);
  end;
end;
constructor TNewF.Create(AOwner: TComponent);
var
  Query : TQuery;
begin
  inherited Create(AOwner);
  try
    Query := TQuery.Create(nil);
    Query.DatabaseName := DBName;
    Query.SQL.Add('select ClassID from Class');
    Query.Open;
    while not Query.Eof do
    begin
      ComboBox1.Items.Add(Query.FieldByName('ClassID').AsString);
      Query.Next;
    end;
    ComboBox1.ItemIndex := 0;
    ClassEdit.Text := GetClassName(ComboBox1.Items[ComboBox1.ItemIndex]);
    Query.Close;
    Query.Free;
  except
    ComboBox1.Items.Clear;
  end;
end;

function TNewF.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 := ''
    else Result := Query.FieldByName('ClassName').AsString;
    Query.Close;
    Query.Free;
  except
    Result := '';
  end;
end;

procedure TNewF.ComboBox1Change(Sender: TObject);
begin
  ClassEdit.Text := GetClassName(ComboBox1.Items[ComboBox1.ItemIndex]);
end;

procedure TNewF.InsBook(Code: string);
var
  Query : TQuery;
begin
  Query := TQuery.Create(nil);
  Query.DatabaseName := DBName;
  Query.SQL.Add('insert into book(Code,Name,Class,Author,Concern,OutDate,Cost,Memo)'+
                ' values (:Code,:Name,:Class,:Author,:ConCern,:OutDate,:Cost,:Memo)');
  Query.ParamByName('Code').AsString := Code;
  Query.ParamByName('Name').AsString := NameEdit.Text;
  Query.ParamByName('Class').AsString := ComboBox1.Items[ComboBox1.ItemIndex];
  Query.ParamByName('Author').AsString := AuthorEdit.Text;
  Query.ParamByName('Concern').AsString := ConcernEdit.Text;
  try
    Query.ParamByName('OutDate').AsDateTime := StrToDate(OutTimeEdit.Text);
  except
    MessageDlg('参数<出版时间>设置错误',mtError,[mbok],0);
    Query.Free;
    Exit;
  end;
  try
    Query.ParamByName('Cost').AsFloat := StrToFloat(CostEdit.Text);
  except
    MessageDlg('参数<价格>设置错误',mtError,[mbok],0);
    Query.Free;
    Exit;
  end;
  Query.ParamByName('Memo').AsString := Memo1.Lines.GetText;
  Query.ExecSQL;
  Query.Free;
end;

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

function TNewF.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 TNewF.Init;
begin
  CodeEdit.SetFocus;
  CodeEdit.SelectAll;
  NameEdit.Text := '';
  AuthorEdit.Text := '';
  OutTimeEdit.Text := '';
  CostEdit.Text := '';
  ConcernEdit.Text := '';
  ComboBox1.ItemIndex := 0;
  Memo1.Lines.Clear;
  ClassEdit.Text := GetClassName(ComboBox1.Items[ComboBox1.ItemIndex]);
end;

end.

⌨️ 快捷键说明

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