⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qtmain.pas

📁 日昌餐饮管理系统是用Delphi7+SQL写的管理系统
💻 PAS
📖 第 1 页 / 共 5 页
字号:
begin
     if edit7.Focused then edit7.Text:=edit7.Text+'0' else
     labelededit4.Text:=labelededit4.Text+'0';
end;

procedure TqtForm.SpeedButton1Click(Sender: TObject);
var i:integer;
begin
     if lsq.RecordCount<=0 then exit;
     if (lsqzsbz.AsBoolean) or (lsqzfbz.AsBoolean) or (lsqfkbz.AsBoolean)then exit;
     if lsqsl.Asfloat>1 then
     begin
       tclsq.Close;
       tclsq.Open;
       for i:=0 to tclsq.FieldCount -1 do
         if uppercase(tclsq.Fields[i].FieldName)<>'ID' then
         begin
            tclsq.Edit;
            tclsq.Fields[i].Value:=lsq.FieldByname(tclsq.Fields[i].FieldName).Value;
         end;
       lsq.Edit;
       lsqzke.AsCurrency:=round((lsqzke.AsFloat*(lsqsl.Asfloat -1)/lsqsl.Asfloat /100)*100)/100;
       lsqfwfe.AsCurrency:=round((lsqfwfe.AsFloat*(lsqsl.Asfloat -1)/lsqsl.Asfloat /100)*100)/100;
       lsqse.AsCurrency:=round((lsqse.AsFloat*(lsqsl.Asfloat -1)/lsqsl.Asfloat /100)*100)/100;
       lsqje.AsFloat:=round(lsqje.AsFloat/lsqsl.Asfloat * (lsqsl.Asfloat -1));
       lsqsl.Asfloat:=lsqsl.Asfloat -1;
       lsq.Post;
       lsq.Append;
       for i:=0 to tclsq.FieldCount -1 do
         if uppercase(tclsq.Fields[i].FieldName)<>'ID' then
            lsq.Fields[i].Value:=tclsq.FieldByname(tclsq.Fields[i].FieldName).Value;
       lsqzke.AsCurrency:=round((lsqzke.AsFloat/lsqsl.Asfloat /100)*100)/100;
       lsqfwfe.AsCurrency:=round((lsqfwfe.AsFloat/lsqsl.Asfloat /100)*100)/100;
       lsqse.AsCurrency:=round((lsqse.AsFloat/lsqsl.Asfloat /100)*100)/100;
       lsqsl.Asfloat:=1;
       lsqje.Value:=0;
       lsq.Post;
       tclsq.Close; 
       exit;
     end;
     lsq.Edit;
     edit1.Text:=floattostr(strtofloat(edit1.Text) - lsqje.asfloat);
     edit2.Text:=floattostr(strtofloat(edit2.Text) - lsqse.asfloat);
     lsqje.AsFloat:=0;
     lsqzsbz.AsBoolean:=true;
     lsq.Post;
end;

procedure TqtForm.SpeedButton2Click(Sender: TObject);
begin
     checkform:=Tcheckform.Create(Self);
     checkform.Caption:='员工签到处理';
     checkform.showmodal;
     checkform.Free;
end;

procedure TqtForm.SpeedButton3Click(Sender: TObject);
begin
     checkform:=Tcheckform.Create(Self);
     checkform.Caption:='员工签退处理';
     checkform.showmodal;
     checkform.Free;
end;

procedure TqtForm.SpeedButton4Click(Sender: TObject);
begin
     PostMessage(GetDesktopWindow,WM_SYSCOMMAND,SC_SCREENSAVE,0);
end;

procedure TqtForm.checkmax(Sender: TObject);
begin
     query5.SQL.Clear;
     if pass.yhlx='U' then  query5.SQL.Add('select max(djh) as maxdjh FROM new_djh new_djh ')
     else query5.SQL.Add('select max(djh) as maxdjh FROM dcdlx Dcdlx ');
     query6.Open;
     if query6bclx.AsString='D' then
        begin
         maxdjh:=strtoint(copy(formatdatetime('yyyy',date),3,2)+formatdatetime('mm',date)+formatdatetime('dd',date)+'0000');
        end
     else if query6bclx.AsString='M' then
            begin
              maxdjh:=strtoint(copy(formatdatetime('yyyy',date),3,2)+formatdatetime('mm',date)+'000000');
            end
     else
            begin
              maxdjh:=strtoint(copy(formatdatetime('yyyy',date),3,2)+'0000000');
            end;
     query5.Open;
     if maxdjh<query5.FieldByName('maxdjh').AsInteger then maxdjh:= query5.FieldByName('maxdjh').AsInteger;
     query6.Close;
   while true do
   begin
     maxdjh:=maxdjh+1;
     query5.Close;
     query5.SQL.Clear;
     query5.SQL.Add('select djh FROM new_djh new_djh where djh=:cs0');
     query5.Parameters[0].Value:=maxdjh;
     query5.Open;
     if query5.RecordCount<1 then begin
       query5.Append;
       query5.FieldByName('djh').AsInteger:=maxdjh;
       query5.Post;
       break;
     end;
   end;
   query5.Close;
end;

procedure TqtForm.SpinButton1DownClick(Sender: TObject);
begin
    if treeview1.Selected.Index<(treeview1.Items.Count -1)
    then treeview1.Items[treeview1.Selected.Index +1].Selected:=true;
    TreeView1Click(Sender);
end;

procedure TqtForm.SpinButton1UpClick(Sender: TObject);
begin
    if treeview1.Selected.Index>0
    then treeview1.Items[treeview1.Selected.Index -1].Selected:=true;
    TreeView1Click(sender);
end;

procedure TqtForm.SpeedButton5Click(Sender: TObject);
begin
     if not lsq.Eof then lsq.Next;
end;

procedure TqtForm.SpeedButton6Click(Sender: TObject);
begin
     if not lsq.Bof then lsq.Prior;
end;

procedure TqtForm.SpeedButton7Click(Sender: TObject);
begin
     cpyhform.ShowModal;
end;

procedure TqtForm.SpeedButton8Click(Sender: TObject);
var hh:Tprinter;
    i,j,k:integer;
begin
     if lsq.RecordCount<=0 then exit;
//端口打印
{     if getport.Active then getport.Close;
     getport.Parameters.ParamByName('cs1').Value:=lsqdjh.Value;
     getport.Open;
     while not getport.Eof do
     begin
       writ('COM'+getport.FieldValues['cdhm'],'');
       getport.Next;
     end;
     getport.Close;}
// 打印机打印
     if selprt.Active then selprt.Close;
     selprt.Parameters.ParamByName('cs1').Value:=lsqdjh.Value;
     selprt.Open;
     while not selprt.Eof do
     begin
      cfdy.Close;
      cfdy.Parameters.ParamByName('cs').Value:=lsqdjh.AsString;
      cfdy.Parameters.ParamByName('cs2').Value:=selprtdyjmc.AsString;
      cfdy.Open;
      hh:=Tprinter.Create;
      k:=-1;
      j:=hh.Printers.Count -1;
      for i:=0 to j do
       if pos(selprtdyjmc.AsString, hh.Printers.Strings[i])>0 then
       begin
         quickrep2.PrinterSettings.PrinterIndex:=i;
         quickrep2.Print; // .Preview;
         k:=i;
       end;

    if k=-1 then messagedlg('没有指定 '+selprtdyjmc.AsString +' 厨房打印机!',mtwarning,[mbok],0);
    cfdy.Close;
    selprt.Next;
   end;
end;

procedure TqtForm.Edit1Change(Sender: TObject);
begin
// disp('com1', edit1.text);
end;

function TqtForm.disp(port:string;disp_info:string):integer;
 var
   comport_display:string;
   hcom:Thandle;
   lpdcb:Tdcb;
   sendnumber:dword;
   display:string[40];
begin
  //客显驱动
  comport_display:=port;
  hcom:=createfile(pchar(comport_display), generic_write,0,Nil,open_always,
            file_attribute_normal,0);  //打开输出端口

  getcommstate(hcom,lpdcb);  //获取串行口当前缺省的设置
  lpdcb.baudrate:=9600;
  if lpdcb.ByteSize=7 then lpdcb.ByteSize:=8;
  setcommstate(hcom,lpdcb);  //设置串口参数
  display:=#27#81#65+'Total: ' +disp_info+#13;
  writefile(hcom,display,24,sendnumber,nil);  //显示合计
  closehandle(hcom);
  result:=0;
end;

function Tqtform.updatedcddy(port,djh:string):integer;
begin
   updcddy.Close;
   updcddy.SQL.Clear;
   if port='CC' then updcddy.SQL.Add('insert dcddy select djh, yhh, twbh, rq, mc,  gg,dj,sl,je,fkbz,zfbz,zsbz,cfdyjhm,ccjdyjhm, '+''''+port+''''+' as type,memo from dcd, prtset where dcd.djh='+djh+' and ((dcd.prn is null and dcd.zfbz=0) or (dcd.prn='+''''+'Y'+''''+' and dcd.zfbz=1)) and dcd.ccjdyjhm=prtset.bh and prtset.port not like '+''''+'%'+rjsmain.computer_name+'%'+'''')
   else if port='CF' then updcddy.SQL.Add('insert dcddy select djh, yhh, twbh, rq, mc,  gg,dj,sl,je,fkbz,zfbz,zsbz,cfdyjhm,ccjdyjhm, '+''''+port+''''+' as type,memo from dcd, prtset where dcd.djh='+djh+' and ((dcd.prn is null and dcd.zfbz=0) or (dcd.prn='+''''+'Y'+''''+' and dcd.zfbz=1)) and dcd.cfdyjhm=prtset.bh and prtset.port not like '+''''+'%'+rjsmain.computer_name+'%'+'''')
   else if port='SY' then updcddy.SQL.Add('insert dcddy select djh, yhh, twbh, rq, mc,  gg,dj,sl,je,fkbz,zfbz,zsbz,cfdyjhm,ccjdyjhm, '+''''+port+''''+' as type,memo from dcd, prtset where dcd.djh='+djh+' and ((dcd.prn is null and dcd.zfbz=0) or (dcd.prn='+''''+'Y'+''''+' and dcd.zfbz=1)) and prtset.port not like '+''''+'%'+rjsmain.computer_name+'%'+''''+' and prtset.type='+''''+'S'+'''');
   updcddy.ExecSQL;
   updcddy.Close;
   result:=0;
end;
function Tqtform.initprt(port:string;disp_info:string):integer;
 var
   comport_display:string;
   hcom:Thandle;
   lpdcb:Tdcb;
   sendnumber:dword;
   display:string[48];
   hxqlen,ii:integer;
begin
   //票打驱动
  if pos(rjsmain.computer_name,port)>0 then
  begin
    ii:=pos(rjsmain.computer_name,port);
    comport_display:=copy(port,1,ii-1)+'.'+copy(port,ii+length(rjsmain.computer_name),length(port));
  end
  else comport_display:=port;
  hxqlen:=0;
  while comport_display=comport_display do
  begin
   hcom:=createfile(pchar(comport_display), generic_write,0,Nil,OPEN_EXISTING,
            file_attribute_normal,0);
   if hcom<>4294967295 then break;
   hxqlen:=hxqlen+1;
   if hxqlen>1000 then
    begin
     messagedlg('打开 '+comport_display+'端口失败!'+#13+'请检查打印机及其线路!',mtwarning,[mbok],0);
     exit;
    end;
  end;
  getcommstate(hcom,lpdcb);
  lpdcb.baudrate:=9600;
  lpdcb.DCBlength:=48;
  lpdcb.Parity:=0;
  lpdcb.ByteSize:=8;
  lpdcb.StopBits:=1;
  lpdcb.XonLim:=2048;
  lpdcb.XoffLim:=512;
  lpdcb.XonChar:=#17;
  lpdcb.XoffChar:=#19;
  setcommstate(hcom,lpdcb);
  hxqlen:=length(rjsmain.dwmc);
  disp_info:=copy('           ',1,10 - round(hxqlen/2))+rjsmain.dwmc+'打印机测试';//'         罗杰斯餐饮连锁机构';
  display:=#27#97#1+disp_info+#27#64;
  hxqlen:=length(display);
  writefile(hcom,display,hxqlen,sendnumber,nil);
  selport.Close;
  closehandle(hcom);
//  rjsmain.first_prt:='false';
  result:=0;
end;

function Tqtform.writ(port:string;disp_info:string):integer;
 var
   comport_display:string;
   hcom:Thandle;
   lpdcb:Tdcb;
   sendnumber:dword;
   display:string[48];
   hxqlen,ii:integer;
   xxjj:real;
begin
   //票打驱动
  if pos(rjsmain.computer_name,port)>0 then
  begin
    ii:=pos(rjsmain.computer_name,port);
    comport_display:=copy(port,1,ii-1)+'.'+copy(port,ii+length(rjsmain.computer_name),length(port));
  end
  else comport_display:=port;
//  comport_display:=ExtractFilePath(Application.ExeName)+'writ.txt';
  hxqlen:=0;
  while comport_display=comport_display do
  begin
   hcom:=createfile(pchar(comport_display), generic_write,0,Nil,OPEN_EXISTING,
            file_attribute_normal,0);
   if hcom<>4294967295 then break;
   hxqlen:=hxqlen+1;
   if hxqlen>1000 then
    begin
     messagedlg('打开 '+comport_display+'端口失败!'+#13+'请检查打印机及其线路!',mtwarning,[mbok],0);
     exit;
    end;
  end;
  getcommstate(hcom,lpdcb);
  lpdcb.baudrate:=9600;
  lpdcb.DCBlength:=48;
  lpdcb.Parity:=0;
  lpdcb.ByteSize:=8;
  lpdcb.StopBits:=1;
  lpdcb.XonLim:=2048;
  lpdcb.XoffLim:=512;
  lpdcb.XonChar:=#17;
  lpdcb.XoffChar:=#19;
  setcommstate(hcom,lpdcb);
  if selport.Active then selport.Close;
  selport.SQL.Clear;
  if pprrtt='' then selport.SQL.Add('select * from dcd where (djh = :cs1) and ((dcd.prn is null and dcd.zfbz=0) or ((prn='+''''+'Y'+''''+') and (zfbz=1))) order by djh, bh')
  else begin
    selport.SQL.Add('select * from dcd where (djh = :cs1) and ('+pprrtt+'=:cs2) and ((dcd.prn is null and dcd.zfbz=0) or ((prn='+''''+'Y'+''''+') and (zfbz=1))) order by djh, bh');
    selport.Parameters.ParamByName('cs2').Value:=prtno;
  end;
  selport.Parameters.ParamByName('cs1').Value:=lsqdjh.Value;
  selport.Open;
if selport.RecordCount>0 then
begin
//  hxqlen:=length(rjsmain.dwmc);
//  disp_info:=copy('           ',1,10 - round(hxqlen/2))+rjsmain.dwmc;//'         罗杰斯餐饮连锁机构';
//  display:=#27#97#1+disp_info+#27#64;
//  hxqlen:=length(display);
//  writefile(hcom,display,hxqlen,sendnumber,nil);
//  disp_info:=datetimetostr(date+time)+' 单号:'+selportdjh.AsString+' ';
  if pprrtt='' then disp_info:='单号:'+selportdjh.AsString+'       '+datetimetostr(date+time)
  else disp_info:='单号:'+selportdjh.AsString+' (传菜)'+datetimetostr(date+time);
  display:=#27#97#1+disp_info+#27#64;
  hxqlen:=length(display);
  writefile(hcom,display,hxqlen,sendnumber,nil);
  disp_info:=' 餐台号:'+selporttwbh.AsString;
  display:=#27#97#1+disp_info+#27#64;
  hxqlen:=length(display);
  writefile(hcom,display,hxqlen,sendnumber,nil);
  disp_info:='-----------------------------------';
  display:=#27#97#1+disp_info+#27#64;
  hxqlen:=length(display);
  writefile(hcom,display,hxqlen,sendnumber,nil);
  disp_info:='序号   商 品 名 称   数量 单价 金额';
  display:=#27#97#1+disp_info+#27#64;
  hxqlen:=length(display);
  writefile(hcom,display,hxqlen,sendnumber,nil);
  ii:=1;
  xxjj:=0;
  while not selport.Eof do
     begin
//    以下为打印正文
         if ii<10 then disp_info:=' '+copy(inttostr(ii),1,1)+' '
            else disp_info:=copy(inttostr(ii),1,2)+' ';
         disp_info:=disp_info +copy(selportmc.AsString,1,18)+copy('                ',1,18-length(selportmc.AsString));
         disp_info:=disp_info+copy(' ',1,2-length(selportsl.AsString)) +selportsl.AsString;
         disp_info:=disp_info+copy('     ',1,5-length(selportdj.AsString)) +selportdj.AsString;
         disp_info:=disp_info+copy('     ',1,5-length(selportje.AsString))+selportje.AsString+'元';
         if selportzfbz.AsBoolean then disp_info:=disp_info+' 退';
         display:=#27#97#1+disp_info+#27#64;
         hxqlen:=length(display);
         writefile(hcom,display,hxqlen,sendnumber,nil);
         xxjj:=xxjj+selportje.AsFloat;
         ii:=ii+1;
         selport.Next;
  end;
// 打印页尾
  disp_info:='-----------------------------------';
  display:=#27#97#1+disp_info+#27#64;
  hxqlen:=length(display);
  writefile(hcom,display,hxqlen,sendnumber,nil);
  if pprrtt='' then
  begin
    disp_info:=' 收银: '+copy(selportyhh.AsString,1,6)+' ';
    disp_info:=disp_info+'          合计: '+ floattostr(xxjj)+'元';
    display:=#27#64+#27#97#1+disp_info

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -