📄 unitxpxs.pas
字号:
money1 := strtofloat(Edit3.Text) * strtoint(Edit2.Text);
Label6.Caption := floattostr(strtofloat(Label6.Caption) + money1);
CLS;
DM.ADOQXPXS1.Close;
DM.ADOQXPXS1.Open;
Combobox3.SetFocus;
end;
end
else
begin
first;
with DM.ADOQXPXS do
begin
close;
SQL.Clear;
SQL.Add(str6);
parameters.ParamByName('number').Value := DM.ADOQTEMP3.fieldbyname('sell_number').AsInteger + strtoint(Edit2.Text);
try
if (not prepared) then
prepared := true;
ExecSQL;
money1 := strtofloat(Edit3.Text) * strtoint(Edit2.Text);
Label6.Caption := floattostr(strtofloat(Label6.Caption) + money1);
CLS;
Combobox3.SetFocus;
except
showmessage('操作失败,请再试!');
exit;
end;
end;
end;
end;
{with DM.ADOQXPXS do
begin
close;
SQL.Clear;
SQL.Add(str3);
parameters.ParamByName('stock').Value := DM.ADOQTEMP4.fieldbyname('prod_stock').AsInteger - strtoint(Edit2.Text);
parameters.ParamByName('sale').Value := DM.ADOQTEMP4.fieldbyname('prod_sale').AsInteger + strtoint(Edit2.Text);
parameters.ParamByName('id').Value := trim(Combobox3.Text);
try
if (not prepared) then
prepared := true;
ExecSQL;
except
with DM.ADOQXPXS do
begin
close;
SQL.Clear;
SQL.Add(str4);
parameters.ParamByName('id').Value := trim(Combobox3.Text);
parameters.ParamByName('time').Value := times;
try
if (not prepared) then
prepared := true;
ExecSQL;
Label6.Caption := floattostr(strtofloat(Label6.Caption) - money1);
except
showmessage('操作失败,请把刚添加的交易删除掉!');
DM.ADOQXPXS1.Refresh;
exit;
end;
end;
end;
end;}
DM.ADOQXPXS1.Close;
DM.ADOQXPXS1.Open;
end;
procedure TFrmXPXS.FormShow(Sender: TObject);
begin
DIS;
//DM.ADOQXPXS1.Open;
image7.Enabled := true;
Edit1.Clear;
end;
procedure TFrmXPXS.Image4Click(Sender: TObject);
var
i, j: integer;
money, money1: real;
str1, str2, str3, str4, str6: string;
begin
if (Edit1.Text = '') or (strtofloat(Edit1.Text) < strtofloat(Label6.Caption)) then
begin
messagebox(0, pchar('收额不足,应收金额为' + Label6.Caption + '元,收额不足!'),'检查输入', MB_OK+MB_ICONWARNING);
exit;
end;
str1 := 'select * from sell where sell_pay = :pay';
str2 := 'update sell set sell_pay = :pay where sell_id = :id';
str3 := 'select * from prod where prod_id = :id';
str4 := 'update prod set prod_stock = :stock, prod_sale = :sale where prod_id = :id';
str6 := 'update sell set sell_pay = 0 where sell_id = :id';
with DM.ADOQTEMP3 do
begin
close;
SQL.Clear;
SQL.Add(str1);
parameters.ParamByName('pay').Value := 0;
if (not prepared) then
prepared := true;
try
active := true;
except
ExecSQL;
end;
if (recordcount > 0) then
first;
for i := 0 to recordcount - 1 do
begin
with DM.ADOQXPXS do
begin
close;
SQL.Clear;
SQL.Add(str2);
parameters.ParamByName('id').Value := DM.ADOQTEMP3.fieldbyname('sell_id').AsInteger;
parameters.ParamByName('pay').Value := 1;
try
if (not prepared) then
prepared := true;
ExecSQL;
except
if i = 0 then
begin
showmessage('本次交易失败,请再试!');
CLS;
DIS;
exit;
end
else
begin
for j := 0 to i - 1 do
begin
money1 := 0;
first;
money1 := money1 + fieldbyname('sell_money').AsFloat;
next;
end;
Label6.Caption := floattostr(money1);
messagebox(0, pchar('发生错误,只进行前 ' + inttostr(i + 1) + '条交易,应收款' + Label6.Caption + '元,找回' + floattostr(strtofloat(Edit1.text) - strtofloat(Label6.caption)) + '谢谢惠顾!'),'警告',MB_OK+MB_ICONWARNING);
Edit1.Clear;
CLS;
DIS;
exit;
end;
end;
end;
with DM.ADOQTEMP2 do
begin
close;
SQL.Clear;
SQL.Add(str3);
parameters.ParamByName('id').Value := DM.ADOQTEMP3.fieldbyname('sell_prod_id').AsString;
if (not prepared) then
prepared := true;
active := true;
end;
with DM.ADOQXPXS do
begin
close;
SQL.Clear;
SQL.Add(str4);
parameters.ParamByName('id').Value := DM.ADOQTEMP3.fieldbyname('sell_prod_id').AsString;
parameters.ParamByName('stock').Value := DM.ADOQTEMP2.fieldbyname('prod_stock').AsInteger - DM.ADOQTEMP3.fieldbyname('sell_number').AsInteger;
parameters.ParamByName('sale').Value := DM.ADOQTEMP2.fieldbyname('prod_sale').AsInteger + DM.ADOQTEMP3.fieldbyname('sell_number').AsInteger;
if (not prepared) then
prepared := true;
try
ExecSQL;
except
if i = 0 then
begin
showmessage('本次交易失败,请再试!');
exit;
CLS;
DIS;
end
else
begin
for j := 0 to i - 1 do
begin
money1 := 0;
first;
money1 := money1 + fieldbyname('sell_money').AsFloat;
next;
end;
Label6.Caption := floattostr(money1);
messagebox(0, pchar('发生错误,请把第' + inttostr(i + 1) + '条交易删除掉,否则会有严重后果。只进行前 ' + trim('i + 1') + '条交易, 应收款' + Label6.Caption + '元,找回' + floattostr(strtofloat(Edit1.text) - strtofloat(Label6.caption)) + '元,谢谢惠顾!'),'警告',MB_OK+MB_ICONWARNING);
Edit1.Clear;
CLS;
DIS;
with DM.ADOQXPXS do
begin
close;
SQL.Clear;
SQL.Add(str6);
parameters.ParamByName('id').Value := DM.ADOQTEMP3.fieldbyname('sell_id').AsInteger;
try
if (not prepared) then
prepared := true;
ExecSQL;
exit;
except
messagebox(0, pchar('发生错误,请把第' + inttostr(i + 1) + '条交易删除掉,否则会有严重后果。'),'错误', MB_OK+MB_ICONERROR);
exit;
end;
end;
end;
end;
end;
next;
end;
end;
money := strtofloat(Edit1.Text) - strtofloat(Label6.Caption);
messagebox(0, pchar('找零' + floattostr(money) + '元,欢迎光临,谢谢惠顾!'), '销售完成', MB_OK+MB_ICONWARNING);
image7.Enabled := true;
Edit1.Clear;
CLS;
DIS;
end;
procedure TFrmXPXS.Image3Click(Sender: TObject);
var
str1: string;
money1: real;
begin
money1 := DM.ADOQXPXS1.fieldbyname('sell_money').AsFloat;
str1 := 'delete from sell where sell_id = :id and sell_pay = :pay';
with DM.ADOQXPXS do
begin
close;
SQL.Clear;
SQL.Add(str1);
parameters.ParamByName('id').Value := DM.ADOQXPXS1.fieldbyname('sell_id').AsInteger;
parameters.ParamByName('pay').Value := 0;
if (not prepared) then
prepared := true;
try
ExecSQL;
except
showmessage('操作失败,请再试一次!');
exit;
end;
Label6.Caption := floattostr(strtofloat(Label6.Caption) - money1);
DM.ADOQXPXS1.Close;
DM.ADOQXPXS1.Open;
end;
end;
procedure TFrmXPXS.Image2Click(Sender: TObject);
var
str1: string;
begin
str1 := 'delete from sell where sell_pay = 0';
with DM.ADOQXPXS do
begin
close;
SQL.Clear;
SQL.Add(str1);
try
if (not prepared) then
prepared := true;
ExecSQL;
DIS;
Label6.Caption := '0';
DM.ADOQXPXS1.Close;
DM.ADOQXPXS1.Open;
except
showmessage('发生错误,请再试一次!');
exit;
end;
end;
image7.Enabled := true;
end;
procedure TFrmXPXS.DBGrid1DblClick(Sender: TObject);
begin
image5.Visible := false;
image6.Visible := true;
Combobox3.Enabled := false;
Combobox3.Color := clLtGray;
with DM.ADOQXPXS1 do
begin
Combobox3.Text := fieldbyname('sell_prod_id').AsString;
Edit2.Text := fieldbyname('sell_number').AsString;
Edit3.Text := fieldbyname('sell_prod_price').AsString;
end;
end;
procedure TFrmXPXS.Image6Click(Sender: TObject);
var
str1: string;
begin
str1 := 'update sell set (sell_price = :price, sell_number = :number) '
+ ' where sell_id = :sellid ';
with DM.ADOQTEMP1 do
begin
close;
SQL.Clear;
SQL.Add(str1);
parameters.ParamByName('price').Value := strtofloat(Edit2.Text);
parameters.ParamByName('number').Value := strtoint(Edit3.Text);
parameters.ParamByName('sellid').Value := strtoint(Combobox3.Text);
try
if (not prepared) then
prepared := true;
ExecSQL;
except
showmessage('操作失败,请再试!');
exit;
end;
end;
end;
procedure TFrmXPXS.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (key = #13) then
Image4click(self);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -