一个库存的问题。。。。代码见内(如需要,请留下你的E-MAIL)

delphicat 2002-01-24 10:20:06
入库操作

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;


但是处库老是出错。。。错在什么地方啊 。。。我不太会修改
...全文
65 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluetooth_2001 2002-01-24
  • 打赏
  • 举报
回复
还有,你插入有11个字段,你看看你的w_in表结构吧,只有10个!而且你insert语句中的values列表顺序和表的顺序不一样,所以类型不匹配!

你先修改库结构吧

////////////////////有问题还是可以发到我的邮箱,因为这几天比较忙,所以不能帮你完整修改,你那个程序有很多需要改进
bluetooth_2001 2002-01-24
  • 打赏
  • 举报
回复
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)');

///////////为什么出库还要插入w_in,应该是删除吧?
delphicat 2002-01-24
  • 打赏
  • 举报
回复
请关注,CSDN的朋友

829

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧