📄 unitsell.pas
字号:
unit UnitSell;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DB, ADODB, Grids, DBGrids, StdCtrls, Mask, DBCtrls,
jpeg;
type
TFrameSell = class(TFrame)
Image1: TImage;
Image2: TImage;
DBGrid1: TDBGrid;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Image3: TImage;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
GroupBox1: TGroupBox;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit1: TEdit;
Image4: TImage;
Image5: TImage;
Image6: TImage;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
Image7: TImage;
Label7: TLabel;
procedure Image2Click(Sender: TObject);
procedure DBEdit1KeyPress(Sender: TObject; var Key: Char);
procedure Image3Click(Sender: TObject);
procedure Image5Click(Sender: TObject);
procedure DBEdit2KeyPress(Sender: TObject; var Key: Char);
procedure Image6Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure Image7Click(Sender: TObject);
procedure Image4Click(Sender: TObject);
function IsAllNum(s:string):bool;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Label7Click(Sender: TObject);
procedure Show();
private
{ Private declarations }
LangSysmsgTitle :string;
LangNoid :string;
LangNostock1 :string;
LangNostock2 :string;
LangEmpty :string;
LangLack1 :string;
LangLack2 :string;
LangGivechange1 :string;
LangGivechange2 :string;
public
{ Public declarations }
end;
implementation
uses UnitLogin;
var
ADOQuery2: TADOQuery;
MoneyTotal: Real;
{$R *.dfm}
procedure TFrameSell.Image2Click(Sender: TObject);
begin
DBEdit1.Color := clWhite;
DBEdit2.Color := clWhite;
DBEdit1.Enabled := True;
DBEdit2.Enabled := True;
ADOQuery1.Active := True;
ADOQuery1.Append;
DBEdit1.SetFocus;
image2.Enabled := False;
image3.Visible := True;
image5.Visible := True;
image6.Visible := True;
end;
procedure TFrameSell.DBEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then DBEdit2.SetFocus;
end;
procedure TFrameSell.Image3Click(Sender: TObject);
var
i: Integer;
begin
{提交数据}
if (DBEdit1.Text<>'') and (DBEdit2.Text<>'') then
begin
ADOQuery2:= TADOQuery.Create(self);
ADOQuery2.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DataFile+'; Jet OLEDB:Database Password=None; Persist Security Info=False;';
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select * from t_prod where prod_id=' + DBEdit1.Text);
ADOQuery2.Open;
if ADOQuery2.Eof then
begin
messagebox(handle,pChar(LangNoid),pChar(LangSysmsgTitle),mb_iconwarning+mb_ok);
DBEdit1.SelectAll;
DBEdit1.SetFocus;
exit;
end;
if ADOQuery2.FieldByName('prod_stock').AsInteger < strtoint(DBEdit2.Text) then
begin
messagebox(handle,pchar(LangNostock1+ADOQuery2.FieldByName('prod_stock').AsString+LangNostock2),pChar(LangSysmsgTitle),mb_iconwarning+mb_ok);
DBEdit2.SelectAll;
DBEdit2.SetFocus;
exit;
end;
DBEdit3.Text := ADOQuery2.FieldByName('prod_name').AsString;
DBEdit4.Text := ADOQuery2.FieldByName('prod_price').AsString;
ADOQuery2.Free;
ADOQuery1.Post;
MoneyTotal := 0;
for i:=1 to ADOQuery1.RecordCount do
begin
MoneyTotal := MoneyTotal + ADOQuery1.FieldByName('sell_prod_Price').AsVariant * ADOQuery1.FieldByName('sell_number').asinteger;
ADOQuery1.Prior;
end;
Label4.Caption := FloatToStr(MoneyTotal);
ADOQuery1.Append;
DBEdit1.SetFocus;
Edit1.Color := clWhite;
Edit1.Enabled := True;
Image4.Enabled := True;
Label7.Enabled := True;
end
else
messagebox(handle,pChar(LangEmpty),pChar(LangSysmsgTitle),mb_iconwarning+mb_ok)
end;
procedure TFrameSell.Image7Click(Sender: TObject);
var
i: integer;
begin
ADOQuery1.Edit;
ADOQuery1.Post;
Image7.Visible := False;
MoneyTotal := 0;
for i:=1 to ADOQuery1.RecordCount do
begin
MoneyTotal := MoneyTotal + ADOQuery1.FieldByName('sell_prod_Price').AsVariant * ADOQuery1.FieldByName('sell_number').asinteger;
ADOQuery1.Prior;
end;
Label4.Caption := FloatToStr(MoneyTotal);
ADOQuery1.Append;
end;
procedure TFrameSell.Image5Click(Sender: TObject);
var
i: integer;
begin
ADOQuery1.Cancel;
for i:=1 to ADOQuery1.RecordCount do
ADOQuery1.delete;
DBEdit1.Color := $00FFF0DC;
DBEdit2.Color := $00FFF0DC;
DBEdit1.Enabled := False;
DBEdit2.Enabled := False;
ADOQuery1.Active := False;
image2.Enabled := True;
image3.Visible := False;
image5.Visible := False;
image6.Visible := False;
Image7.Visible := False;
Edit1.Text := '';
Label4.Caption := '0';
Edit1.Color := $00FFF0DC;
Image4.Enabled := False;
Label7.Enabled := False;
Edit1.Enabled := False;
end;
procedure TFrameSell.DBEdit2KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then Image3Click(self);
end;
procedure TFrameSell.Image6Click(Sender: TObject);
var
i: integer;
begin
ADOQuery1.Cancel;
if ADOQuery1.RecordCount>0 then ADOQuery1.Delete;
if ADOQuery1.RecordCount<=0 then
begin
Edit1.Text := '';
Label4.Caption := '0';
Edit1.Color := $00FFF0DC;
Image4.Enabled := False;
Label7.Enabled := False;
Edit1.Enabled := False;
end;
MoneyTotal := 0;
for i:=1 to ADOQuery1.RecordCount do
begin
MoneyTotal := MoneyTotal + ADOQuery1.FieldByName('sell_prod_Price').AsVariant * ADOQuery1.FieldByName('sell_number').asinteger;
ADOQuery1.Prior;
end;
Label4.Caption := FloatToStr(MoneyTotal);
ADOQuery1.Append;
Image7.Visible := False;
end;
procedure TFrameSell.DBGrid1CellClick(Column: TColumn);
begin
Image7.Visible := True;
end;
procedure TFrameSell.Image4Click(Sender: TObject);
var
i: integer;
begin
if (Edit1.Text<>'') and IsAllNum(Edit1.Text) then
begin
if (StrToFloat(Edit1.Text)<MoneyTotal) then
begin
messagebox(handle,pchar(LangLack1+FloatToStr(MoneyTotal)+LangLack2),pChar(LangSysmsgTitle),mb_iconwarning+mb_ok);
exit;
end;
ADOQuery1.Cancel;
{!!!!!! = 库存量相应减少代码 = !!!!!}
for i:=1 to ADOQuery1.RecordCount do
begin
ADOQuery2:= TADOQuery.Create(self);
ADOQuery2.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DataFile+'; Jet OLEDB:Database Password=None; Persist Security Info=False;';
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('update t_prod set prod_stock=prod_stock-'+ADOQuery1.FieldByName('sell_number').AsString+',prod_sale=prod_sale+'+ADOQuery1.FieldByName('sell_number').AsString+' where prod_id='+ADOQuery1.FieldByName('sell_prod_id').AsString);
ADOQuery2.ExecSQL;
end;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('update t_sell set sell_pay = 1');
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from t_sell where not sell_pay');
Messagebox(handle,pchar(LangGivechange1+FloatToStr(StrToFloat(Edit1.Text)-MoneyTotal)+LangGivechange2),pChar(LangSysmsgTitle),mb_iconwarning+mb_ok);
DBEdit1.Color := $00FFF0DC;
DBEdit2.Color := $00FFF0DC;
DBEdit1.Enabled := False;
DBEdit2.Enabled := False;
ADOQuery1.Active := False;
image2.Enabled := True;
image3.Visible := False;
image5.Visible := False;
image6.Visible := False;
Image7.Visible := False;
Edit1.Text := '';
Label4.Caption := '0';
Edit1.Color := $00FFF0DC;
Image4.Enabled := False;
Label7.Enabled := False;
Edit1.Enabled := False;
end
else
begin
messagebox(handle,pChar(LangEmpty),pChar(LangSysmsgTitle),mb_iconwarning+mb_ok);
Edit1.SetFocus;
end;
end;
function TFrameSell.IsAllNum(s:string):bool;
var
i:integer;
begin
for i := 1 To Length(s) do
if (s[i] < '0') or (s[i] > '9') then
begin
IsAllNum := False;
Exit;
end;
IsAllNum := True;
end;
procedure TFrameSell.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then Image4Click(self);
end;
procedure TFrameSell.Label7Click(Sender: TObject);
begin
Image4Click(self);
end;
procedure TFrameSell.Show();
begin
if (Lang='cn') then {中文界面}
begin
Image2.Picture.LoadFromFile(ExeRootPath+'/images/btn_sell.jpg');
Image5.Picture.LoadFromFile(ExeRootPath+'/images/btn_csell.jpg');
Image6.Picture.LoadFromFile(ExeRootPath+'/images/btn_delone.jpg');
Image7.Picture.LoadFromFile(ExeRootPath+'/images/btn_modi.jpg');
Image3.Picture.LoadFromFile(ExeRootPath+'/images/btn_asell.jpg');
DBGrid1.Columns[0].Title.Caption := '商品编号';
DBGrid1.Columns[1].Title.Caption := '商品名称';
DBGrid1.Columns[2].Title.Caption := '商品单价(元)';
DBGrid1.Columns[3].Title.Caption := '数量';
Label1.Caption := '商品编号:';
Label2.Caption := '购买数量:';
Label3.Caption := '销售金额总计 元。';
Label5.Caption := ' 收款 元,回车或点击图标。';
Label7.Caption := '完成销售';
GroupBox1.Caption := '销售统计';
LangSysmsgTitle := '系统提示';
LangNoid := '数据库中没有该商品编号!';
LangNostock1 := '该商品当前库存为 ';
LangNostock2 := ' ,不足所输销售数量!';
LangEmpty := '您的输入不正确(空值)!';
LangLack1 := '应该收金额为 ';
LangLack2 := ' 元,收款不足!';
LangGivechange1 := '找零 ';
LangGivechange2 := ' 元,谢谢惠顾!';
end
else {英文界面}
begin
Image2.Picture.LoadFromFile(ExeRootPath+'/images/btn_sell_en.jpg');
Image5.Picture.LoadFromFile(ExeRootPath+'/images/btn_csell_en.jpg');
Image6.Picture.LoadFromFile(ExeRootPath+'/images/btn_delone_en.jpg');
Image7.Picture.LoadFromFile(ExeRootPath+'/images/btn_modi_en.jpg');
Image3.Picture.LoadFromFile(ExeRootPath+'/images/btn_asell_en.jpg');
DBGrid1.Columns[0].Title.Caption := 'ID';
DBGrid1.Columns[1].Title.Caption := 'Name';
DBGrid1.Columns[2].Title.Caption := 'Price(YUAN)';
DBGrid1.Columns[3].Title.Caption := 'Number';
Label1.Caption := 'Stock:';
Label2.Caption := 'Number:';
Label3.Caption := 'TOTAL PRICE: YUAN';
Label5.Caption := 'Gathering YUAN,Press ENTER.';
Label7.Caption := ' FINISH';
GroupBox1.Caption := 'Arithmometer';
LangSysmsgTitle := 'System Message';
LangNoid := 'Wrong ID seeking in database.';
LangNostock1 := 'Number of store is ';
LangNostock2 := ' , not enough.';
LangEmpty := 'Can not be a empty value.';
LangLack1 := 'You should receive ';
LangLack2 := ' Yuan, not enough.';
LangGivechange1 := 'Give change ';
LangGivechange2 := ' Yuan, Thanks for putchase.';
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -