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

📄 mainmenu.~pas

📁 结于初学者来说这对数据库是一个很好的例子
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
   if j>1 then
   begin
   SpeedButton5.Enabled:=true;
   end
   else
   begin
   SpeedButton5.Enabled:=false;
   end;
   end;
end;

procedure TForm2.SpeedButton5Click(Sender: TObject);
var SnaccountNonew:integer;
begin
//提示是否分离帐单
  if MessageDlg('确定要分离帐单吗?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  begin
//从Lsh表产生新的一个单号
   T_lshnew.Open;
   SnAccountNonew:=T_lshnew['SnAccountNo']+1;
   T_lshnew.Edit;
   T_lshnew['SnAccountNo']:=SnAccountNonew;
   T_lshnew.Post;
   T_lshnew.Close;
//修改SnFolio中手牌号为当前要分离的手牌号的帐单号为新帐单号
   Q_FolioNew.SQL.Clear;
   Q_FolioNew.SQL.Add('select * from SnFolio where HandNo='''+lv_handno.ItemFocused.Caption+'''');
   Q_FolioNew.Open;
   Q_FolioNew.Edit;
   Q_FolioNew['Folio']:=SnAccountNoNew;
   Q_FolioNew.Post;
   Q_FolioNew.Close;
//修改Sn_DinList中数据
   Query2.Active:=False;
   Query2.Params.ParamValues['vaccountno']:=strtofloat(tv_folio.Selected.Text);
   Query2.Params.ParamValues['vhandno']:=strtofloat(lv_handno.ItemFocused.Caption);
   query2.ExecSQL;
   Q_FolioNew.SQL.Clear;
   Q_FolioNew.SQL.Add('select * from Sn_DinList where HandNo='''+lv_handno.ItemFocused.Caption+'''');
   Q_FolioNew.Open;
 while not Q_FolioNew.Eof do
   begin
   Q_FolioNew.Edit;
   Q_FolioNew['AccountNo']:=SnAccountNonew;
   Q_folioNew.Post;
   Q_folioNew.Next;
   end;
   Q_FolioNew.Close;
//向Sn_Account中插入一条新数据
   T_SnAccountnew.Open;
   T_SnAccountnew.Append;
   T_SnAccountnew['AccountNo']:=SnAccountNonew;
   T_SnAccountnew['PersonSum']:=1;
   T_SnAccountnew.Post;
//刷新主界面并关闭本窗体
   ResetMain;
  end;
end;

procedure TForm2.SpeedButton3Click(Sender: TObject);
   var
      present,begintime:tdatetime;
      js_xs,js_min,ccc,ddd:double;
      totala,fff,cccc,dddd,testt:string;
      ff:integer;
      Year,Year1,Month,Month1,Day,Day1,Hour,Hour1,Min,Min1,Sec,Sec1,MSec1,Msec: Word;
begin
//计算并合并费用
  Q_jiezhang.Close;
  Q_jiezhang.SQL.Clear;
  Q_jiezhang.SQL.Add('select * from Sn_DinList where AccountNo=cdbl('''+tv_folio.Selected.Text+''')');
  Q_jiezhang.Open;
  ff:=0;
{  testt:='111';
  while not Q_jiezhang.Eof do
   begin
     if strpos(pchar(Q_jiezhang.fieldbyname('menuname').asstring),pchar('钟点房'))<>nil then
      begin
//计算钟点房费用
        begintime:=Q_jiezhang.fieldbyname('begintime').AsDateTime;
        Present:=now;
        DecodeTime(present, Hour, Min, Sec, MSec);
        DecodeTime(BeginTime, Hour1, Min1, Sec1, MSec1);
//月份、天数、小时数
        js_xs:=Hour-Hour1;
        if js_xs<0 then
          begin
           js_xs:=24+js_xs;
         end;
        if min>min1 then
         begin
          Js_Min:=Min-Min1;
          if js_min<=30 then
             begin
              js_xs:=js_xs+0.5;
             end
           else
             begin
              js_xs:=js_xs+1;
             end;
         end;
//结束
//根据小时、分计算房费
        ff:=round(js_xs*Q_jiezhang.fieldbyname('SalePrice').AsInteger)+ff;
        fff:=inttostr(ff);
        testt:='222';
     end;
   Q_jiezhang.Next;
end;
   //结束
//将房费写到 sn_Account表中
      if testt='222' then
       begin
           Q_jiezhang.Close;
           Q_jiezhang.SQL.Clear;
           Q_jiezhang.SQL.Add('update sn_Account set type1=cdbl('''+fff+''')');
           Q_jiezhang.SQL.Add('where AccountNo=cdbl('''+tv_folio.Selected.Text+''')');
           Q_jiezhang.ExecSQL;
      end;
//结束  }
//结束
//根据AccountNo读取 DinList表中数据,合并各个类别金额后存入Account表相应字段中,并在结帐Form中显示;
  query3.Active:=false;
  query3.Params.ParamValues['vacco']:=strtofloat(tv_folio.Selected.Text);
  query3.ExecSQL;
  Q_ydundo.Close;
  Q_ydundo.SQL.Clear;
  Q_ydundo.SQL.Add('select sum(SalePrice*Quantity) as TotalM,MenuType from Sn_DinList where AccountNo=cdbl('''+tv_folio.Selected.Text+''')');
  Q_ydundo.sql.Add('group by MenuType');
  Q_ydundo.Open;
  while not Q_ydundo.Eof do
   begin
     totala:=floattostr(q_ydundo.FieldByName('TotalM').asfloat);
      case Q_ydundo.FieldByName('MenuType').asinteger of
        1:
         begin
            Q_Over.SQL.Clear;
            Q_over.SQL.Add('update sn_Account set type1=cdbl('''+totala+''') where AccountNo=cdbl('''+tv_folio.Selected.Text+''')');
            Q_over.ExecSQL;
          end;

        2:
         begin
            Q_Over.SQL.Clear;
            Q_over.SQL.Add('update sn_Account set type2=cdbl('''+totala+''') where AccountNo=cdbl('''+tv_folio.Selected.Text+''')');
            Q_over.ExecSQL;
          end;
        3:
         begin
            Q_Over.SQL.Clear;
            Q_over.SQL.Add('update sn_Account set type3=cdbl('''+totala+''') where AccountNo=cdbl('''+tv_folio.Selected.Text+''')');
            Q_over.ExecSQL;
          end;
        4:
         begin
            Q_Over.SQL.Clear;
            Q_over.SQL.Add('update sn_Account set type4=cdbl('''+totala+''') where AccountNo=cdbl('''+tv_folio.Selected.Text+''')');
            Q_over.ExecSQL;
          end;
        5:
         begin
            Q_Over.SQL.Clear;
            Q_over.SQL.Add('update sn_Account set type5=cdbl('''+totala+''') where AccountNo=cdbl('''+tv_folio.Selected.Text+''')');
            Q_over.ExecSQL;
          end;
        6:
         begin
            Q_Over.SQL.Clear;
            Q_over.SQL.Add('update sn_Account set type6=cdbl('''+totala+''') where AccountNo=cdbl('''+tv_folio.Selected.Text+''')');
            Q_over.ExecSQL;
          end;
        7:
         begin
            Q_Over.SQL.Clear;
            Q_over.SQL.Add('update sn_Account set type7=cdbl('''+totala+''') where AccountNo=cdbl('''+tv_folio.Selected.Text+''')');
            Q_over.ExecSQL;
          end;
        8:
         begin
            Q_Over.SQL.Clear;
            Q_over.SQL.Add('update sn_Account set type8=cdbl('''+totala+''') where AccountNo=cdbl('''+tv_folio.Selected.Text+''')');
            Q_over.ExecSQL;
          end;
        9:
         begin
            Q_Over.SQL.Clear;
            Q_over.SQL.Add('update sn_Account set type9=cdbl('''+totala+''') where AccountNo=cdbl('''+tv_folio.Selected.Text+''')');
            Q_over.ExecSQL;
          end;
        10:
         begin
            Q_Over.SQL.Clear;
            Q_over.SQL.Add('update sn_Account set type10=cdbl('''+totala+''') where AccountNo=cdbl('''+tv_folio.Selected.Text+''')');
            Q_over.ExecSQL;
          end;
        11:
         begin
            Q_Over.SQL.Clear;
            Q_over.SQL.Add('update sn_Account set type11=cdbl('''+totala+''') where AccountNo=cdbl('''+tv_folio.Selected.Text+''')');
            Q_over.ExecSQL;
         end;
       end;        
    Q_ydundo.Next;
   end;
//结束
//计算合计、应收金额
            Q_Over.SQL.Clear;
            Q_over.SQL.Add('select * from sn_Account where AccountNo=cdbl('''+tv_folio.Selected.Text+''')');
            Q_over.Open;
            ccc:=Q_Over.FieldByName('Type1').asfloat+Q_Over.FieldByName('Type2').asfloat+Q_Over.FieldByName('Type3').asfloat+Q_Over.FieldByName('Type4').asfloat+Q_Over.FieldByName('Type5').asfloat+Q_Over.FieldByName('Type6').asfloat+Q_Over.FieldByName('Type7').asfloat+Q_Over.FieldByName('Type8').asfloat+Q_Over.FieldByName('Type9').asfloat+Q_Over.FieldByName('Type10').asfloat+Q_Over.FieldByName('Type11').asfloat;
            cccc:=floattostr(ccc);
            ddd:=Q_Over.FieldByName('Type1').asfloat+Q_Over.FieldByName('Type2').asfloat+Q_Over.FieldByName('Type3').asfloat+Q_Over.FieldByName('Type4').asfloat+Q_Over.FieldByName('Type5').asfloat+Q_Over.FieldByName('Type6').asfloat+Q_Over.FieldByName('Type7').asfloat+Q_Over.FieldByName('Type8').asfloat+Q_Over.FieldByName('Type9').asfloat+Q_Over.FieldByName('Type10').asfloat+Q_Over.FieldByName('Type11').asfloat;
            dddd:=floattostr(ddd);
            Q_over.SQL.Clear;
            Q_over.SQL.Add('update Sn_Account set xj=cdbl('''+cccc+'''),ysje=cdbl('''+dddd+''') where accountno=cdbl('''+tv_folio.Selected.Text+''')');
            Q_over.ExecSQL;
           
//结束



//设置显示
  form14.Sn_AccountNo.Caption:=tv_folio.Selected.Text;
  form14.Q_xfxx.Active:=false;
  form14.Q_xfxx.SQL.Clear;
  form14.Q_xfxx.SQL.Add('select * from Sn_Account where cstr(AccountNo)='''+tv_folio.Selected.Text+'''');
  form14.Q_xfxx.Active:=true;
  form14.Q_SnDinList.Active:=False;
  form14.Q_SnDinList.SQL.Clear;
  form14.Q_SnDinList.SQL.Add('select * from Sn_DinList where cstr(AccountNo)='''+tv_folio.Selected.Text+'''');
  form14.Q_SnDinList.Active:=True;
  form14.Q_h.Active:=false;
  form14.Q_h.SQL.Clear;
  form14.Q_h.SQL.Add('select handno from snfolio where cstr(folio)='''+tv_folio.Selected.Text+'''');
  form14.Q_h.Open;
  form14.LB_handno.Clear;
//  form14.LB_handno.Items.Add('手牌号列表');
  while not form14.Q_h.Eof do
  begin
  form14.LB_handno.Items.Add(form14.Q_h.fieldByName('handno').AsString);
  form14.Q_h.Next;
  end;
  form14.ShowModal;
end;

procedure TForm2.SpeedButton6Click(Sender: TObject);
begin
 form16.ShowModal;
end;

procedure TForm2.N12Click(Sender: TObject);
begin
  form17.ShowModal;
end;

procedure TForm2.N13Click(Sender: TObject);
begin
 form18.ShowModal;
end;

procedure TForm2.N14Click(Sender: TObject);
begin
 form21.ShowModal;
end;

procedure TForm2.N21Click(Sender: TObject);
begin
 form22.ShowModal;
end;

procedure TForm2.N16Click(Sender: TObject);
begin
 form23.ShowModal;
end;

procedure TForm2.N25Click(Sender: TObject);
begin
 form24.showmodal;
end;

procedure TForm2.N24Click(Sender: TObject);
begin
 shellExecute(handle,'open',pchar('sangna.chm'),nil,nil,sw_showmaximized);
end;

procedure TForm2.N22Click(Sender: TObject);
begin
form25.showmodal;
end;

procedure TForm2.N28Click(Sender: TObject);
begin
 form26.showmodal;
end;

procedure TForm2.sphKeyPress(Sender: TObject; var Key: Char);
 var
    vvfolio,vhandno:string;
    listitem:Tlistitem;
    i,j,k:integer;
begin
 if key=#13 then
  begin
    ResetMain;
    vhandno:=trim(sph.Text);
    Q_sph.Active:=false;
    Q_sph.SQL.Clear;
    Q_sph.SQL.Add('select * from snfolio where handno='''+vhandno+'''');
    Q_sph.Active:=True;
    if Q_sph.RecordCount=0 then
     begin
      Q_sph.Active:=false;
      MessageDlg('您输入的手牌号不存在,请重新输入!',mtError,[mbok],0);
      sph.Clear;
      sph.SetFocus;
     end
     else
     begin
   SpeedButton1.Enabled:=true;
   SpeedButton2.Enabled:=true;
   SpeedButton3.Enabled:=true;
   SpeedButton4.Enabled:=false;
   N2.Enabled:=true;
   N3.Enabled:=true;
   N4.Enabled:=true;
   N5.Enabled:=false;
   N6.Enabled:=true;
//手牌号存在,选择tv_folip
        vvfolio:=Q_sph.fieldbyname('folio').AsString;
       Q_SPH.Active:=fALSE;
        for j:=0 to  tv_folio.Items.Count-1 do
         begin
          if tv_folio.Items[j].Text=vvfolio then
            begin
              tv_folio.Items[j].Selected:=true;
//              tv_folio.Items[j].Focused:=true;
           end;
         end;
   Q_Dinlist.Active:=false;
   Q_Dinlist.SQL.Clear;
   Q_DinList.SQL.Add('select * from Sn_DinList where cstr(accountno)='''+tv_folio.Selected.Text+''' and HandNo='''+vhandno+'''');
   Q_Dinlist.Active:=true;

//手牌号存在,选择lv_handno
    Q_sph.Active:=false;
    Q_sph.SQL.Clear;
    Q_sph.SQL.Add('select * from snfolio where Folio=cdbl('''+vvfolio+''')');
    Q_sph.Active:=true;
    while not Q_sph.Eof do
    begin
      for k:=0 to Lv_HandNo.Items.Count-1 do
        begin
           if Q_sph.FieldByName('handno').AsString=lv_handno.Items[k].Caption then
              begin
               lv_handno.Items[k].ImageIndex:=1;
              end;
        end;
      Q_sph.Next;
    end;


        for i:=0 to lv_handno.Items.Count-1 do
         begin
          if lv_handno.Items.Item[i].Caption=vhandno then
             begin
              lv_handno.Items.Item[i].ImageIndex:=1;
              lv_handno.Items.Item[i].Selected:=true;
             end;
         end;
     end;
    end;
end;

procedure TForm2.cardKeyPress(Sender: TObject; var Key: Char);
  var filen:string;
begin
 if key=#13 then
  begin
 see_k.Active:=False;
 See_k.SQL.Clear;
 See_k.SQL.Add('select * from guibin where bh='''+card.Text+'''');
 See_k.Active:=True;
 filen:='image\'+See_k.fieldbyname('bh').AsString+'.bmp';
 see_k.Active:=False;
 form29.Image1.Picture.LoadFromFile(filen);
 form29.showmodal;
  end;
end;

end.


⌨️ 快捷键说明

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