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

📄 buyunit.~pas

📁 图书馆管理系统,非常有用,希望给你带来帮助
💻 ~PAS
字号:
unit BuyUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ActnList;

type
  TBuyForm = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    ComboBox3: TComboBox;
    ComboBox4: TComboBox;
    ComboBox5: TComboBox;
    ComboBox6: TComboBox;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure ComboBox3Change(Sender: TObject);
    procedure ComboBox5Change(Sender: TObject);
    procedure ComboBox6Change(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
    procedure WMNCpaint(var Msg:TWMNCPaint); message WM_NCPAINT;
    procedure SetCombox(Sender: TObject);
  public
    { Public declarations }
  end;

var
  BuyForm: TBuyForm;

implementation
uses Share,DMUnit;

{$R *.dfm}

procedure TBuyForm.WMNCpaint(var Msg: TWMNCPaint);
begin
  inherited;
  Draw(BuyForm);
end;

procedure TBuyForm.SetCombox(Sender: TObject);
var
  tempstr:TStrings;
begin
  tempstr:=TStringList.Create;
  try
    tempstr:=DM.GetPub;
    combobox1.Items.Clear;
    combobox1.Items.Assign(tempstr);
    combobox1.ItemIndex:=0;
    tempstr:=DM.GetAuth;
    combobox2.Items.Clear;
    combobox2.Items.Assign(tempstr);
    combobox2.ItemIndex:=0;
    tempstr:=DM.GetTypeSno;
    combobox3.Items.Clear;
    combobox3.Items.Assign(tempstr);
    combobox3.ItemIndex:=0;
    tempstr:=DM.GetTypeGen;
    combobox5.Items.Clear;
    combobox5.Items.Assign(tempstr);
    combobox5.ItemIndex:=0;
    tempstr:=DM.GetTypeTyp(combobox5.text);
    combobox6.Items.Clear;
    combobox6.Items.Assign(tempstr);
    combobox6.ItemIndex:=0;
  finally
    tempstr.Free;
  end;
end;

procedure TBuyForm.FormCreate(Sender: TObject);
begin
   SetCombox(sender);
end;

procedure TBuyForm.BitBtn3Click(Sender: TObject);
begin
  SetCombox(sender);
end;

procedure TBuyForm.ComboBox3Change(Sender: TObject);
begin
  with DM do
  begin
    BuyQuery.SQL.Text:='select type_gen,type_typ from book_type where type_sno=:in0';
    BuyQuery.Parameters[0].Value:=combobox3.Text;
    Buyquery.Prepared;
    BuyQuery.Open;
    if BuyQuery.RecordCount=1 then
    begin
      combobox5.Text:=BuyQuery.Fields[0].AsString;
      combobox6.Text:=BuyQuery.Fields[1].AsString;
    end;
    BuyQuery.Close;
  end;
end;

procedure TBuyForm.ComboBox5Change(Sender: TObject);
var
  typstr:TStrings;
begin
  typstr:=TStringList.Create;
  try
    typstr:=DM.GetTypeTyp(combobox5.Text);
    combobox6.Items.Clear;
    combobox6.Items.Assign(typstr);
    combobox6.ItemIndex:=0;
  finally
    typstr.Free;
  end;
end;

procedure TBuyForm.ComboBox6Change(Sender: TObject);
var
  snostr:string;
begin
  snostr:=DM.GetSno(combobox5.Text,combobox6.text);
  if not (snostr='') then
    combobox3.Text:=snostr;
end;

procedure TBuyForm.BitBtn1Click(Sender: TObject);
var
  price:currency;
begin
  if edit1.Text='' then
  begin
    showmessage('还没有输入ISBN编号!');
    edit1.SetFocus;
    exit;
  end;
  if edit2.Text='' then
  begin
    showmessage('还没有输入书名!');
    edit2.SetFocus;
    exit;
  end;
  if combobox1.Text='' then
  begin
    showmessage('还没有输入出版社名称!');
    combobox1.SetFocus;
    exit;
  end;
  if combobox2.Text='' then
  begin
    showmessage('还没有输入作者名');
    combobox2.SetFocus;
    exit;
  end;
  if (combobox3.Text='') or (combobox5.Text='') or (combobox6.Text='') then
  begin
    showmessage('图书类型没有完整输入!');
    combobox3.SetFocus;
    exit;
  end;
  try
    price:=StrToCurr(edit3.Text);
  except
    showmessage('输入的金额错误');
  end;
  with DM do
  begin
    BuyQuery.SQL.Text:='select book_isbn from book_stock where  book_isbn=:in0';
    BuyQuery.Parameters[0].Value:=Trim(edit1.Text);
    BuyQuery.Prepared;
    BuyQuery.Open;
    if BuyQuery.RecordCount=1 then
    begin
      showmessage('输入的ISBN编号在数据库中已存在!');
      BuyQuery.Close;
      Edit1.SetFocus;
      exit;
    end;
    BuyQuery.SQL.Text:='select pub_name from pub_info where pub_name=:in0';
    BuyQuery.Parameters[0].Value:=Trim(combobox1.Text);
    BuyQuery.Prepared;
    BuyQuery.Open;
    if BuyQuery.RecordCount=0 then
    begin
      ADOConn.BeginTrans;
      try
        BuyQuery.Close;
        BuyQuery.SQL.Text:='insert into pub_info(pub_name) values(:in0)';
        BuyQuery.Parameters[0].Value:=Trim(combobox1.Text);
        BuyQuery.Prepared;
        BuyQuery.ExecSQL;
        ADOConn.CommitTrans;
      except
        ADOConn.RollbackTrans;
        showmessage('输入出版社信息时发生异常情况!');
      end;
    end;
    BuyQuery.Close;
    BuyQuery.SQL.Text:='select auth_name from auth_info where auth_name=:in0';
    BuyQuery.Parameters[0].Value:=Trim(combobox2.Text);
    BuyQuery.Prepared;
    BuyQuery.Open;
    if Buyquery.RecordCount=0 then
    begin
      ADOConn.BeginTrans;
      try
        BuyQuery.Close;
        BuyQuery.SQL.Text:='insert into auth_info(auth_name) values(:in0)';
        BuyQuery.Parameters[0].Value:=Trim(combobox2.Text);
        BuyQuery.Prepared;
        BuyQuery.ExecSQL;
        ADOConn.CommitTrans;
      except
        ADOConn.RollbackTrans;
        showmessage('输入作者信息时发生异常情况!');
      end;
    end;
    BuyQuery.Close;
    BuyQuery.SQL.Text:='select type_sno from book_type where type_sno=:in0';
    BuyQuery.Parameters[0].Value:=combobox3.Text;
    BuyQuery.Prepared;
    BuyQuery.Open;
    if BuyQuery.RecordCount=0 then
    begin
      ADOConn.BeginTrans;
      try
        BuyQuery.Close;
        BuyQuery.SQL.Text:='insert into book_type(type_sno,type_gen,type_typ) '+
                           ' values(:in0,:in1,:in2)';
        BuyQuery.Parameters[0].Value:=Combobox3.Text;
        BuyQuery.Parameters[1].Value:=combobox5.Text;
        buyquery.Parameters[2].Value:=combobox6.Text;
        BuyQuery.Prepared;
        BuyQuery.ExecSQL;
        ADOConn.CommitTrans;
      except
        ADOConn.RollbackTrans;
        showmessage('输入类型信息时发生异常情况!');
      end;
    end;
    BuyQuery.Close;
    BuyQuery.SQL.Text:='select book_name from book_info where book_name=:in0';
    BuyQuery.Parameters[0].Value:=Trim(edit2.Text);
    BuyQuery.Prepared;
    BuyQuery.Open;
    if BuyQuery.RecordCount=0 then
    begin
      ADOconn.BeginTrans;
      try
        BuyQuery.Close;
        BuyQuery.SQL.Text:='insert into book_info(book_name,publish,author,'+
                           'type_sno,book_year,book_price) values(:in0,:in1,:in2,'+
                           ':in3,:in4,:in5)';
        BuyQuery.Parameters[0].Value:=Trim(edit2.Text);
        BuyQuery.Parameters[1].Value:=Trim(combobox1.Text);
        BuyQuery.Parameters[2].Value:=Trim(combobox2.Text);
        BuyQuery.Parameters[3].Value:=combobox3.Text;
        BuyQuery.Parameters[4].Value:=combobox4.Text;
        BuyQuery.Parameters[5].Value:=price;
        BuyQuery.Prepared;
        BuyQuery.ExecSQL;
        ADOConn.CommitTrans;
      except
        ADOConn.RollbackTrans;
        showmessage('输入书籍信息的时候出错');
      end;
    end;
    BuyQuery.Close;
    ADOConn.BeginTrans;
    try
      BuyQuery.SQL.Text:='insert into book_stock(book_isbn,book_name,buy_date,'+
                         'lendout) values(:in0,:in1,:in2,"n")';
      BuyQuery.Parameters[0].Value:=Trim(edit1.Text);
      BuyQuery.Parameters[1].Value:=Trim(edit2.Text);
      BuyQuery.Parameters[2].Value:=Date;
      BuyQuery.Prepared;
      BuyQuery.ExecSQL;
      ADOconn.CommitTrans;
    except
      ADOconn.RollbackTrans;
      showmessage('输入库存信息的时候出错!');
    end;
    BuyQuery.Close;
  end;
  Edit1.Clear;
  Edit1.SetFocus;
end;

end.

⌨️ 快捷键说明

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