📄 unitxiangpin.pas
字号:
end
//商品表已存在一条该编号的商品记录,所以只需修改该条记录
else
begin
DM.ADOTXPXX.Cancel;
//sign := '';
first;
stock1 := 0;
sale1 := 0;
stock1 := fieldbyname('prod_stock').AsInteger;
sale1 := fieldbyname('prod_sale').AsInteger;
with DM.ADOQTEMP1 do
begin
edit;
fieldbyname('prod_sort').AsString := trim(DBcombobox1.Text);
fieldbyname('prod_id').AsString := trim(DBcombobox4.Text);
fieldbyname('prod_unit').AsString := trim(DBcombobox2.Text);
fieldbyname('prod_name').AsString := trim(DBCombobox3.Text);
fieldbyname('prod_price').AsFloat := strtofloat(DBEdit1.Text);
fieldbyname('prod_stock').AsInteger := stock1 + strtoint(DBEdit3.Text);
fieldbyname('prod_sale').AsInteger := sale1;
end;
try
DM.ADOQTEMP1.Post;
except
//showmessage('软件发生错误,操作失败!请重新进行上次操作!');
try
DM.ADOTXPJH.Last;
DM.ADOTXPJH.Delete;
except
showmessage('发生严重错误,请把刚添加的数据删除掉!');
button2click(self);
exit;
end;
end;
{if active then
active := false;
SQL.Clear;
SQL.Add(str2);
parameters.ParamByName('sort1').Value := trim(DBCombobox1.text);
parameters.ParamByName('unit1').Value := trim(DBCombobox2.text);
parameters.ParamByName('price1').Value := strtofloat(DBEdit1.Text);
parameters.ParamByName('stock1').Value := stock1 + strtoint(DBEdit3.Text);
parameters.ParamByName('sale1').Value := sale1;
parameters.ParamByName('name1').Value := trim(DBCombobox3.text);
try
if (not prepared) then
prepared := true;
execSQL;
except
messagebox(0,'入库失败!','错误',MB_OK+MB_ICONERROR);
end;
end;
end;
end;
end;}
DM.ADOQXPXX1.Close;
DM.ADOQXPXX1.Open;
DBCombobox1.Clear;
DBCombobox2.Clear;
DBcombobox3.Clear;
DBEdit2.Clear;
DBEdit3.Clear;
//DateTimePicker1.CleanupInstance;
Button1.Enabled := false;
Button2.Enabled := false;
button4.Enabled := true;
Button5.Enabled := true;
Button6.Enabled := true;
DIS;
end;
procedure TFrmXiangPin.Button2Click(Sender: TObject);
begin
DM.ADOTXPXX.Cancel;
DM.ADOTXPJH.Cancel;
DBcombobox1.Clear;
DBcombobox2.Clear;
DBcombobox3.Clear;
DBEdit2.Clear;
DBEdit3.Clear;
//DateTimePicker1.CleanupInstance;
Button1.Enabled := false;
Button2.Enabled := false;
button4.Enabled := true;
Button5.Enabled := true;
Button6.Enabled := true;
DIS;
//sign := '0';
end;
procedure TFrmXiangPin.Button5Click(Sender: TObject);
{var
str2,str3, str4, str5: string;
in_ids, in_numbers: integer;
in_prod_ids, in_prod_names: string;
in_prices : single;
in_times: Tdatetime; }
begin
if messagebox(0, '删除的商品将不能恢复,确定要删除吗?','警告',MB_OKCANCEL+MB_ICONWARNING) = IDOK then
begin
with DM.ADOSPDeleteStock do
begin
parameters.ParamByName('@in_id').Value := DM.ADOQXPXX1.fieldbyname('in_id').Value;
parameters.ParamByName('@prod_id').Value := DM.ADOQXPXX1.fieldbyname('prod_id').Value;
parameters.ParamByName('@in_number').Value := DM.ADOQXPXX1.fieldbyname('in_number').Value;
try
Execproc;
except
showmessage('操作失败!');
exit;
end;
end;
end
{with DM.ADOQXPXX1 do
begin
in_ids := fieldbyname('in_id').AsInteger;
in_prod_ids := fieldbyname('prod_id').AsString;
in_prod_names := fieldbyname('prod_name').AsString;
in_prices := fieldbyname('in_price').AsFloat;
in_numbers := fieldbyname('in_number').AsInteger;
in_times := fieldbyname('in_time').AsDateTime;
end;
str2 := 'DELETE FROM prod WHERE prod_id LIKE :id';
str3 := 'DELETE FROM stock WHERE in_id = :id ';//and in_time = :time;
str4 := 'update prod set prod_stock = prod_stock - :stock where prod_id = :id';
str5 := 'insert into stock (operator_id, in_id, in_prod_id, in_prod_name, in_price, in_number, in_time) '
+ ' values(:opid, :ids, :prod_ids, :prod_names, :prices, :numbers, :time) ';
//从进货表中删除一条记录
with DM.ADOQTEMP1 do
begin
close;
SQL.Clear;
SQL.Add('select prod_stock from prod where prod_id = :id');
parameters.ParamByName('id').Value := in_prod_ids;
if (not prepared) then
prepared := true;
try
open;
except
ExecSQL;
end;
if (fieldbyname('prod_stock').Value - in_numbers < 0) then
begin
showmessage('操作错误,不能删除该进货信息!');
exit;
end;
end;
with DM.ADOQTEMP1 do
begin
close;
with SQL do
begin
clear;
add(str3);
end;
parameters.ParamByName('id').Value := DM.ADOQXPXX1.fieldbyname('in_id').Value;
//parameters.ParamByName('time').Value := DM.ADOQXPXX1.fieldbyname('in_time').AsDateTime;
if (not prepared) then
prepared := true;
try
execSQL;
except
showmessage('软件发生错误,不能删除进货记录!');
close;
exit;
end;
DM.ADOQXPXX1.Close;
DM.ADOQXPXX1.Open;
end;
//检验进货表中还有该编号的商品存在
with DM.ADOQTEMP1 do
begin
close;
with SQL do
begin
clear;
add('select * from stock where in_prod_id LIKE :id');
parameters.ParamByName('id').Value := in_prod_ids;
end;
if (not prepared) then
prepared := true;
active := true;
//进货表己没有该编号的商品存在,从商品表中彻底删除该编号的商品
if recordcount = 0 then
begin
close;
if active then
active := false;
SQL.clear;
SQL.add(str2);
parameters.parambyname('id').value := in_prod_ids;
try
if (not prepared) then
prepared := true;
execSQL;
except
showmessage('软件发生错误,操作失败!请重新进行上次操作!');
close;
with DM.ADOQTEMP2 do
begin
close;
SQL.Clear;
SQL.Add(str5);
parameters.ParamByName('opid').Value := auser.userid;
parameters.ParamByName('ids').Value := in_ids;
parameters.ParamByName('prod_ids').Value := in_prod_ids;
parameters.ParamByName('prod_names').Value := in_prod_names;
parameters.ParamByName('prices').Value := in_prices;
parameters.ParamByName('numbers').Value := in_numbers;
parameters.ParamByName('time').Value := in_times;
if (not prepared) then
prepared := true;
try
ExecSQL;
except
showmessage('发生严重错误,请把刚删除的数据再添加进去,否则会有严重后果');
end;
end;
DM.ADOQXPXX1.close;
DM.ADOQXPXX1.Open;
end;
end
//进货表中还有该编号的商品,所以修改该商品的库存数量
else
with DM.ADOQTEMP1 do
begin
close;
SQL.Clear;
SQL.Add(str4);
parameters.ParamByName('stock').Value := in_numbers;
parameters.ParamByName('id').Value := in_prod_ids;
if (not prepared) then
prepared := true;
try
execSQL;
except
showmessage('软件发生错误!请重新进行一次上次操作!');
close;
with DM.ADOQTEMP2 do
begin
close;
SQL.Clear;
SQL.Add(str5);
parameters.ParamByName('opid').Value := auser.userid;
parameters.ParamByName('ids').Value := in_ids;
parameters.ParamByName('prod_ids').Value := in_prod_ids;
parameters.ParamByName('prod_names').Value := in_prod_names;
parameters.ParamByName('prices').Value := in_prices;
parameters.ParamByName('numbers').Value := in_numbers;
parameters.ParamByName('time').Value := in_times;
try
if (not prepared) then
prepared := true;
ExecSQL;
except
showmessage('发生严重错误,请把刚删除的数据再添加进去!');
end;
end;
DM.ADOQXPXX1.Refresh;
end;
end;
end;
end}
else
exit;
DM.ADOQXPXX1.Close;
DM.ADOQXPXX1.Open;
end;
procedure TFrmXiangPin.Button6Click(Sender: TObject);
begin
//DateTimepicker1.DateTime := DM.ADOQXPXX1.fieldbyname('in_time').AsDateTime;
Button1.Enabled := true;
Button2.Enabled := true;
ENA;
sign := '1';
Button6.Enabled := false;
{with DM.ADOQXPXX1 do
begin
DBcombobox1.Text := fieldbyname('prod_sort').AsString;
DBCombobox2.Text := fieldbyname('prod_unit').AsString;
DBCombobox2.Text := fieldbyname('prod_name').AsString;
DBEdit1.Text := fieldbyname('prod_price').AsString;
DBEdit2.Text := fieldbyname('in_price').AsString ;
DBEdit3.Text := fieldbyname('in_number').AsString ;
DateTimePicker1.DateTime := fieldbyname('in_time').AsDateTime;
end;}
{str3 := '';
str3 := DM.ADOQXPXX1.fieldbyname('prod_name').AsString;
str4 := 'UPDATE prod SET (prod_sort = :prod_sort1, prod_unit = :prod_unit1) where prod_name = ' + trim(DBCombobox3.Text);
str5 := 'UPDATE stock SET (in_price = :in_price1, in_number = :in_number1) where in_prod_name = ' + trim(DBCombobox3.Text);
with DM.ADOQTEMP1 do
begin
close;
with SQL do
begin
clear;
add(str4);
end;
try
if (not prepared) then
prepared := true;
execSQL;
except
showmessage('发生程序错误,修改失败!');
close;
end;
end;
with DM.ADOQTEMP1 do
begin
close;
with SQL do
begin
clear;
add(str5);
end;
try
if (not prepared) then
prepared := true;
execSQL;
except
showmessage('发生程序错误,修改失败!');
close;
end;
end;}
end;
procedure TFrmXiangPin.DBGrid1DblClick(Sender: TObject);
begin
{with DM.ADOQXPXX1 do
begin
DBcombobox1.Text := fieldbyname('prod_sort').AsString;
DBCombobox2.Text := fieldbyname('prod_unit').AsString;
DBCombobox2.Text := fieldbyname('prod_name').AsString;
DBEdit1.Text := fieldbyname('prod_price').AsString;
DBEdit2.Text := fieldbyname('in_price').AsString ;
DBEdit3.Text := fieldbyname('in_number').AsString ;
DateTimePicker1.Date := fieldbyname('in_time').AsDateTime;}
//temp1 := DM.ADOQXPXX1.fieldbyname('in_number').AsInteger;//保存好原来的进货数量
DBcombobox3.ReadOnly := true;
//DateTimePicker1.Date := DM.ADOQXPXX1.fieldbyname('in_time').AsDateTime;
sign := '1';
ENA;
Button1.Enabled := true;
Button2.Enabled := true;
Button6.Enabled := false;
button4.Enabled := false;
button5.Enabled := false;
//end;
end;
procedure TFrmXiangPin.DBComboBox1DropDown(Sender: TObject);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -