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

📄 bookinunit.pas

📁 是一个Delphi的教材管理系统,内容很全面详细
💻 PAS
字号:
unit BookInUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, StdCtrls, Buttons, Mask;

type
  TfrmBookIn = class(TForm)
    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;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    MaskEdit1: TMaskEdit;
    ComboBox1: TComboBox;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    MaskEdit2: TMaskEdit;
    Edit11: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Label15: TLabel;
    MaskEdit3: TMaskEdit;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure MaskEdit3Exit(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Edit7Exit(Sender: TObject);
  private
    procedure initializtionfrm();
  public
    { Public declarations }
  end;

var
  frmBookIn: TfrmBookIn;
  Dep,Book:TADOTable;
  BookIn:TADOStoredProc;
  ISExists:boolean;
implementation

uses DataModuleUnit, MainUnit;

{$R *.dfm}
//清空输入的数据
procedure TfrmBookIn.initializtionfrm();
var
 i:integer;
begin
  for i:=0 to self.ComponentCount-1 do
  begin
      if self.Components[i] is TEdit then
       (self.Components[i] as TEdit).Text:='' //清空Edit内容
      else
      if self.Components[i] is TMaskEdit then
       (self.Components[i] as TMaskEdit).Text:=''//清空MaskEdit内容
      else
      if self.Components[i] is TCheckBox then
       (self.Components[i] as TCheckBox).Checked:=false//清空CheckBox内容
      else
      if self.Components[i] is TCombobox then
       (self.Components[i] as TCombobox).Text:='';//清空Combobox内容
  end;
end;
procedure TfrmBookIn.FormCreate(Sender: TObject);
var
  i:integer;
begin
//初始化存储过程
   BookIn:=TADOStoredProc.Create(nil);
   With BookIn do
   begin
     Connection:=frmDataModule.Connection;
   end;
//初始化教材表
   Book:=TADOTable.Create(nil);//教材表
   with Book do
   begin
     Connection:=frmDataModule.Connection;
     TableName:='Books';
     Active:=true;
   end;

   Dep:=TADOTable.Create(nil); //班级表
   with Dep do
   begin
     Connection:=frmDataModule.Connection;
     TableName:='Departments';
     Active:=true;
     combobox1.Items.Add('请选择订书单位!');
     for i:=0 to RecordCount-1 do
     begin
       comboBox1.Items.Add(Fields[0].Value);
       Next;
     end;
     close;
     Dep.Free;
     Combobox1.ItemIndex:=0;
   end;
end;

procedure TfrmBookIn.BitBtn2Click(Sender: TObject);
begin
close;
end;
//查询是输入的ISBN号是否存在
procedure TfrmBookIn.MaskEdit3Exit(Sender: TObject);
begin
  with Book do
  begin
    ISExists:=Locate('ISBN',MaskEdit3.Text,[loCaseInsensitive]);
    if ISExists then
    begin
      Edit1.Text:=FieldByName('BookName').Value;   
      Edit2.Text:=FieldByName('press').Value; //出版社
      Edit3.Text:=FieldByName('Author').Value;//作者
      Edit4.Text:=FieldByName('Price').Value;//单价
      MaskEdit1.Text:=FieldByName('PublishDate').Value;//出版日期
      Combobox1.Text:=FieldByName('OrderDepartmentName').Value;//订书单位
      Edit5.Text:=FieldByName('Handler').Value;//经办人
      Edit6.Text:=FieldByName('BookAmount').Value;//原有数量
      //Edit7.Text:=FieldByName('press').Value; //本次数量
      //Edit8.Text:=FieldByName('press').Value; //总数量
      Edit9.Text:=FieldByName('Award').Value; //获奖情况
      Edit10.Text:=FieldByName('UsingWay').Value;//使用说明
      MaskEdit2.Text:=FormatDateTime('yyyy-mm-dd',FieldByName('EnterDate').Value);//FormatDateTime('YYYY-MM-DD',FieldByName('EnterDate').Value);//入库日期
      Edit11.Text:=FieldByName('About').Value;//说明
    end
    else
    begin
      Combobox1.ItemIndex:=0;
      Edit5.Text:=frmMain.OperatorInfo.OperatorName; //经办人
      Edit6.Text:='0';//原有数量
      MaskEdit2.Text:=DateTimetostr(now);//入库日期
      Edit11.Text:='-'; //说明
      Edit10.Text:='学生教材';//使用说明
    end;
//S := FormatDateTime('"The meeting is on " dddd, mmmm d, yyyy, " at " hh:mm AM/PM', Now + 0.125);
  end;
end;
//添加或修改教材信息
procedure TfrmBookIn.BitBtn1Click(Sender: TObject);
begin
//检查本次数量的合法性
if (strtoIntDef(Edit7.Text,0)<=0) then
begin
  Application.MessageBox('"本次数量有误",请重新输入!','出错提示',mb_ok);
  Edit7.SetFocus;
  abort;
end;
//检查是否选择了订书单位
if Combobox1.ItemIndex=0 then
begin
  Application.MessageBox('请选择"订书单位"!','出错提示',mb_ok);
  Combobox1.SetFocus;
  abort;
end;

  with BookIn do
  begin
    Parameters.Clear;
    //Parameters.CreateParameter('@ISBN_2',ftstring,pdinput,13,MaskEdit3.Text);
    //Parameters.CreateParameter('@BookAmount_2',ftinteger,pdinput,4,StrToInt(Edit8.Text));
    if not ISExists then
    begin
      ProcedureName:='insert_Books_1';
      Parameters.CreateParameter('@ISBN_2',ftstring,pdinput,13,MaskEdit3.Text);
      Parameters.CreateParameter('@bookName_1',ftstring,pdinput,50,MaskEdit3.Text);
      Parameters.CreateParameter('@Press_2',ftString,pdinput,50,Edit1.Text);
      Parameters.CreateParameter('@Author_3',ftstring,pdinput,8,Edit3.Text);
      Parameters.CreateParameter('@Award_4',ftstring,pdinput,50,Edit9.Text);
      Parameters.CreateParameter('@publishDate_5',ftDateTime,pdinput,8,MaskEdit1.Text);
      Parameters.CreateParameter('@OrderDepartmentName_6',ftstring,pdinput,20,Combobox1.Text);
      Parameters.CreateParameter('@handler_7',ftstring,pdinput,8,Edit5.Text);
      Parameters.CreateParameter('@BookAmount_2',ftinteger,pdinput,4,Strtoint(Edit8.Text));
      Parameters.CreateParameter('@Price_9',ftfloat,pdinput,4,StrTofloat(Edit4.Text));
      Parameters.CreateParameter('@UsingWay_10',ftstring,pdinput,50,Edit10.Text);
      Parameters.CreateParameter('@About_12',ftstring,pdinput,50,Edit11.Text);
      Parameters.CreateParameter('@OperatorID_13',ftstring,pdinput,8,frmMain.OperatorInfo.OperatorID);
    end
    else
    begin
      ProcedureName:='update_Books_1';
      Parameters.CreateParameter('@ISBN_2',ftstring,pdinput,13,MaskEdit3.Text);
      Parameters.CreateParameter('@BookAmount_2',ftinteger,pdinput,4,StrToInt(Edit8.Text));
    end;
    try
      ExecProc;
      Application.MessageBox('教材信息添加成功!','提示',mb_ok);
      bitbtn1.Enabled:=false;
      self.initializtionfrm;
     // MaskEdit3.EditMask:='0\-000\-00000\-A;1;_';
    except
      Application.MessageBox('教材信息添加失败!','出错提示',mb_ok);
    end;
  end;
end;

procedure TfrmBookIn.Edit7Exit(Sender: TObject);
var
  totalAmount,Amount,NowAmount:integer;
begin
    Amount:=StrToIntDef(Edit6.Text,0);    //原有数量
    if StrToIntDef(Edit7.Text,0)<=0 then
    begin
      Application.MessageBox('你输入数值有误,或为0!','出错提示',mb_ok);
      Edit7.SetFocus;
      abort;
    end;
    NowAmount:=StrToIntDef(Edit7.Text,0); //本次数量
    TotalAmount:=Amount+NowAmount;//总数量
    Edit8.Text:=IntToStr(TotalAmount);
    bitbtn1.Enabled:=true;
end;

end.

⌨️ 快捷键说明

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