📄 mainunt.pas
字号:
unit mainunt;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, mxOutlookBarPro, ToolWin, ComCtrls, ExtCtrls, ActnList, Grids,Math,
StdCtrls, Buttons, DB,shellapi, ImgList;
type
Tmain = class(TForm)
mxOutlookBarPro1: TmxOutlookBarPro;
StatusBar1: TStatusBar;
Image1: TImage;
Panel1: TPanel;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit12: TEdit;
Edit11: TEdit;
BitBtn14: TBitBtn;
BitBtn1: TBitBtn;
BitBtn4: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn15: TBitBtn;
BitBtn7: TBitBtn;
BitBtn5: TBitBtn;
BitBtn13: TBitBtn;
BitBtn16: TBitBtn;
BitBtn17: TBitBtn;
Edit9: TEdit;
Edit8: TEdit;
Label7: TLabel;
Label8: TLabel;
StringGrid1: TStringGrid;
tempGrid: TStringGrid;
Edit1: TEdit;
Edit2: TEdit;
Edit13: TEdit;
ActionList1: TActionList;
Action1: TAction;
Action2: TAction;
Action3: TAction;
Action4: TAction;
Action5: TAction;
Action6: TAction;
Action7: TAction;
Action8: TAction;
Action9: TAction;
Action10: TAction;
Action12: TAction;
Action13: TAction;
Timer1: TTimer;
BitBtn6: TBitBtn;
Label11: TLabel;
Label10: TLabel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
DataSource3: TDataSource;
DataSource6: TDataSource;
DataSource2: TDataSource;
DataSource5: TDataSource;
DataSource4: TDataSource;
DataSource1: TDataSource;
Label9: TLabel;
Timer2: TTimer;
ImageList1: TImageList;
BitBtn8: TBitBtn;
Action11: TAction;
procedure StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
procedure Action1Execute(Sender: TObject);
procedure Action2Execute(Sender: TObject);
procedure Action3Execute(Sender: TObject);
procedure Action4Execute(Sender: TObject);
procedure Action5Execute(Sender: TObject);
procedure Action6Execute(Sender: TObject);
procedure Action7Execute(Sender: TObject);
procedure Action8Execute(Sender: TObject);
procedure Action9Execute(Sender: TObject);
procedure Action10Execute(Sender: TObject);
procedure Action12Execute(Sender: TObject);
procedure Action13Execute(Sender: TObject);
procedure Panel1Resize(Sender: TObject);
procedure vat_ini;
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure mxOutlookBarPro1Headers0Buttons0Click(Sender: TObject);
procedure mxOutlookBarPro1Headers0Buttons1Click(Sender: TObject);
procedure mxOutlookBarPro1Headers0Buttons2Click(Sender: TObject);
procedure mxOutlookBarPro1Headers0Buttons4Click(Sender: TObject);
procedure mxOutlookBarPro1Headers2Buttons1Click(Sender: TObject);
procedure mxOutlookBarPro1Headers2Buttons0Click(Sender: TObject);
procedure mxOutlookBarPro1Headers3Buttons0Click(Sender: TObject);
procedure mxOutlookBarPro1Headers6Buttons0Click(Sender: TObject);
procedure mxOutlookBarPro1Headers6Buttons1Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
procedure Timer1Timer(Sender: TObject);
procedure mxOutlookBarPro1Headers3Buttons1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure mxOutlookBarPro1Headers4Buttons0Click(Sender: TObject);
procedure mxOutlookBarPro1Headers4Buttons1Click(Sender: TObject);
procedure mxOutlookBarPro1Headers4Buttons2Click(Sender: TObject);
procedure mxOutlookBarPro1Headers7Buttons0Click(Sender: TObject);
procedure mxOutlookBarPro1Headers5Buttons0Click(Sender: TObject);
procedure mxOutlookBarPro1Headers5Buttons1Click(Sender: TObject);
procedure mxOutlookBarPro1Headers9Buttons0Click(Sender: TObject);
procedure mxOutlookBarPro1Headers2Buttons2Click(Sender: TObject);
procedure mxOutlookBarPro1Headers4Buttons3Click(Sender: TObject);
procedure mxOutlookBarPro1Headers5Buttons2Click(Sender: TObject);
procedure mxOutlookBarPro1Headers5Buttons3Click(Sender: TObject);
procedure mxOutlookBarPro1Headers6Buttons2Click(Sender: TObject);
procedure mxOutlookBarPro1Headers6Buttons3Click(Sender: TObject);
procedure mxOutlookBarPro1Headers7Buttons1Click(Sender: TObject);
procedure mxOutlookBarPro1Headers7Buttons2Click(Sender: TObject);
procedure mxOutlookBarPro1Headers8Buttons0Click(Sender: TObject);
procedure mxOutlookBarPro1Headers8Buttons1Click(Sender: TObject);
procedure mxOutlookBarPro1Headers1Buttons1Click(Sender: TObject);
procedure mxOutlookBarPro1Headers6Buttons4Click(Sender: TObject);
procedure mxOutlookBarPro1Headers1Buttons0Click(Sender: TObject);
procedure mxOutlookBarPro1Headers3Buttons2Click(Sender: TObject);
procedure mxOutlookBarPro1Headers3Buttons3Click(Sender: TObject);
procedure mxOutlookBarPro1Headers5Buttons4Click(Sender: TObject);
procedure mxOutlookBarPro1Headers2Buttons3Click(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Edit1Enter(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
procedure Edit5Enter(Sender: TObject);
procedure Edit5Exit(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure mxOutlookBarPro1Headers6Buttons5Click(Sender: TObject);
procedure Action11Execute(Sender: TObject);
procedure mxOutlookBarPro1Headers7Buttons3Click(Sender: TObject);
procedure mxOutlookBarPro1Headers7Buttons4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
sellno:string;
end;
var
main: Tmain;
usrname,psmf:string;
sno:integer;
implementation
uses data, jswcunt, thmainunt, vipxzunt,maind,datam,printsetupunt, hyszunt,
pswunt, sysiniunt, xtszunt, thunt, hyunt, drmainunt, rlunt, dcunt,
mrxsfxunt, yjunt, login, hyqkcx, kcqkunt, qdsxunt, hyxfphunt,
jgwhunt, spxsphbunt, drcxunt, dccxunt, lyunt, sjbfunt, sjhfunt,
ckdyjlunt, cklyunt, hbunt, drwhunt, dcwhunt, thcxunt, thwhunt, changeunt,
pdunt, update;
{$R *.dfm}
//初始化数据
procedure Tmain.vat_ini;
var
i,j:integer;
begin
edit1.Text:='';
edit2.Text:='0';
// edit3.Text:='0';
edit4.Text:='';
edit5.Text:='';
edit6.Text:='0';
edit7.Text:='0';
edit13.Text:='0';
sno:=1;
with stringgrid1 do
begin
for i:=1 to RowCount do
for j:=0 to stringgrid1.ColCount-1 do
cells[j,i]:='';
end;
edit1.SetFocus;
end;
procedure Tmain.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
case Panel.ID of
0: begin
StatusBar.Canvas.Brush.Color :=$00FFE1C4;
StatusBar.Canvas.Font.Color :=clred;
StatusBar.Canvas.Font.Size :=12;
//statusbar.Canvas.Draw(0,0,application.Icon);
end;
1: StatusBar.Canvas.Brush.Color :=$00FFE1C4;
2: StatusBar.Canvas.Brush.Color :=$00FFE1C4;
end;
StatusBar1.Canvas.TextRect(Rect, Rect.Left, Rect.Top, Panel.Text);
end;
procedure Tmain.Action1Execute(Sender: TObject);
var
k,l:integer;
total_g:string;
begin
sellno:=create_sell_no('sellm');
timer1.Enabled:=false;
if edit5.Text ='' then
begin
messagedlg('对不起!,你没有输入会员卡号,不是会员消费!',mtinformation,[mbOk],0);
exit;
end;
if stringgrid1.Cells[1,1]='' then exit;
if (strtofloatdef(edit7.Text,0)<0) or (strtofloatdef(edit7.Text,0)>1) then exit;
for l:=sno-1 downto 1 do
if (stringgrid1.Cells[5,l]='0') or (stringgrid1.Cells[5,l]='')then exit;
try
Dataman.ADOCon.BeginTrans;
//主表的插入
with Dataman.xsmQuery do
begin
open;
append;
fieldbyname('销售编号').asstring :=sellno; //编号的计算
fieldbyname('VIP卡号').asstring :=trim(edit5.Text);
fieldbyname('销售日期').AsDateTime :=date();
fieldbyname('销售时间').AsDateTime :=time();
fieldbyname('员工编号').asstring :=trim(edit8.text);
fieldbyname('商品数量').asstring :=trim(edit13.Text);
fieldbyname('商品金额').AsFloat :=round(strtofloatdef(trim(edit2.Text),0));
post;
end;
total_g:=floattostr(strtofloatdef(trim(edit2.Text),0)*strtofloatdef(edit7.Text,0));
// 明细表输入
with Dataman.xsQuery do
begin
open;
for k:=1 to 13 do
begin
if trim(stringgrid1.Cells[1,k])='' then break;
Append;
FieldByName('销售编号').AsString :=sellno;
fieldbyname('货物条形码').AsString :=trim(stringgrid1.Cells[1,k]);
fieldbyname('销售价格').AsString :=trim(stringgrid1.Cells[3,k]);
fieldbyname('数量').AsString :=trim(stringgrid1.Cells[2,k]);
fieldbyname('折扣').AsString :=trim(stringgrid1.Cells[4,k]);
fieldbyname('总额').AsString :=trim(stringgrid1.Cells[5,k]);
post;
end;
end;
//插入会员消费状态表
with Dataman.xfztQuery do
begin
close;
sql.Clear;
sql.Add('select * from consume where VIP卡号='''+edit5.text+'''');
prepared;
open;
end;
with Dataman.xfqkQuery do
begin
if Dataman.xfztQuery.recordCount<>0 then
begin
close;
sql.Clear;
sql.Add('update consume set 会员消费总金额 =:xf,最近交易日=:jdate,最近交易额=:jjg where VIP卡号='''+edit5.text+'''');
parameters.ParamByName('xf').Value:=strtofloatdef(edit6.text,0)+strtofloatdef(edit2.text,0);
parameters.ParamByName('jdate').Value:=date();
parameters.ParamByName('jjg').Value:=strtofloatdef(edit2.text,0);
ExecSQL;
end
else
begin
close;
sql.Clear;
sql.Add('insert into consume values(:vno,:vxf,:jdate,:jjg)');
parameters.ParamByName('vno').Value :=edit5.Text;
parameters.ParamByName('vxf').Value :=strtofloatdef(edit2.Text,0);
parameters.ParamByName('jdate').Value:=date();
parameters.ParamByName('jjg').Value :=strtofloatdef(edit2.text,0);
execsql;
end;
end;
// 库存数据修改
with Dataman.hkcQuery do
begin
close;
sql.Clear;
for k:=1 to 13 do
begin
if trim(stringgrid1.Cells[1,k])='' then break;
sql.Add('update kc set 库存数量=库存数量-:gnunb where 货物条形码 =:gno');
parameters.ParamByName('gnunb').Value:=trim(stringgrid1.Cells[2,k]);
parameters.ParamByName('gno').Value:=trim(stringgrid1.Cells[1,k]);
execsql;
end;
end;
Dataman.xsmQuery.UpdateBatch();
Dataman.xsQuery.UpdateBatch();
Dataman.xfztQuery.UpdateBatch();
Dataman.ADOCon.CommitTrans;
except
begin
Dataman.ADOCon.RollbackTrans;
showmessage('交易没有成功!');
exit;
timer1.Enabled:=true;
end;
end;
Dataman.xsmquery.close;
Dataman.xsquery.close;
dataman.hkcQuery.Close;
//结帐界面的显示
IF jswcfrm=nil THEN Application.CreateForm(Tjswcfrm,jswcfrm);
jswcfrm.Label2.Caption :=floattostr(round(strtofloatdef(trim(edit2.Text),0)));
jswcfrm.showmodal;
timer1.Enabled:=true;
end;
procedure Tmain.Action2Execute(Sender: TObject);
begin
if trim(stringgrid1.Cells[1,1])='' then exit;
if trim(stringgrid1.Cells[2,stringgrid1.row])='' then
begin
stringgrid1.Row:=1; exit;
end;
stringgrid1.Cells[2,sno-1] :=edit1.Text;
edit1.Text:='';
edit1.SetFocus;
end;
procedure Tmain.Action3Execute(Sender: TObject);
begin
if trim(stringgrid1.Cells[1,1])='' then exit;
if trim(stringgrid1.Cells[3,stringgrid1.row])='' then
begin
stringgrid1.Row:=1; exit;
end;
stringgrid1.Cells[3,sno-1] :=edit1.Text;
edit1.Text:='';
edit1.SetFocus;
end;
procedure Tmain.Action4Execute(Sender: TObject);
begin
IF thmainfrm=nil THEN Application.CreateForm(Tthmainfrm,thmainfrm);
thmainfrm.showmodal;
end;
procedure Tmain.Action5Execute(Sender: TObject);
begin
IF vipxzfrm=nil THEN Application.CreateForm(Tvipxzfrm,vipxzfrm);
vipxzfrm.showmodal;
end;
procedure Tmain.Action6Execute(Sender: TObject);
begin
vat_ini;
end;
procedure Tmain.Action7Execute(Sender: TObject);
begin
if trim(stringgrid1.Cells[1,1])='' then exit;
if trim(stringgrid1.Cells[4,stringgrid1.row])='' then
begin
stringgrid1.Row:=1; exit;
end;
stringgrid1.Cells[4,sno-1] :=edit1.Text;
edit1.Text:='';
edit1.SetFocus;
end;
procedure Tmain.Action8Execute(Sender: TObject);
var
k,m:integer;
begin
sellno:=create_sell_no('sellm');
timer1.Enabled:=false;
if trim(edit5.Text)<>'' then
begin
messagedlg('对不起!你已经输入会员卡号,是会员消费!',mtinformation,[mbOK],0);
exit;
end;
if edit12.Text ='' then exit;
if stringgrid1.Cells[1,1]='' then exit;
if (strtofloatdef(edit11.Text,0)<0) or (strtofloatdef(edit11.Text,0)>1) then exit;
for m:=sno-1 downto 1 do
if (stringgrid1.Cells[5,m]='0') or (stringgrid1.Cells[5,m]='')then exit;
try
Dataman.ADOCon.BeginTrans;
//主表数据插入
with Dataman.xsmQuery do
begin
open;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -