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

📄 xsrk_form.pas

📁 delphi+sql2000实现的图书管理系统软件
💻 PAS
字号:
unit XSRK_Form;

interface

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

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

var
  XSRK_F: TXSRK_F;

implementation

uses Share_Unit;

{$R *.dfm}

var
  TSXX_Q:TADOQuery;
  TSLB_Q:TADOQuery;
//******************************************************************************
function  IsNumber(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.FormCreate(Sender: TObject);
begin
   TSLB_Q:=TADOQuery.Create(nil);
   TSLB_Q.Connection:=Connect;
   TSLB_Q.SQL.Clear;
   TSLB_Q.SQL.Add('select 类名 from 图书类别');
   TSLB_Q.Open;
   while not TSLB_Q.Eof do
    begin
      LM_FCB.Items.Add(TSLB_Q.FieldByName('类名').AsString);
      TSLB_Q.Next;
    end;
   LB_FE.Enabled:=false;
   LM_FCB.ItemIndex := 0;
   LB_FE.Text:=GetClassName(LM_FCB.Items[LM_FCB.ItemIndex]);
   TSLB_Q.Close;
end;
//******************************************************************************
function TXSRK_F.GetClassName(ClassName: string): string;
begin
  try
   TSLB_Q.SQL.Clear;
   TSLB_Q.SQL.Add('select 类别 from 图书类别');
   TSLB_Q.SQL.Add('where 类名=:类名');
   TSLB_Q.Parameters.ParamByName('类名').Value:=ClassName;
   TSLB_Q.Open;
   if TSLB_Q.RecordCount = 0 then
      Result := ''
   else
      Result := TSLB_Q.FieldByName('类别').AsString;
   TSLB_Q.Close;
  except
    Result := '';
  end;
end;
//******************************************************************************
procedure TXSRK_F.LM_FCBChange(Sender: TObject);
begin
    LB_FE.Text := GetClassName(LM_FCB.Items[LM_FCB.ItemIndex]);
end;

procedure TXSRK_F.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   Action:=caFree;
end;
//******************************************************************************
function TXSRK_F.CheckError:boolean;          //检查输入的数据是否有错误
begin
   result:=false;
   TSXX_Q:=TADOQuery.Create(nil);
   TSXX_Q.Connection:=Connect;
   if (length(BH_FE.Text)<>10)or (not IsNumber(BH_FE.Text)) then        //图书编号是否合法
     begin
      MessageBox(handle,'图书编号即图书的条形码为10位数字!','图书编号错误',MB_OK or MB_ICONERROR);
      result:=true;
      exit;
     end
   else
     begin
      TSXX_Q.Close;
      TSXX_Q.SQL.Clear;
      TSXX_Q.SQL.Add('Select * From 图书信息 Where 图书编号=:图书编号');
      TSXX_Q.Parameters.ParamByName('图书编号').Value:=BH_FE.Text;
      TSXX_Q.Open;
      if TSXX_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,'日期格式不对,正确格式形如:2004-8-5!','日期错误',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.FlatSpeedButton1Click(Sender: TObject);
begin
   if CheckError then exit;
   TSXX_Q.Close;
   TSXX_Q.SQL.Clear;
   TSXX_Q.SQL.Add('Insert Into 图书信息(图书编号,类别,书名,作者,出版日期,出版社,定价,总数量,剩下数量,备注)');
   TSXX_Q.SQL.Add(' Values (:图书编号,:类别,:书名,:作者');
   TSXX_Q.SQL.Add(',:出版日期,:出版社,:定价,:总数量,:剩下数量,:备注)');
   TSXX_Q.Parameters.ParamByName('图书编号').Value:=BH_FE.Text;
   TSXX_Q.Parameters.ParamByName('类别').Value:=LB_FE.Text;
   TSXX_Q.Parameters.ParamByName('书名').Value:=SM_FE.Text;
   TSXX_Q.Parameters.ParamByName('作者').Value:=ZZ_FE.Text;
   TSXX_Q.Parameters.ParamByName('出版日期').Value:=StrToDate(CBRQ_FE.Text);
   TSXX_Q.Parameters.ParamByName('出版社').Value:=CBS_FE.Text;
   TSXX_Q.Parameters.ParamByName('定价').Value:=StrToFloat(DJ_FE.Text);
   TSXX_Q.Parameters.ParamByName('总数量').Value:=StrToInt(SL_FE.Text);
   TSXX_Q.Parameters.ParamByName('剩下数量').Value:=StrToInt(SL_FE.Text);
   TSXX_Q.Parameters.ParamByName('备注').Value:=BZ_FM.Text;
   TSXX_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:='';
   TSXX_Q.Close;
end;
//******************************************************************************
procedure TXSRK_F.FormDestroy(Sender: TObject);
begin
   FreeAndNil(TSLB_Q);
   FreeAndNil(TSXX_Q);
   XSRK_F:=nil;
end;
//******************************************************************************
procedure TXSRK_F.FlatSpeedButton2Click(Sender: TObject);
begin
  close;
end;
//******************************************************************************
end.

⌨️ 快捷键说明

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