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

📄 tswh_form.pas

📁 图书管理系统软件设计说明 一.可行性研究:。。。。。 二.需求分析:。。。。。 三. 概要设计说明书:。。。。。 四.详细设计:。。。。。 五. 编码与实现: 六. 测试
💻 PAS
字号:
unit TSWH_Form;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids, TFlatRadioButtonUnit, TFlatMemoUnit,
  TFlatComboBoxUnit, TFlatButtonUnit, TFlatEditUnit, TFlatGroupBoxUnit,
  ComCtrls,DB,ADODB;

type
  TTSWH_F = class(TForm)
    TSWH_PC: TPageControl;
    TSXGSC_TS: TTabSheet;
    FlatGroupBox1: TFlatGroupBox;
    Label16: TLabel;
    DWBH_FE: TFlatEdit;
    DW_FBtn: TFlatButton;
    FlatGroupBox2: 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;
    Label17: TLabel;
    BH_FE: TFlatEdit;
    SM_FE: TFlatEdit;
    ZZ_FE: TFlatEdit;
    LB_FCB: TFlatComboBox;
    CBRQ_FE: TFlatEdit;
    CBS_FE: TFlatEdit;
    DJ_FE: TFlatEdit;
    SL_FE: TFlatEdit;
    BZ_FM: TFlatMemo;
    FlatGroupBox3: TFlatGroupBox;
    FlatGroupBox4: TFlatGroupBox;
    XG_FRBtn: TFlatRadioButton;
    SC_FRBtn: TFlatRadioButton;
    ZX_FBtn: TFlatButton;
    TSLBBJ_TS: TTabSheet;
    FlatGroupBox5: TFlatGroupBox;
    LB_DG: TDBGrid;
    Del_FBtn: TFlatButton;
    FlatGroupBox8: TFlatGroupBox;
    Label18: TLabel;
    Label19: TLabel;
    LBDM_FE: TFlatEdit;
    LBMC_FE: TFlatEdit;
    FlatGroupBox7: TFlatGroupBox;
    LBXG_FRBtn: TFlatRadioButton;
    LBTJ_FRBtn: TFlatRadioButton;
    LBZX_FBtn: TFlatButton;
    Close_Btn: TButton;
    LB_DS: TDataSource;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Close_BtnClick(Sender: TObject);
    procedure DW_FBtnClick(Sender: TObject);
    procedure ZX_FBtnClick(Sender: TObject);
    procedure LBXG_FRBtnClick(Sender: TObject);
    procedure LBTJ_FRBtnClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TSWH_PCChange(Sender: TObject);
    procedure Del_FBtnClick(Sender: TObject);
    procedure LBZX_FBtnClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
     function CheckError:boolean;
  end;

var
  TSWH_F: TTSWH_F;

implementation

uses Share_Unit;

{$R *.dfm}

var
   TSLB_T,TSXX_T:TADOTable;
//******************************************************************************
procedure TTSWH_F.FormCreate(Sender: TObject);
begin
   TSLB_T:=TADOTable.Create(nil);
   TSLB_T.Connection:=Connect;
   TSLB_T.TableName:='图书类别';
   TSXX_T:=TADOTable.Create(nil);
   TSXX_T.Connection:=Connect;
   TSXX_T.TableName:='图书信息';
   LB_DS.DataSet:=TSLB_T;
   LB_DG.Columns[0].FieldName:='类别';
   LB_DG.Columns[1].FieldName:='类名';
   TSLB_T.Open;
   while not TSLB_T.Eof do
    begin
      LB_FCB.Items.Add(TSLB_T.FieldValues['类名']);
      TSLB_T.Next;
    end;
   TSLB_T.First;
   LB_FCB.ItemIndex:=0;
   LBTJ_FRBtn.Checked:=true;
end;
//******************************************************************************
procedure TTSWH_F.Close_BtnClick(Sender: TObject);
begin
  close;
end;
//******************************************************************************
procedure TTSWH_F.DW_FBtnClick(Sender: TObject);           //定位
begin
   TSXX_T.Open;
   if TSXX_T.Locate('图书编号',DWBH_FE.Text,[]) then
    begin
      BH_FE.Text:=DWBH_FE.Text;
      SM_FE.Text:=TSXX_T.FieldValues['书名'];
      ZZ_FE.Text:=TSXX_T.FieldValues['作者'];
      CBRQ_FE.Text:=DateToStr(TSXX_T.FieldValues['出版日期']);
      CBS_FE.Text:=TSXX_T.FieldValues['出版社'];
      DJ_FE.Text:=FloatToStr(TSXX_T.FieldValues['定价']);
      SL_FE.Text:=IntToStr(TSXX_T.FieldValues['总数量']);
      BZ_FM.Text:=TSXX_T.FieldValues['备注'];

      TSLB_T.Locate('类别',TSXX_T.FieldValues['类别'],[]);
      LB_FCB.ItemIndex:=LB_FCB.Items.IndexOf(TSLB_T.FieldValues['类名']);
      XG_FRBtn.Checked:=true;
      ZX_FBtn.Enabled:=true;
    end
   else begin
      MessageBox(handle,'记录没有找到,请检查输入的编号是否正确!','没找到图书记录',MB_OK or MB_ICONERROR);
   end;
end;
//******************************************************************************
function TTSWH_F.CheckError:boolean;          //检查输入的数据是否有错误
begin
  result:=false;
  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 TTSWH_F.ZX_FBtnClick(Sender: TObject);                //执行删除图书
var
  Del_Flag:integer;
begin
  if XG_FRBtn.Checked then
    begin
      if CheckError then exit;
      TSXX_T.Locate('图书编号',BH_FE.Text,[]);
      TSXX_T.Edit;
      TSLB_T.Locate('类名',LB_FCB.Text,[]);
      TSXX_T.FieldByName('类别').AsString:=TSLB_T.FieldValues['类别'];
      TSXX_T.FieldByName('书名').AsString:=SM_FE.Text;
      TSXX_T.FieldByName('作者').AsString:=ZZ_FE.Text;
      TSXX_T.FieldByName('出版日期').AsDateTime:=StrToDate(CBRQ_FE.Text);
      TSXX_T.FieldByName('出版社').AsString:=CBS_FE.Text;
      TSXX_T.FieldByName('定价').AsFloat:=StrToFloat(DJ_FE.Text);
      TSXX_T.FieldByName('总数量').AsInteger:=StrToInt(SL_FE.Text);
      TSXX_T.FieldByName('剩下数量').AsInteger:=StrToInt(SL_FE.Text);
      TSXX_T.FieldByName('备注').AsString:=BZ_FM.Text;
      TSXX_T.Post;
      MessageBox(handle,'记录已成功修改!!','修改成功',MB_OK or MB_ICONINFORMATION);
    end
    else begin
      Del_Flag:=MessageBox(handle,'警告:删除是永久的不可恢复的!确认删除吗?','删除确认',MB_OKCANCEL or MB_ICONWarning);
      if Del_Flag=IDCancel then exit;
      TSXX_T.Locate('图书编号',BH_FE.Text,[]);
      TSXX_T.Delete;
      MessageBox(handle,'记录已成功删除!','删除成功',MB_OK or MB_ICONINFORMATION);
      DWBH_FE.Text:='';
      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:='';
      LB_FCB.ItemIndex:=0;
      ZX_FBtn.Enabled:=false;
    end;
end;
//******************************************************************************
procedure TTSWH_F.LBXG_FRBtnClick(Sender: TObject);             //当方式选中修改时
begin
   LBDM_FE.Text:=LB_DG.DataSource.DataSet.FieldValues['类别'];
   LBMC_FE.Text:=LB_DG.DataSource.DataSet.FieldValues['类名'];
   LBZX_FBtn.Enabled:=true;
   LBDM_FE.Enabled:=false;
end;
//******************************************************************************
procedure TTSWH_F.LBTJ_FRBtnClick(Sender: TObject);           //当方式选中添加时
begin
   LBDM_FE.Text:='';
   LBDM_FE.Enabled:=true;
   LBMC_FE.Text:='';
end;
//******************************************************************************
procedure TTSWH_F.FormShow(Sender: TObject);
begin
   TSWH_PC.ActivePage:=TSXGSC_TS;
end;
//******************************************************************************
procedure TTSWH_F.TSWH_PCChange(Sender: TObject);
begin
   if TSWH_PC.ActivePage=TSXGSC_TS then
    begin
      LB_FCB.Items.Clear;
      TSLB_T.Open;
      TSLB_T.First;
      while not TSLB_T.Eof do
        begin
          LB_FCB.Items.Add(TSLB_T.FieldValues['类名']);
          TSLB_T.Next;
        end;
      TSLB_T.First;  
      LB_FCB.ItemIndex:=0;
    end;
end;
//******************************************************************************
procedure TTSWH_F.Del_FBtnClick(Sender: TObject);
var
  Del_Flag:integer;
begin
  Del_Flag:=MessageBox(handle,'警告:删除是永久的不可恢复的!确认删除吗?','删除确认',MB_OKCANCEL or MB_ICONWarning);
  if Del_Flag=IDCancel then exit;
  LB_DG.DataSource.DataSet.Delete;
  MessageBox(handle,'记录已成功删除!','删除成功',MB_OK or MB_ICONINFORMATION);
  LBDM_FE.Text:='';
  LBDM_FE.Enabled:=true;
  LBMC_FE.Text:='';
  LBTJ_FRBtn.Enabled:=true;
end;
//******************************************************************************
procedure TTSWH_F.LBZX_FBtnClick(Sender: TObject);             //类别的执行操作
begin
  if LBDM_FE.Text='' then
    begin
      MessageBox(handle,'类别代码不能为空!','类别代码错误',MB_OK or MB_ICONERROR);
      exit;
    end;

  if LBMC_FE.Text='' then
    begin
      MessageBox(handle,'类别名称不能为空!','类别名称错误',MB_OK or MB_ICONERROR);
      exit;
    end;

  if LBTJ_FRBtn.Checked then
    begin
      if TSLB_T.Locate('类别',LBDM_FE.Text,[]) then
        begin
          MessageBox(handle,'类别代码已经存在!','错误',MB_OK or MB_ICONERROR);
          LBDM_FE.SetFocus;
          exit;
        end;
      if TSLB_T.Locate('类名',LBMC_FE.Text,[]) then
        begin
          MessageBox(handle,'类别名称已经存在!','错误',MB_OK or MB_ICONERROR);
          LBDM_FE.SetFocus;
          exit;
        end;
      TSLB_T.Append;
      TSLB_T.FieldByName('类别').AsString:=LBDM_FE.Text;
      TSLB_T.FieldByName('类名').AsString:=LBMC_FE.Text;
      TSLB_T.Post;
      MessageBox(handle,'类型记录添加成功!','添加成功',MB_OK or MB_ICONINFORMATION);
    end
    else begin
      TSLB_T.Locate('类别',LBDM_FE.Text,[]);
      TSLB_T.Edit;
      TSLB_T.FieldByName('类名').AsString:=LBMC_FE.Text;
      TSLB_T.Post;
      MessageBox(handle,'类型记录修改成功!','修改成功',MB_OK or MB_ICONINFORMATION);
    end;
end;
//******************************************************************************
procedure TTSWH_F.FormDestroy(Sender: TObject);
begin
   //TSLB_T.Close;
   FreeAndNil(TSLB_T);
   //TSXX_T.Close;
   FreeAndNil(TSXX_T);
   TSWH_F:=nil;
end;
//******************************************************************************
end.

⌨️ 快捷键说明

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