📄 unitxpxs.pas
字号:
unit UnitXPXS;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, Mask, DBCtrls;
type
TFrmXPXS = class(TForm)
Panel1: TPanel;
GroupBox1: TGroupBox;
DBGrid1: TDBGrid;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Image6: TImage;
Label3: TLabel;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Edit1: TEdit;
Image7: TImage;
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label9: TLabel;
ComboBox3: TComboBox;
Edit2: TEdit;
Edit3: TEdit;
procedure DIS;
procedure ENA;
procedure CLS;
procedure ComboBox1DropDown(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure Image7Click(Sender: TObject);
procedure Combobox3Change(Sender: TObject);
procedure Image1Click(Sender: TObject);
procedure Image5Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Image4Click(Sender: TObject);
procedure Image3Click(Sender: TObject);
procedure Image2Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure Image6Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmXPXS: TFrmXPXS;
implementation
uses UnitDM;
{$R *.dfm}
procedure TFrmXPXS.DIS;
begin
Combobox1.Enabled := false;
Combobox1.Color := clLtGray;
Combobox2.Enabled := false;
Combobox2.Color := clLtGray;
Combobox3.Visible := false;
Edit2.Visible := false;
Edit3.Visible := false;
image4.Visible := false;
image5.Visible := false;
image6.Visible := false;
Label3.Visible := false;
Label4.Visible := false;
Label9.Visible := false;
end;
procedure TFrmXPXS.ENA;
begin
Combobox1.Enabled := true;
Combobox1.Color := clWindow;
Combobox2.Enabled := true;
Combobox2.Color := clWindow;
Combobox3.Visible := true;
Edit3.Visible := true;
Edit2.Visible := true;
image5.Visible := true;
image4.Visible := true;
Label3.Visible := true;
Label4.Visible := true;
Label9.Visible := true;
end;
procedure TFrmXPXS.CLS;
begin
Combobox3.clear;
Edit2.clear;
Edit3.Clear;
end;
procedure TFrmXPXS.ComboBox1DropDown(Sender: TObject);
var i: integer;
begin
Combobox1.Clear;
with DM.ADOQTEMP3 do
begin
close;
SQL.Clear;
SQL.Add('select distinct prod_sort from prod');
if (not prepared) then
prepared := true;
active := true;
if recordcount > 0 then
first;
for i := 0 to recordcount - 1 do
begin
combobox1.Items.Add(fieldbyname('prod_sort').AsString);
next;
end;
end;
end;
procedure TFrmXPXS.ComboBox1Change(Sender: TObject);
var i: integer;
begin
combobox2.Clear;
Combobox3.Clear;
with DM.ADOQTEMP3 do
begin
close;
SQL.Clear;
SQL.Add('SELECT distinct prod_name FROM prod WHERE prod_sort = :sort');
parameters.ParamByName('sort').Value := trim(combobox1.Text);
if (not prepared) then
prepared := true;
active := true;
if recordcount > 0 then
first;
for i := 0 to recordcount - 1 do
begin
combobox2.Items.Add(fieldbyname('prod_name').AsString);
next;
end;
end;
with DM.ADOQTEMP3 do
begin
close;
SQL.Clear;
SQL.Add('select distinct prod_id from prod where prod_sort = :sort');
parameters.ParamByName('sort').Value := trim(combobox1.Text);
if (not prepared) then
prepared := true;
active := true;
if recordcount > 0 then
first;
for i := 0 to recordcount - 1 do
begin
Combobox3.Items.Add(fieldbyname('prod_id').AsString);
next;
end;
end;
end;
procedure TFrmXPXS.ComboBox2Change(Sender: TObject);
var i: integer;
begin
with DM.ADOQTEMP3 do
begin
Combobox3.Clear;
close;
SQL.Clear;
SQL.Add('select distinct prod_id from prod where prod_name = :name');
parameters.ParamByName('name').Value := trim(combobox2.Text);
if (not prepared) then
prepared := true;
active := true;
if recordcount > 0 then
first;
for i := 0 to recordcount - 1 do
begin
Combobox3.Items.Add(fieldbyname('prod_id').asstring);
next;
end;
end;
end;
procedure TFrmXPXS.Image7Click(Sender: TObject);
begin
ModalResult := mrOK;
with DM do
begin
ADOQTEMP3.Close;
ADOQTEMP4.Close;
ADOQXPXS1.Close;
ADOQXPXS.Close;
end;
self.Close;
end;
procedure TFrmXPXS.Combobox3Change(Sender: TObject);
begin
Combobox1.Clear;
Combobox2.Clear;
with DM.ADOQTEMP3 do
begin
close;
SQL.Clear;
SQL.Add('select prod_price from prod where prod_id = :id');
parameters.ParamByName('id').Value := trim(Combobox3.Text);
if (not prepared) then
prepared := true;
active := true;
Edit2.Clear;
//Edit2.SetFocus;
Edit3.Text := fieldbyname('prod_price').AsString;
end;
DM.ADOQXPXS1.Close;
DM.ADOQXPXS1.Open;
end;
procedure TFrmXPXS.Image1Click(Sender: TObject);
begin
Label6.Caption := '0';
ENA;
image7.Enabled := false;
Edit1.Clear;
with DM.ADOQTEMP1 do
begin
close;
SQL.Clear;
SQL.Add('delete from sell where sell_pay = 0');
if (not prepared) then
prepared := true;
execSQL;
end;
DM.ADOQXPXS1.Close;
DM.ADOQXPXS1.Open;
end;
procedure TFrmXPXS.Image5Click(Sender: TObject);
var
temp1: integer;
str1,str2, str4, str5, str6: string;
money1: real;
begin
if (Combobox3.Text = '') then
begin
showmessage('销售商品编号没有填写!');
exit;
end;
if (Edit2.Text = '') then
begin
showmessage('购买数量没有填写!');
exit;
end;
if (Edit3.Text = '') then
begin
showmessage('销售商品单价没有填写!');
exit;
end;
str1 := 'select * from prod where prod_id = :id';
str2 := 'insert into sell(sell_prod_id, sell_prod_name, sell_prod_price, sell_number, '
+ ' sell_money, sell_pay) values(:id, :name, :price, :number, :money, :pay )';
//str3 := 'update prod set (prod_stock = :stock, prod_sale = :sale) where prod_id = :id';
str4 := 'delete from sell where sell_prod_id = :id, sell_time = :time';
str5 := 'select * from sell where sell_prod_id = :id and sell_pay = 0';
str6 := 'update sell set sell_number = :number where sell_pay = 0';
with DM.ADOQTEMP4 do
begin
if active then
active := false;
SQL.clear;
SQL.add(str1);
parameters.ParamByName('id').Value := trim(Combobox3.Text);
if (not prepared) then
prepared := true;
active := true;
temp1 := fieldbyname('prod_stock').AsInteger - strtoint(Edit2.Text);
end;
if temp1 < 0 then
begin
showmessage('交易失败,商品库存数量不足!');
exit;
end;
with DM.ADOQTEMP3 do
begin
close;
SQL.Clear;
SQL.Add(str5);
parameters.ParamByName('id').Value := trim(Combobox3.Text);
if (not prepared) then
prepared := true;
active := true;
if (recordcount = 0) then
begin
with DM.ADOQXPXS do
begin
if active then
active := false;
SQL.Clear;
SQL.Add(str2);
parameters.ParamByName('id').Value := trim(Combobox3.Text);
parameters.ParamByName('name').Value := DM.ADOQTEMP4.fieldbyname('prod_name').AsString;
parameters.ParamByName('price').Value := strtofloat(Edit3.Text);
parameters.ParamByName('number').Value := strtoint(Edit2.Text);
//parameters.ParamByName('time').Value := times;
parameters.paramByName('money').Value := strtofloat(Edit3.Text) * strtoint(Edit2.Text);
parameters.ParamByName('pay').Value := 0;
if (not prepared) then
prepared := true;
try
ExecSQL;
except
showmessage('操作失败,请再试!');
exit;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -