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

📄 qtmain.pas

📁 日昌餐饮管理系统是用Delphi7+SQL写的管理系统
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    Query3lbbm: TStringField;
    Query3zxh: TIntegerField;
    Query3lbmc: TStringField;
    Query3fwfbl: TIntegerField;
    Query3fwf: TIntegerField;
    Query3zkbl: TIntegerField;
    Query3shuilv: TIntegerField;
    procedure SpeedButtonbClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure SpeedButtonaClick(Sender: TObject);
    procedure SpeedButtondClick(Sender: TObject);
    procedure SpeedButtoniClick(Sender: TObject);
    procedure SpeedButtoncClick(Sender: TObject);
    procedure SpeedButtonfClick(Sender: TObject);
    procedure SpeedButtongClick(Sender: TObject);
    procedure SpeedButtonhClick(Sender: TObject);
    procedure TreeView1Click(Sender: TObject);
    procedure lsQFilterRecord(DataSet: TDataSet; var Accept: Boolean);
    procedure SpeedButtonjClick(Sender: TObject);
    procedure TimerxTimer(Sender: TObject);
    procedure SpeedButtoneClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure SZCClick(Sender: TObject);
    procedure SZ9Click(Sender: TObject);
    procedure SZ8Click(Sender: TObject);
    procedure SZ7Click(Sender: TObject);
    procedure sz6Click(Sender: TObject);
    procedure SZ5Click(Sender: TObject);
    procedure SZ4Click(Sender: TObject);
    procedure SZ3Click(Sender: TObject);
    procedure SZ2Click(Sender: TObject);
    procedure SZ1Click(Sender: TObject);
    procedure SZ0Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure checkmax(Sender: TObject);
    procedure SpinButton1DownClick(Sender: TObject);
    procedure SpinButton1UpClick(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure SpeedButton8Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    function disp(port,disp_info:string):integer;
    function updatedcddy(port,djh:string):integer;
    function writ(port,disp_info:string):integer;
    function initprt(port,disp_info:string):integer;
    function truc(port,disp_info:string):integer;
    function opbox(port,disp_info:string):integer;
    function writcf(port,disp_info:string):integer;
    procedure lbttclick(Sender: TObject);
    procedure SpeedButton9Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure SpeedButton10Click(Sender: TObject);
    procedure lsQAfterPost(DataSet: TDataSet);
    procedure Edit7Change(Sender: TObject);
  private
    lbtt:array[1..50] of Tbitbtn;
    bbtt:array[1..50,1..100] of Tbitbtn;
    maxdjh,rrow,ccol:integer;
    cdbh: array[1..50,1..100] of string;
    cdlb: array[1..50,1..100] of string;
    treev :TtreeNode;
    vvv,hxq:string;
    startdate:Tdatetime;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  qtForm: TqtForm;
  jzbz,djhh,twbh,szdd,pprrtt,prtno:string;
implementation


uses fkfs, tcyyxz, jgmsxz, tcxz, fdxz, kehugz, gzqktj,pass, xzfs,
  checkinout, cpyhUnit,rjsmain, qtkdsz, cookmode, jcrsU;

{$R *.dfm}

//function disp(port,disp_info:string):integer; stdcall; external 'cd5111.dll'

procedure TqtForm.SpeedButtonbClick(Sender: TObject);
var ii,jj,kk:integer;
    xxjj,qqtt:real;
    hhyy:string;
    hh:Tprinter;
begin
     if (lsq.RecordCount>0) and (edit1.Text<>'0') then
     begin
      fkfsform.edit1.text:=floattostr(round(strtofloat(edit1.text)*100)/100);
      if fkfsForm.showmodal=mrok then
      begin
//
      hh:=Tprinter.Create;
      jj:=hh.Printers.Count -1;
      kk:=-1;
      for ii:=0 to jj do
      begin
       if pos('收银', hh.Printers.Strings[ii])>0 then
       begin
        quickrep1.PrinterSettings.PrinterIndex:=ii;
        quickrep1.Preview;
        kk:=ii;
       end;
      end;
    if kk=-1 then
    begin
       prtsetq.Close;
       prtsetq.SQL.Clear;
       prtsetq.SQL.Add('select * from prtset where type='+''''+'S'+''''+' and port like '+''''+'%'+rjsmain.computer_name+'%'+'''');
       prtsetq.Open;
       if prtsetq.RecordCount>0 then
       begin
//           if rjsmain.first_prt='true' then initprt(prtsetq.fieldbyname('port').AsString,'');
           pprrtt:='';
           writ(prtsetq.fieldbyname('port').AsString,'');
           kk:=1;
       end;
       prtsetq.Close;
    end;
    if kk=-1 then
    begin
       prtsetq.Close;
       prtsetq.SQL.Clear;
       prtsetq.SQL.Add('select * from prtset where type='+''''+'S'+'''');
       prtsetq.Open;
       if prtsetq.RecordCount>0 then
           if messagedlg('由于系统没有设置本地收银打印机'+#13+'您只能在'+prtsetq.fieldbyname('name').AsString+'('+prtsetq.fieldbyname('port').AsString+')上打印!'+#13+'可以吗?!',mtwarning,[mbyes,mbno],0)=mryes then
            updatedcddy('SY',lsqdjh.AsString)
           else messagedlg('没有指定收银打印机!',mtwarning,[mbok],0)
       else messagedlg('没有指定收银打印机!',mtwarning,[mbok],0);
       prtsetq.Close;
    end;
        lsq.First;
        while not lsq.Eof do
        begin
         if (lsqzfbz.AsBoolean=false) and (lsqfkbz.AsBoolean=false) then
         begin
          lsq.Edit;
          lsqfkbz.AsBoolean:=true;
          lsq.Post;
         end;
          lsq.Next;
        end;
        jzbz:='jz';
        fkwj.Open;
        hhyy:='';
        xxjj:=0;
        qqtt:=0;
        for ii:=1 to fkfsform.StringGrid1.RowCount -1 do
        if fkfsform.StringGrid1.Cells[1,ii]<>'' then
        begin
          if fkfsform.StringGrid1.Cells[0,ii]='现金' then xxjj:=xxjj+strtofloat(fkfsForm.StringGrid1.Cells[1,ii])
          else qqtt:=qqtt+strtofloat(fkfsForm.StringGrid1.Cells[1,ii])
        end;
        if (xxjj>0) and (qqtt+xxjj>=strtofloat(edit1.Text)) then xxjj:=round((strtofloat(edit1.Text) - qqtt)*100)/100;
        for ii:=1 to fkfsform.StringGrid1.RowCount -1 do
        if fkfsform.StringGrid1.Cells[1,ii]<>'' then
        begin
         fkwj.Append;
         fkwjszdd.AsString:=szdd;
         fkwjyhh.AsString:=labelededit2.Text;
         fkwjdjh.AsInteger:=lsqdjh.AsInteger;
         fkwjrq.AsDateTime:=date+time;
         fkwjfkfsbm.AsString:=fkfs.fkfsbm[ii];
         fkwjfkfsmc.AsString:=fkfsform.StringGrid1.Cells[0,ii];
         if fkfsform.StringGrid1.Cells[0,ii]='现金' then fkwjfkje.AsFloat:=xxjj
         else fkwjfkje.AsFloat:=strtofloat(fkfsForm.StringGrid1.Cells[1,ii]);
         fkwjhykbh.AsString:=fkfsform.StringGrid1.Cells[2,ii];
         fkwj.Post;
         if fkfsform.StringGrid1.Cells[2,ii]<>'' then hhyy:=fkfsform.StringGrid1.Cells[2,ii];
         if (fkfsform.StringGrid1.Cells[2,ii]<>'') and (pass.yhlx='U') then
         begin
           fkfsform.query3.Close;
           fkfsform.query3.ParamByName('cs').AsString:=fkfsform.StringGrid1.Cells[2,ii] ;
           fkfsform.query3.Open;
           fkfsform.query3.Edit;
           fkfsform.Query3ye.AsFloat:=fkfsform.Query3ye.AsFloat - strtofloat(fkfsform.StringGrid1.Cells[1,ii]);
           fkfsform.Query3zjcs.AsInteger:=fkfsform.Query3zjcs.AsInteger + 1;
           fkfsform.Query3zjxfe.AsFloat:=fkfsform.Query3zjxfe.AsFloat + strtofloat(fkfsform.StringGrid1.Cells[1,ii]);
           fkfsform.query3.Post;
           fkfsform.Query3.ApplyUpdates;
           fkfsform.Query3.Close;
         end;
        end;
         if (hhyy<>'') and (round(strtofloat(edit1.Text)/50)>0) then
         begin
           if (copy(hhyy,1,2)='80') or (copy(hhyy,1,2)='78') then jj:=trunc(strtofloat(edit1.Text)/50)*10
           else jj:=trunc(strtofloat(edit1.Text)/50)*5;
           showmessage('请返还该会员优惠券,面值 '+inttostr(jj)+' 元!');
         end;
        fkwj.Edit;
        fkwjyhqje.AsFloat:=jj;
        fkwj.Post;
        fkwj.Close;
//
     jcrsform.Edit1.Text:=labelededit7.Text;
     if labelededit7.Text='' then jcrsform.Edit2.Text:='0'
     else jcrsform.Edit2.Text:=labelededit7.Text;
     jcrsform.ShowModal;
     query5.SQL.Clear;
     if pass.yhlx='U' then  query5.SQL.Add('update new_djh set mlje='+fkfsform.Edit5.Text+', xfrs='+jcrsform.Edit2.Text+' where djh=:cs1')
     else query5.SQL.Add('update new_djhlx set mlje='+fkfsform.Edit5.Text+', xfrs='+jcrsform.Edit2.Text+' where djh=:cs1');
     query5.Parameters.ParamByName('cs1').Value:=lsqdjh.Value;
     query5.ExecSQL;
     query5.Close;
//
        edit1.Text:='0';
        edit2.Text:='0';
      end;
     end;
end;

procedure TqtForm.FormActivate(Sender: TObject);
var i,j,k:integer;
begin
     if vvv='vvv' then exit;
//     i:=0;
     for i:=1 to 50 do
     begin
      lbtt[i].Caption:='';
      lbtt[i].Glyph:=nil;
      lbtt[i].Visible:=false;
      for j:=1 to 100 do
      begin
       bbtt[i,j].Caption:='';
       bbtt[i,j].Glyph:=nil;
      end;
     end;
     query3.Open;
     while not query3.Eof do
     begin
       lbtt[query3zxh.AsInteger].Visible:=true;
       lbtt[query3zxh.AsInteger].Caption:=query3.FieldByname('lbmc').AsString;
       lbtt[query3zxh.AsInteger].BringToFront;
//       i:=i+1;
       query3.Next;
      end;
     query3.close;
     query4.Open;
     query4.First;
     while not query4.Eof do
     begin
        bbtt[query4zxh.AsInteger,query4cxh.AsInteger].Caption:=query4mc.AsString;
        bbtt[query4zxh.AsInteger,query4cxh.AsInteger].Font.Color:=query4ys.AsInteger;
        bbtt[query4zxh.AsInteger,query4cxh.AsInteger].Font.Size:=query4zh.AsInteger;
        bbtt[query4zxh.AsInteger,query4cxh.AsInteger].Font.Name:=query4zt.AsString;
        cdlb[query4zxh.AsInteger,query4cxh.AsInteger]:=query4.FieldByname('lbbm').AsString;
        cdbh[query4zxh.AsInteger,query4cxh.AsInteger]:=query4.FieldByname('dycdbh').AsString;
        if (not query4bz.IsNull) and (query4bz.AsString<>'') then bbtt[query4zxh.AsInteger,query4cxh.AsInteger].Glyph.LoadFromFile(query4bz.AsString);
//        bbtt[query4zxh.AsInteger,query4cxh.AsInteger].Visible:=true;
        query4.Next;
     end;
     query4.Close;
//
    j:=1;
    for k:=1 to 50 do
    for i:=1 to 100 do
    begin
     if (bbtt[k,i].Caption<>'') and (k=j) then
     begin
          bbtt[k,i].Visible:=true;
          bbtt[k,i].BringToFront;
     end
     else bbtt[k,i].Visible:=false;
    end;
//
     qrlabel1.Caption:=rjsmain.dwmc;
     qrlabel3.Caption:=rjsmain.dwmc;
     qrlabel10.Caption:=rjsmain.dwmc;
     qtform.SendToBack;
     if pass.yhlx<>'U' then qtform.Caption:='前台点餐(训练)'
     else qtform.Caption:='前台点餐';
     labelededit2.Text:=pass.yhbh;
     labelededit1.Text:=pass.twbh;
     if (time<=strtotime('12:00:00')) and (time>=strtotime('08:00:00')) then labelededit3.Text:='1'
     else if (time>strtotime('12:00:00')) and (time<strtotime('18:00:00')) then labelededit3.Text:='2'
     else labelededit3.Text:='3';
     if (time<=strtotime('08:00:00')) and (time>=strtotime('00:00:01')) then startdate:=(date -1)+strtotime('18:00:00')
     else  startdate:=date+strtotime('00:00:00');
     label4.Caption:='';
     checkbox1.Checked:=true;
     edit3.Text:=timetostr(time);
     timerx.Enabled:=true;
     if jzbz='qt' then hxq:='11'
     else hxq:='first';
     vvv:='vvv';
     edit1.Text:='0';
     edit2.Text:='0';
     IF QUERY3.Active=FALSE THEN QUERY3.Open;
     query2.Close;
     query2.Open;
     if jzbz<>'qt' then
     begin
      query1.SQL.Clear;
      if pass.yhlx='U' then query1.SQL.Add('SELECT djh,fkbz,zfbz FROM dcd Dcd where rq>=:cs1 and rq<=:cs2 order by djh')
      else query1.SQL.Add('SELECT djh,fkbz,zfbz FROM dcdlx Dcdlx where rq>=:cs1 and rq<=:cs2 order by djh');
      query1.ParamByName('cs1').AsDateTime:=startdate;
      query1.ParamByName('cs2').AsDateTime:=date+strtotime('23:59:59');
     end
     else
     begin
      query1.SQL.Clear;
      if pass.yhlx='U' then query1.SQL.Add('SELECT djh,fkbz,zfbz FROM dcd Dcd where djh=:cs1 ')
      else query1.SQL.Add('SELECT djh,fkbz,zfbz FROM dcdlx Dcdlx where djh=:cs1 ');
      query1.ParamByName('cs1').AsString:=djhh;
     end;
     query1.Open;
     application.ProcessMessages;
     treeview1.Items.Clear;
     treev:=treeview1.TopItem;
     i:=0;
     while not query1.Eof do
     begin
       if i<>query1.FieldByName('djh').AsInteger then
       begin
        treeview1.Items.Add(treev,query1.FieldByName('djh').asstring);
        i:=treeview1.Items.Count -1;
        if query1.FieldByName('fkbz').AsBoolean=true then
         if query1.FieldByName('zfbz').AsBoolean=false then treeview1.Items[i].ImageIndex:=0
         else treeview1.Items[i].ImageIndex:=2
        else
         if query1.FieldByName('zfbz').AsBoolean=false then treeview1.Items[i].ImageIndex:=1
         else treeview1.Items[i].ImageIndex:=3;
        treeview1.Items[i].StateIndex:=-1;
        treeview1.Items[i].SelectedIndex:=-1;
        treev:=treeview1.Selected;
        i:=query1.FieldByName('djh').AsInteger;
       end;
       query1.Next;
       application.ProcessMessages;
     end;
     if treeview1.Items.Count>0 then treeview1.Items[treeview1.Items.Count -1].Selected:=true;
//     checkmax(Sender);
     lsq.SQL.Clear;
     if pass.yhlx='U' then lsq.SQL.Add(' SELECT * FROM dcd Dcd where djh=:cs and rq>=:cs1 and rq<=:cs2')
     else lsq.SQL.Add(' SELECT * FROM dcdlx Dcdlx where djh=:cs and rq>=:cs1 and rq<=:cs2');
     if (jzbz='qt') and (query1.RecordCount>0) then lsq.Parameters.ParamByName('cs').Value:=query1.FieldByName('djh').AsInteger
     else lsq.Parameters.ParamByName('cs').Value:=-1;
     lsq.Parameters.ParamByName('cs1').Value:=startdate;
     lsq.Parameters.ParamByName('cs2').Value:=date+time;
     lsq.Open;
     application.ProcessMessages;
     lsq.Filtered:=true;
     if jzbz='qt' then
     begin
        if query1.RecordCount<1 then SpeedButtoniClick(sender)
        else TreeView1Click(sender);
        speedbuttoni.Enabled:=false;
     end
     else speedbuttoni.Enabled:=true;
     query1.Close;
     fkwj.SQL.Clear;
     if pass.yhlx='U' then fkwj.SQL.Add('select * from fkwj where djh=:cs1 and rq>=:cs2 and rq<=:cs3 ')
     else fkwj.SQL.Add('select * from fkwjlx where djh=:cs1 and rq>=:cs2 and rq<=:cs3 ');
    qtform.BringToFront;
end;

procedure TqtForm.Timer1Timer(Sender: TObject);
var i:integer;
    st,wk:string;
    tcc:boolean;
    ssll1:real;
begin
    if hxq='first' then exit;
    if activecontrol.ClassType=Tbitbtn then
    if copy(activecontrol.Name,1,3)<>'sp_' then exit;

⌨️ 快捷键说明

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