📄 mainunt.pas
字号:
append;
fieldbyname('销售编号').asstring :=sellno; //编号的计算
fieldbyname('销售日期').AsDateTime :=date();
fieldbyname('销售时间').AsDateTime :=time();
fieldbyname('员工编号').asstring :=trim(edit8.text);
fieldbyname('商品数量').asstring :=trim(edit13.Text);
if strtofloatdef(trim(edit2.Text),0)<strtofloat(trim(edit12.Text)) then
fieldbyname('商品金额').AsFloat :=round(strtofloatdef(trim(edit2.Text),0))
else
fieldbyname('商品金额').AsFloat :=round((strtofloatdef(trim(edit2.Text),0)-strtofloatdef(edit12.Text,0))*strtofloatdef(edit11.Text,0)+strtofloatdef(edit12.Text,0));
post;
end;
//从表数据插入
with Dataman.xsQuery do
begin
open;
for k:=1 to 12 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.kcQuery do
begin
close;
sql.Clear;
for k:=1 to 12 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.ADOCon.CommitTrans;
except
begin
Dataman.ADOCon.RollbackTrans;
showmessage('交易没有成功!');
exit;
end;
end;
Dataman.xsmquery.close;
Dataman.xsquery.close;
dataman.kcQuery.Close;
//结算界面显示
IF jswcfrm=nil THEN Application.CreateForm(Tjswcfrm,jswcfrm);
if strtofloatdef(trim(edit2.Text),0) < strtofloat(trim(edit12.Text)) then
jswcfrm.Label2.Caption :=trim(edit2.Text)
else
jswcfrm.Label2.Caption :=floattostr(round((strtofloatdef(trim(edit2.Text),0)-strtofloatdef(edit12.Text,0))*strtofloatdef(edit11.Text,0)+strtofloatdef(edit12.Text,0)));
jswcfrm.showmodal;
timer1.Enabled:=true;
end;
procedure Tmain.Action9Execute(Sender: TObject);
var
i:integer;
begin
if stringgrid1.Cells[1,1]='' then exit;
if tempgrid.Cells[1,1]='' then
begin
if edit4.Text<>'' then
begin
tempgrid.Cells[1,0]:=edit4.Text;
tempgrid.Cells[2,0]:=edit5.Text;
tempgrid.Cells[3,0]:=edit6.Text;
tempgrid.Cells[4,0]:=edit7.Text;
end;
//if edit3.Text<>'' then
// tempgrid.cells[5,0]:=edit3.text;
tempgrid.Tag:=sno;
for i:=1 to 12 do
begin
if trim(stringgrid1.Cells[1,i])='' then break;
tempgrid.rows[i].text:=stringgrid1.Rows[i].Text;
stringgrid1.Rows[i].clear;
end;
vat_ini;
end;
bitbtn15.Enabled :=false;
bitbtn5.Enabled :=true;
edit1.SetFocus;
end;
procedure Tmain.Action10Execute(Sender: TObject);
var
i,target,del_rec :integer;
begin
if edit1.Text='' then exit;
if sno<1 then
begin
messagedlg('对不起!已经没有数据可删的了!',mtinformation,[mbOk],0);
exit;
end;
del_rec :=strtointdef(edit1.Text,-1);
target:=stringgrid1.Row;
if (strtointdef(edit1.Text,-1)>=0) then target:=del_rec;
if (target<=0) or (trim(stringgrid1.Cells[1,1])='') then
begin
edit1.SetFocus;
exit;
end;
stringgrid1.Rows[del_rec].Clear;
dec(sno);
for i:=del_rec to 12 do
begin
if trim(stringgrid1.Cells[1,i+1])='' then break;
stringgrid1.Rows[i].Text:=stringgrid1.Rows[i+1].Text;
stringgrid1.Rows[i+1].Text:='';
end;
stringgrid1.Row:=sno+1;
edit1.Text:='';
edit1.SetFocus;
end;
procedure Tmain.Action12Execute(Sender: TObject);
var
i:integer;
begin
if stringgrid1.Cells[1,1]='' then
begin
if edit4.Text='' then
begin
edit4.Text :=trim(tempgrid.Cells[1,0]);
edit5.Text :=trim(tempgrid.Cells[2,0]);
edit6.Text :=trim(tempgrid.Cells[3,0]);
edit7.Text :=trim(tempgrid.Cells[4,0]);
end;
{if tempgrid.cells[5,0]<>'' then
edit3.Text:=trim(tempgrid.Cells[5,0])
else
edit3.Text:='0'; }
for i:=1 to 12 do
begin
if trim(tempgrid.Cells[1,i])='' then break;
stringgrid1.rows[i].text:=tempgrid.Rows[i].Text;
tempgrid.Rows[i].clear;
end;
tempgrid.rows[0].clear;
end;
sno:=tempgrid.Tag;
tempgrid.tag:=0;
bitbtn15.Enabled :=true;
bitbtn5.Enabled :=false;
edit1.SetFocus;
end;
procedure Tmain.Action13Execute(Sender: TObject);
begin
edit5.SetFocus;
end;
procedure Tmain.Panel1Resize(Sender: TObject);
begin
edit9.Text:=datetostr(date());
stringgrid1.Cells[1,0]:='货物条形码';
stringgrid1.Cells[2,0]:='数量';
stringgrid1.Cells[3,0]:='价格';
stringgrid1.Cells[4,0]:='折扣';
stringgrid1.Cells[5,0]:='总额';
bitbtn5.Enabled:=false;
sno:=1;
edit1.Text:='';
edit1.SelectAll;
edit1.SetFocus;
edit12.text:=ini_load_dzjejs('销售参数','0');
edit11.text:=ini_load_dzbl('销售参数','0');
edit8.Text :=usrname;
end;
procedure Tmain.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
s:string;
r:TRect;
begin
with StringGrid1 do
begin
Canvas.FillRect(Rect);
if ACol = 5 then
begin
Canvas.Font.Color := clred;
canvas.Font.Style:=[fsBold];
end;
s:=Cells[ACol,ARow];
r:=Rect;
DrawText(Canvas.Handle,PChar(s),Length(s),r,DT_CENTER or DT_SINGLELINE or DT_VCENTER);
end;
end;
procedure Tmain.mxOutlookBarPro1Headers0Buttons0Click(Sender: TObject);
begin
psmf:='xpsz';
if not premission(usrname,psmf) then
showmessage('你没有此权限!')
else
begin
IF printsetupfrm=nil THEN Application.CreateForm(Tprintsetupfrm,printsetupfrm);
printsetupfrm.showmodal;
end;
end;
procedure Tmain.mxOutlookBarPro1Headers0Buttons1Click(Sender: TObject);
begin
psmf:='qxsz';
if not premission(usrname,psmf) then
showmessage('你没有此权限!')
else
begin
IF hyszfrm=nil THEN Application.CreateForm(Thyszfrm,hyszfrm);
hyszfrm.showmodal;
end;
end;
procedure Tmain.mxOutlookBarPro1Headers0Buttons2Click(Sender: TObject);
begin
psmf:='dyzlwh';
if not premission(usrname,psmf) then
showmessage('你没有此权限!')
else
begin
IF pswfrm=nil THEN Application.CreateForm(Tpswfrm,pswfrm);
pswfrm.showmodal;
end;
end;
procedure Tmain.mxOutlookBarPro1Headers0Buttons4Click(Sender: TObject);
begin
psmf:='xscssz';
if not premission(usrname,psmf) then
showmessage('你没有此权限!')
else
begin
IF xtszfrm=nil THEN Application.CreateForm(Txtszfrm,xtszfrm);
xtszfrm.showmodal;
end;
end;
procedure Tmain.mxOutlookBarPro1Headers2Buttons1Click(Sender: TObject);
begin
psmf:='thyywh';
if not premission(usrname,psmf) then
showmessage('你没有此权限!')
else
begin
IF thfrm=nil THEN Application.CreateForm(Tthfrm,thfrm);
thfrm.showmodal;
end;
end;
procedure Tmain.mxOutlookBarPro1Headers2Buttons0Click(Sender: TObject);
begin
psmf:='vipzlwh';
if not premission(usrname,psmf) then
showmessage('你没有此权限!')
else
begin
IF hyfrm=nil THEN Application.CreateForm(Thyfrm,hyfrm);
hyfrm.showmodal;
end;
end;
procedure Tmain.mxOutlookBarPro1Headers3Buttons0Click(Sender: TObject);
begin
psmf:='bddr';
if not premission(usrname,psmf) then
showmessage('你没有此权限!')
else
begin
IF drmainfrm=nil THEN Application.CreateForm(Tdrmainfrm,drmainfrm);
drmainfrm.showmodal;
end;
end;
procedure Tmain.mxOutlookBarPro1Headers6Buttons0Click(Sender: TObject);
begin
WinExec('calc.exe',sw_normal);
end;
procedure Tmain.mxOutlookBarPro1Headers6Buttons1Click(Sender: TObject);
begin
IF rlfrm=nil THEN Application.CreateForm(Trlfrm,rlfrm);
rlfrm.showmodal;
end;
procedure Tmain.Edit1KeyPress(Sender: TObject; var Key: Char);
var
i:integer;
begin
if not(key in ['0'..'9',#8,#39,#13] ) then
begin
key:=#0;
// MessageBeep(-1);
end;
if key=#13 then
begin
if (trim(edit1.Text)='') then exit;
//第一条记录时的操作
if stringgrid1.Cells[1,1]='' then
begin
with dataman.jbQuery do
begin
close;
sql.Clear;
sql.Add('select DISTINCT 单价 from kc where 货物条形码 =:gno');
parameters.ParamByName('gno').Value :=trim(edit1.Text);
prepared;
open;
stringgrid1.Cells[2,sno] :='1';
if fields.Fields[0].Value=null then
stringgrid1.Cells[3,sno] :='0'
else
stringgrid1.Cells[3,sno] :=dataman.jbQuery.Fields.Fields[0].Value;
if edit5.Text<>'' then
stringgrid1.Cells[4,sno]:=edit7.Text
else
stringgrid1.Cells[4,sno] :='1';
end;
stringgrid1.Cells[1,sno] :=edit1.Text;
sno:=sno+1;
edit1.Text:='';
end
//不是第一条时操作
else
begin
for i:=12 downto 1 do
begin
// if stringgrid1.Cells[1,i]='' then break;
if (trim(edit1.text)=trim(stringgrid1.Cells[1,i])) then
begin
stringgrid1.Cells[2,i]:=inttostr(strtoint(stringgrid1.Cells[2,i])+1);
edit1.Text:='';
break;
exit;
end;
end;
for i:=12 downto 1 do
begin
if (trim(edit1.text)<>trim(stringgrid1.Cells[1,i])) then
begin
stringgrid1.Cells[1,sno] :=trim(edit1.Text);
with dataman.jbQuery do
begin
close;
sql.Clear;
sql.Add('select 单价 from kc where 货物条形码 =:gno');
parameters.ParamByName('gno').Value :=trim(edit1.Text);
prepared;
open;
stringgrid1.Cells[2,sno] :='1';
if fields.Fields[0].Value=null then
stringgrid1.Cells[3,sno] :='0'
else
stringgrid1.Cells[3,sno] :=dataman.jbQuery.Fields.Fields[0].Value;
if edit5.Text<>'' then
stringgrid1.Cells[4,sno]:=edit7.Text
else
stringgrid1.Cells[4,sno] :='1';
end;
sno:=sno+1;
edit1.Text:='';
break;
exit;
end;
break;
end;
end;
end;
end;
procedure Tmain.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
if stringgrid1.Cells[1,1]<>'' then
begin
messagedlg('对不起!请先取消交易,再刷会员卡',mtinformation,[mbOK],0);
exit;
end;
with dataman.vipQuery do
begin
close;
sql.Clear;
sql.Add('select menber.会员姓名,menber.打折比例 from menber where menber.VIP卡号 =:kh');
parameters.ParamByName('kh').Value:=trim(edit5.Text);
prepared;
open;
end;
if dataman.vipQuery.IsEmpty then
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -