📄 buyunit.~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 + -