一个库存的问题。。。。代码见内(如需要,请留下你的E-MAIL)
入库操作
procedure TF_warehouse.TabSheet1Show(Sender: TObject);
begin
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('select * from warehouse');
Query1.Open;
end;
procedure TF_warehouse.ToolButton1Click(Sender: TObject);
var
num:integer;
begin
{if (edit1.text='') or (edit2.text='') or (edit3.text='') then
messagebox(handle,'提示信息','不能为空',16); }
Query2.Close;
Query2.Sql.Clear;
Query2.Sql.Add('insert into w_in values(:vname,:vstandard,:vuse_type,:vp_date,:vbanch,:vin_date,:vperson,:vnum,:vu_price,:vm_price)');
Query2.ParamByName('vname').AsString:=trim(Edit1.Text);
Query2.ParamByName('vstandard').AsString:=trim(Edit2.Text);
Query2.ParamByName('vuse_type').AsString:=trim(Edit4.Text);
Query2.ParamByName('vp_date').AsDateTime:=StrtoDateTime(MaskEdit1.Text);
Query2.ParamByName('vbanch').AsString:=trim(Edit3.Text);
Query2.ParamByName('vin_date').AsDateTime:=StrtoDateTime(MaskEdit2.Text);
Query2.ParamByName('vperson').AsString:=trim(Edit5.Text);
Query2.ParamByName('vnum').AsInteger:=StrtoInt(trim(Edit6.Text));
Query2.ParamByName('vu_price').AsFloat:=StrToFloat(trim(Edit8.Text));
Query2.ParamByName('vm_price').AsFloat:=StrToFloat(trim(Edit9.Text));
Query2.ExecSQL;
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('select name from warehouse where name=:v1 and stand=:v2 and use_type=:v3');
Query1.ParamByName('v1').AsString:=Trim(Edit1.Text);
Query1.ParamByName('v2').AsString:=Trim(Edit2.Text);
Query1.ParamByName('v3').AsString:=Trim(Edit4.Text);
Query1.Open;
if Query1.IsEmpty=True then
begin
Query3.Close;
Query3.Sql.Clear;
Query3.Sql.Add('insert into warehouse values(:v1,:v2,:v3,:v4)');
Query3.ParamByName('v1').AsString:=Trim(Edit1.Text);
Query3.ParamByName('v2').AsString:=Trim(Edit2.Text);
Query3.ParamByName('v3').AsString:=Trim(Edit4.Text);
num:=StrtoInt(trim(Edit6.Text));
Query3.ParamByName('v4').AsInteger:=num;
Query3.ExecSQL;
end
else
begin
Query3.Close;
Query3.Sql.Clear;
Query3.Sql.Add('update warehouse set num=num+:v4 where name=:v1 and stand=:v2 and use_type=:v3');
Query3.ParamByName('v1').AsString:=Trim(Edit1.Text);
Query3.ParamByName('v2').AsString:=Trim(Edit2.Text);
Query3.ParamByName('v3').AsString:=Trim(Edit4.Text);
num:=StrtoInt(trim(Edit6.Text));
Query3.ParamByName('v4').AsInteger:=num;
Query3.ExecSQL;
end;
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
Edit5.Clear;
Edit6.Clear;
Edit8.Clear;
Edit9.Clear;
MaskEdit1.Clear;
Maskedit2.Clear;
ShowMessage('入库成功!');
end;
出库操作
procedure TF_warehouse.ToolButton3Click(Sender: TObject);
var
num:integer;
begin
Query2.Close;
Query2.Sql.Clear;
Query2.Sql.Add('insert into w_in values(:vname,:vstandard,:vuse_type,:vout_warehouse,:vperson,:vnum,:vu_price,:vm_price,:vu_name,:vu_address,:vu_phone)');
Query2.ParamByName('vname').AsString:=trim(Edit7.Text);
Query2.ParamByName('vstandard').AsString:=trim(Edit10.Text);
Query2.ParamByName('vuse_type').AsString:=trim(Edit11.Text);
Query2.ParamByName('vout_warehouse').AsDateTime:=StrtoDateTime(MaskEdit3.Text);
Query2.ParamByName('vperson').AsString:=trim(Edit12.Text);
Query2.ParamByName('vnum').AsInteger:=StrtoInt(trim(Edit13.Text));
Query2.ParamByName('vu_price').AsFloat:=StrToFloat(trim(Edit14.Text));
Query2.ParamByName('vm_price').AsFloat:=StrToFloat(trim(Edit15.Text));
Query2.paramByName('Vu_name').asstring:=trim(edit16.text);
Query2.paramByName('vu_address').asstring:=trim(edit17.text);
Query2.paramByName('vu_phone').asinteger:=strtoint(trim(edit18.text));
Query2.ExecSQL;
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('select name from warehouse where name=:v1 and stand=:v2 and use_type=:v3');
Query1.ParamByName('v1').AsString:=Trim(Edit7.Text);
Query1.ParamByName('v2').AsString:=Trim(Edit10.Text);
Query1.ParamByName('v3').AsString:=Trim(Edit11.Text);
Query1.Open;
if Query1.IsEmpty=True then
begin
Query3.Close;
Query3.Sql.Clear;
Query3.Sql.Add('insert into warehouse values(:v1,:v2,:v3,:v4)');
Query3.ParamByName('v1').AsString:=Trim(Edit7.Text);
Query3.ParamByName('v2').AsString:=Trim(Edit10.Text);
Query3.ParamByName('v3').AsString:=Trim(Edit11.Text);
num:=StrtoInt(trim(Edit13.Text));
Query3.ParamByName('v4').AsInteger:=num;
Query3.ExecSQL;
end
else
begin
Query3.Close;
Query3.Sql.Clear;
Query3.Sql.Add('update warehouse set num=num-:v4 where name=:v1 and stand=:v2 and use_type=:v3');
Query3.ParamByName('v1').AsString:=Trim(Edit1.Text);
Query3.ParamByName('v2').AsString:=Trim(Edit2.Text);
Query3.ParamByName('v3').AsString:=Trim(Edit4.Text);
num:=StrtoInt(trim(Edit13.Text));
Query3.ParamByName('v4').AsInteger:=num;
Query3.ExecSQL;
end;
Edit7.Clear;
Edit10.Clear;
Edit11.Clear;
Edit12.Clear;
Edit13.Clear;
Edit14.Clear;
Edit15.Clear;
Edit16.Clear;
edit17.clear;
edit18.clear;
MaskEdit3.Clear;
ShowMessage('出库成功!');
end;
但是处库老是出错。。。错在什么地方啊 。。。我不太会修改