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

📄 xsrk_form.pas

📁 一个不错的图书管理系统
💻 PAS
字号:
unit XSRK_Form;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, TFlatGroupBoxUnit, StdCtrls, TFlatEditUnit,
  TFlatComboBoxUnit, TFlatMemoUnit, TFlatSpeedButtonUnit,DB,DBTables;

type
  TXSRK_F = class(TForm)
    FlatGroupBox1: TFlatGroupBox;
    Label1: TLabel;
    BH_FE: TFlatEdit;
    Label2: TLabel;
    Label3: TLabel;
    SM_FE: TFlatEdit;
    Label4: TLabel;
    Label5: TLabel;
    ZZ_FE: TFlatEdit;
    Label6: TLabel;
    Label7: TLabel;
    LB_FCB: TFlatComboBox;
    Label8: TLabel;
    CBRQ_FE: TFlatEdit;
    CBS_FE: TFlatEdit;
    Label9: TLabel;
    DJ_FE: TFlatEdit;
    Label10: TLabel;
    SL_FE: TFlatEdit;
    Label11: TLabel;
    Label12: TLabel;
    BZ_FM: TFlatMemo;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    FlatSpeedButton1: TFlatSpeedButton;
    FlatSpeedButton2: TFlatSpeedButton;
    Label16: TLabel;
    procedure FlatSpeedButton2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FlatSpeedButton1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
  private
    function CheckError:boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  XSRK_F: TXSRK_F;

implementation

uses
  Common_Unit;

{$R *.dfm}

var
  TSLB_T:TTable;
  TSJBXX_Q:TQuery;

function IsNum(str:string):boolean;
var
  i:integer;
begin
  Result:= true;
  for i:=1 to length(str) do
    if not (ord(str[i]) in[48..57]) then
      begin
        result:=false;
        exit;
      end;
end;
//***********************************************************************************
procedure TXSRK_F.FlatSpeedButton2Click(Sender: TObject);
begin
  close;
end;
//***********************************************************************************
procedure TXSRK_F.FormShow(Sender: TObject);
begin
  TSLB_T.Open;
  while not TSLB_T.Eof do
    begin
      LB_FCB.Items.Add(TSLB_T.FieldValues['ClassName']);
      TSLB_T.Next;
    end;
  LB_FCB.ItemIndex:=0;
end;
//***********************************************************************************
function TXSRK_F.CheckError:boolean;          //检查输入的数据是否有错误
begin
  result:=false;
  if (length(BH_FE.Text)<>13)or (not IsNum(BH_FE.Text)) then        //图书编号是否合法
    begin
      MessageBox(handle,'图书编号即图书的条形码为13位数字!','图书编号错误',MB_OK or MB_ICONERROR);
      result:=true;
      exit;
    end
    else begin
      TSJBXX_Q.Close;
      TSJBXX_Q.SQL.Clear;
      TSJBXX_Q.SQL.Add('Select 1 From TSJBXX Where TSBH=:TXB');
      TSJBXX_Q.ParamByName('TXB').AsString:=BH_FE.Text;
      TSJBXX_Q.Open;
      if TSJBXX_Q.RecordCount<>0 then
        begin
          MessageBox(handle,'你输入的图书编号已经存在!','编号重复',MB_OK or MB_ICONERROR);
          result:=true;
          exit;
        end;
    end;

  if SM_FE.Text='' then
    begin
      MessageBox(handle,'书名不能为空!','书名有误',MB_OK or MB_ICONERROR);
      result:=true;
      exit;
    end;

  if ZZ_FE.Text='' then
    begin
      MessageBox(handle,'作者不能为空!','作者有误',MB_OK or MB_ICONERROR);
      result:=true;
      exit;
    end;

  if CBS_FE.Text='' then
    begin
      MessageBox(handle,'出版社不能为空!','出版社有误',MB_OK or MB_ICONERROR);
      result:=true;
      exit;
    end;

  if DJ_FE.Text='' then
    begin
      MessageBox(handle,'定价不能为空!','定价有误',MB_OK or MB_ICONERROR);
      result:=true;
      exit;
    end;

  try                       //判断定价是否正确
    StrToFloat(DJ_FE.Text);
  except
    MessageBox(handle,'定价不对!','定价错误',MB_OK or MB_ICONERROR);
    result:=true;
    exit;
  end;

  try                       //判断日期格式是否正确
    StrToDate(CBRQ_FE.Text);
  except
    MessageBox(handle,'日期格式不对,正确格式形如:2003-03-19或2003-3-19 !','日期错误',MB_OK or MB_ICONERROR);
    result:=true;
    exit;
  end;

  try                       //入库数量必须为整数
    StrToInt(SL_FE.Text);
  except
    MessageBox(handle,'入库数量必须为大于0的整数!','数量错误',MB_OK or MB_ICONERROR);
    result:=true;
    exit;
  end;
end;
//***********************************************************************************
procedure TXSRK_F.FormCreate(Sender: TObject);
begin
  TSLB_T:=TTable.Create(nil);
  TSLB_T.DatabaseName:=DataPath;
  TSLB_T.TableName:='TSLB.DB';

  TSJBXX_Q:=TQuery.Create(nil);
  TSJBXX_Q.DatabaseName:=DataPath;
end;
//***********************************************************************************
procedure TXSRK_F.FlatSpeedButton1Click(Sender: TObject);    //将信息提交进数据库
begin
  if CheckError then exit;
  TSJBXX_Q.Close;
  TSJBXX_Q.SQL.Clear;
  TSJBXX_Q.SQL.Add('Insert Into TSJBXX(TSBH,Class,Name,Auther,OutDate,CBS,Cost,TotalNum,LastNum,BZ) ');
  TSJBXX_Q.SQL.Add(' Values (:TSBH,:Class,:Name,:Auther');
  TSJBXX_Q.SQL.Add(',:OutDate,:CBS,:Cost,:TotalNum,:LastNum,:BZ)');
  TSJBXX_Q.ParamByName('TSBH').AsString:=BH_FE.Text;
  TSLB_T.Locate('ClassName',LB_FCB.Text,[]);
  TSJBXX_Q.ParamByName('Class').AsString:=TSLB_T.FieldValues['ClassID'];
  TSJBXX_Q.ParamByName('Name').AsString:=SM_FE.Text;
  TSJBXX_Q.ParamByName('Auther').AsString:=ZZ_FE.Text;
  TSJBXX_Q.ParamByName('OutDate').AsDateTime:=StrToDate(CBRQ_FE.Text);
  TSJBXX_Q.ParamByName('CBS').AsString:=CBS_FE.Text;
  TSJBXX_Q.ParamByName('Cost').AsFloat:=StrToFloat(DJ_FE.Text);
  TSJBXX_Q.ParamByName('TotalNum').AsInteger:=StrToInt(SL_FE.Text);
  TSJBXX_Q.ParamByName('LastNum').AsInteger:=StrToInt(SL_FE.Text);
  TSJBXX_Q.ParamByName('BZ').AsString:=BZ_FM.Text;
  TSJBXX_Q.ExecSQL;
  MessageBox(handle,'此图书已经成功入库!','入库成功',MB_OK or MB_ICONINFORMATION);

  BH_FE.Text:='';
  SM_FE.Text:='';
  ZZ_FE.Text:='';
  CBRQ_FE.Text:='';
  CBS_FE.Text:='';
  DJ_FE.Text:='';
  SL_FE.Text:='';
  SL_FE.Text:='';
  BZ_FM.Text:='';
end;
//***********************************************************************************
procedure TXSRK_F.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:=caFree;
end;
//***********************************************************************************
procedure TXSRK_F.FormDestroy(Sender: TObject);
begin
  TSLB_T.Close;
  TSJBXX_Q.Close;
  FreeAndNil(TSLB_T);
  FreeAndNil(TSJBXX_Q);
  XSRK_F:=nil;
end;

end.

⌨️ 快捷键说明

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