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

📄 jiezhang.~pas

📁 结于初学者来说这对数据库是一个很好的例子
💻 ~PAS
字号:
unit jiezhang;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, Buttons, ExtCtrls, DB, DBTables, Grids, DBGrids,
  DBCtrls;

type
  TForm14 = class(TForm)
    Label1: TLabel;
    Q_insys: TQuery;
    Q_over: TQuery;
    GroupBox1: TGroupBox;
    Label3: TLabel;
    Label5: TLabel;
    Sn_AccountNo: TLabel;
    GroupBox3: TGroupBox;
    Label18: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    Label27: TLabel;
    Shape3: TShape;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton4: TSpeedButton;
    XF_sfje: TLabel;
    XF_zkje: TLabel;
    zkje: TLabel;
    Label29: TLabel;
    Label40: TLabel;
    Label41: TLabel;
    Jz_zkl: TMaskEdit;
    Jz_rmb: TMaskEdit;
    Jz_zp: TMaskEdit;
    Jz_xyk: TMaskEdit;
    Jz_kd: TMaskEdit;
    Jz_kdr: TComboBox;
    Jz_dz: TMaskEdit;
    Jz_dzr: TComboBox;
    Jz_ml: TMaskEdit;
    GroupBox2: TGroupBox;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    Label17: TLabel;
    Shape1: TShape;
    Label30: TLabel;
    Label31: TLabel;
    Label32: TLabel;
    Label33: TLabel;
    Label34: TLabel;
    Label35: TLabel;
    Label36: TLabel;
    Label37: TLabel;
    Label39: TLabel;
    GroupBox4: TGroupBox;
    DBGrid1: TDBGrid;
    Q_SnDinList: TQuery;
    DataSource1: TDataSource;
    Label2: TLabel;
    Label4: TLabel;
    LB_handno: TListBox;
    Label6: TLabel;
    Label28: TLabel;
    Label43: TLabel;
    Label45: TLabel;
    Label8: TLabel;
    Label7: TLabel;
    DBText1: TDBText;
    Q_xfxx: TQuery;
    DS_xfxx: TDataSource;
    DBText2: TDBText;
    DBText3: TDBText;
    DBText4: TDBText;
    DBText5: TDBText;
    DBText6: TDBText;
    DBText7: TDBText;
    DBText8: TDBText;
    DBText9: TDBText;
    DBText10: TDBText;
    DBText11: TDBText;
    DBText12: TDBText;
    DBText13: TDBText;
    Sn_EndTime: TLabel;
    DBText14: TDBText;
    DBText15: TDBText;
    Q_h: TQuery;
    Q_kdr: TQuery;
    Q_dzr: TQuery;
    Q_kg: TQuery;
    Q_room: TQuery;
    Button1: TButton;
    T_dzkd: TTable;
    Q_zkl: TQuery;
    seekd: TButton;
    seedz: TButton;
    see_kdr: TQuery;
    Jz_kdr1: TLabel;
    jz_dzr1: TLabel;
    Q_selkddz: TQuery;
    procedure FormShow(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure Jz_zklKeyPress(Sender: TObject; var Key: Char);
    procedure Jz_mlKeyPress(Sender: TObject; var Key: Char);
    procedure Jz_rmbKeyPress(Sender: TObject; var Key: Char);
    procedure Jz_zpKeyPress(Sender: TObject; var Key: Char);
    procedure Jz_xykKeyPress(Sender: TObject; var Key: Char);
    procedure Jz_kdKeyPress(Sender: TObject; var Key: Char);
    procedure Jz_kdrKeyPress(Sender: TObject; var Key: Char);
    procedure Jz_dzKeyPress(Sender: TObject; var Key: Char);
    procedure Jz_dzrKeyPress(Sender: TObject; var Key: Char);
    procedure Jz_zklExit(Sender: TObject);
    procedure Jz_mlExit(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Jz_kdrSelect(Sender: TObject);
    procedure Jz_dzrSelect(Sender: TObject);
    procedure seekdClick(Sender: TObject);
    procedure seedzClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form14: TForm14;

implementation

uses zd_print, mainmenu, guibin, ZD_PRINT11, dy, main, see_qm;

{$R *.dfm}

procedure TForm14.FormShow(Sender: TObject);
begin
  jz_kdr1.Caption:='款待人';
  jz_dzr1.Caption:='抵值人';
  seekd.Enabled:=False;
  seedz.Enabled:=False;
  Q_kg.Close;
  Q_kg.SQL.Clear;
  Q_kg.SQL.Add('select sfjz from sn_account where accountno=cdbl('''+Sn_AccountNo.Caption+''')');
  Q_kg.Open;
  if Q_kg.FieldByName('sfjz').AsInteger=0 then
  begin
  speedbutton2.Enabled:=false;
  end
  else
  begin
    speedbutton2.Enabled:=true;
  end;
  XF_sfje.Caption:=dbtext13.Caption;
  jz_rmb.Text:=dbtext13.Caption;
  Sn_EndTime.Caption:=DateTimeTostr(now);
  jz_zkl.EditMask:='999;1; ';
  jz_zkl.Text:='100';
  jz_ml.EditMask:='999;1; ';
  jz_ml.Text:='0';
  jz_rmb.EditMask:='99999;1; ';
  jz_rmb.Text:='0';
  jz_zp.EditMask:='99999;1; ';
  jz_zp.Text:='0';
  jz_xyk.EditMask:='99999;1; ';
  jz_xyk.Text:='0';
  jz_kd.EditMask:='99999;1; ';
  jz_kd.Text:='0';
  jz_dz.EditMask:='99999;1; ';
  jz_dz.Text:='0';
  jz_kdr.Text:='';
  jz_dzr.Text:='';
  Q_kdr.Open;
  Q_kdr.Active:=True;
  jz_kdr.ClearSelection;
while not Q_kdr.Eof do
        begin
          jz_kdr.Items.Add(Q_kdr.FieldByName('UserNo').AsString);
          Q_kdr.Next;
        end;
  Q_dzr.Open;
  Q_dzr.Active:=True;
   jz_dzr.ClearSelection;
while not Q_dzr.Eof do
        begin
          jz_dzr.Items.Add(Q_dzr.FieldByName('UserNo').AsString);
          Q_dzr.Next;
        end;
        jz_zkl.SetFocus;
end;

procedure TForm14.SpeedButton4Click(Sender: TObject);
begin
  close;
end;

procedure TForm14.Jz_zklKeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then
 begin
    key:=#0;
    perform(WM_NEXTDLGCTL,0,0);
 end;
end;

procedure TForm14.Jz_mlKeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then
 begin
    key:=#0;
    perform(WM_NEXTDLGCTL,0,0);
 end;
end;

procedure TForm14.Jz_rmbKeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then
 begin
    key:=#0;
    perform(WM_NEXTDLGCTL,0,0);
 end;
end;

procedure TForm14.Jz_zpKeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then
 begin
    key:=#0;
    perform(WM_NEXTDLGCTL,0,0);
 end;
end;

procedure TForm14.Jz_xykKeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then
 begin
    key:=#0;
    perform(WM_NEXTDLGCTL,0,0);
 end;
end;

procedure TForm14.Jz_kdKeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then
 begin
    key:=#0;
    perform(WM_NEXTDLGCTL,0,0);
 end;
end;

procedure TForm14.Jz_kdrKeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then
 begin
    key:=#0;
    perform(WM_NEXTDLGCTL,0,0);
 end;
end;

procedure TForm14.Jz_dzKeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then
 begin
    key:=#0;
    perform(WM_NEXTDLGCTL,0,0);
 end;
end;

procedure TForm14.Jz_dzrKeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then
 begin
    key:=#0;
    perform(WM_NEXTDLGCTL,0,0);
 end;
end;

procedure TForm14.Jz_zklExit(Sender: TObject);
  var zkl:double;
begin
 if length(trim(Jz_zkl.Text))=0 then
  begin
   MessageDlg('折扣率输入不能为空,请重新输入!',mtError,[mbok],0);
   end
  else
   begin
   Q_zkl.Close;
   Q_zkl.SQL.Clear;
   Q_zkl.SQL.Add('select sum(SalePrice*Quantity) as zkze from sn_DinList where dz=''是'' and AccountNo=cdbl('''+sn_accountNo.Caption+''')');
   Q_zkl.Open;
  zkl:=StrTofloat(Jz_zkl.text);
  zkje.Caption:=Floattostr(round(Q_zkl.fieldbyname('zkze').AsFloat*(1-zkl/100)));
//  zkje.Caption:=Floattostr(round(StrtoFloat(dbtext13.Caption)*(1-zkl/100)));
//  xf_sfje.Caption:=Floattostr(round(StrtoFloat(dbtext13.Caption)*(zkl/100)));
    xf_sfje.Caption:=Floattostr(round(strtofloat(dbtext13.Caption)-strtofloat(zkje.Caption)));
    jz_rmb.Text:=xf_sfje.Caption;
//  Jz_rmb.Text:=Floattostr(round(StrtoFloat(dbtext13.Caption)*(zkl/100)));
   end;

end;

procedure TForm14.Jz_mlExit(Sender: TObject);
  var ml:double;
begin
 if length(trim(Jz_ml.Text))=0 then
  begin
   MessageDlg('抹零输入不能为空,请重新输入!',mtError,[mbok],0);
   end
  else
   begin
     ml:=StrTofloat(Jz_ml.text);
     xf_sfje.Caption:=Floattostr(StrtoFloat(XF_sfje.Caption)-ml);
     Jz_rmb.Text:=Floattostr(StrtoFloat(jz_rmb.Text)-ml);
   end;

end;

procedure TForm14.SpeedButton1Click(Sender: TObject);
var userno:string;
begin
//判断输入是否有空值
if (length(trim(Jz_kd.Text))>0) and (length(trim(Jz_kd.Text))>0) and (((StrToInt(Trim(Jz_kd.Text))>0) and (length(Jz_kdr.Text)>0)) or (StrToInt(Trim(Jz_kd.Text))=0)) and (((StrToInt(Trim(Jz_dz.Text))>0) and (length(Jz_dzr.Text)>0)) or (StrToInt(Trim(Jz_dz.Text))=0)) and (length(trim(Jz_rmb.Text))>0) and (length(trim(Jz_zp.Text))>0) and (length(trim(Jz_xyk.Text))>0) and ((StrToint(Trim(Jz_rmb.Text))+StrToint(Trim(Jz_zp.Text))+StrToint(Trim(Jz_xyk.Text))+StrToint(Trim(Jz_kd.Text))+StrToint(Trim(Jz_dz.Text)))=StrToInt(Xf_sfje.Caption)) then
     begin
    speedbutton2.Enabled:=true;
//将折扣率、抹零金额、人民币、支票、信用卡、款待金额、款待人、抵值金额、抵值人、实收金额、折扣金额添加到Account表中做相应的修改
    Q_insys.SQL.Clear;
    Q_insys.SQL.Add('update Sn_Account set  sfjz=1,ysje=cdbl('''+dbtext13.Caption+'''),zkl=cdbl('''+trim(Jz_zkl.Text)+'''),rmbje=cdbl('''+trim(Jz_rmb.Text)+'''),zpje=cdbl('''+trim(Jz_zp.Text)+'''),xykje=cdbl('''+trim(Jz_xyk.Text)+'''),kdje=cdbl('''+trim(Jz_kd.Text)+'''),kdr='''+Jz_kdr.Text+''',dzje=cdbl('''+trim(Jz_dz.Text)+'''),dzr='''+Jz_dzr.Text+''',zkje=cdbl('''+zkje.caption+'''),sfje=cdbl('''+XF_sfje.caption+'''),mlje=cdbl('''+trim(Jz_ml.Text)+'''),EndTime=now() where AccountNo=cdbl('''+sn_Accountno.Caption+''')');
    Q_insys.execsql;
//更改DinList表中 BeginTime 与EndTime 值
    Q_insys.SQL.Clear;
    Q_insys.SQL.Add('update Sn_DinList set endtime=now() where AccountNo=cdbl('''+Sn_AccountNo.Caption+''')');
    Q_insys.ExecSQL;
    Q_insys.SQL.Clear;
    Q_insys.SQL.Add('update Sn_DinList set endtime=now() where AccountNo=cdbl('''+Sn_AccountNo.Caption+''')');
    Q_insys.ExecSQL;
//结束
//如果款待和抵值金额不为零,则按款待和抵值人修改相应的金额;
  if StrToInt(trim(Jz_kd.Text))<>0  then
    begin
       Q_insys.SQL.Clear;
       Q_insys.SQL.Add('select * from UserInfo where UserNo='''+Jz_kdr.Text+'''');
       Q_insys.Open;
       userno:=Q_insys.fieldbyname('userno').AsString;
       Q_insys.Edit;
       Q_insys['TotalMoney']:=Q_insys['TotalMoney']+StrToInt(trim(Jz_kd.Text));
       Q_insys.Post;
       Q_insys.Close;
       T_dzkd.Close;
       T_dzkd.Open;
       T_dzkd.AppendRecord([Sn_accountNo.caption,userno,jz_kdr.text,strtoint(trim(jz_kd.text)),now,form1.sys_snusername,'洗浴','款待']);
       T_dzkd.Close;
    end;
  if  StrToInt(trim(Jz_dz.Text))<>0  then
    begin
       Q_insys.SQL.Clear;
       Q_insys.SQL.Add('select * from VipInfo where UserNo='''+Jz_dzr.Text+'''');
       Q_insys.Open;
       userno:=Q_insys.fieldbyname('userno').AsString;
       Q_insys.Edit;
       Q_insys['TotalMoney']:=Q_insys['TotalMoney']-StrToInt(trim(Jz_dz.Text));
       Q_insys.Post;
       Q_insys.Close;
       T_dzkd.Close;
       T_dzkd.Open;
       T_dzkd.AppendRecord([Sn_accountNo.caption,userno,jz_dzr.text,strtoint(trim(jz_dz.text)),now,form1.sys_snusername,'洗浴','抵值']);
       T_dzkd.Close;
    end;
//调用打印界面
  form27.ysje.Caption:=dbtext13.Caption;
  form27.zkje.Caption:=zkje.Caption;
  form27.mlje.Caption:=trim(jz_ml.Text);
  form27.sfje.Caption:=xf_sfje.Caption;
  form27.zdh.Caption:=sn_accountno.Caption;
  form27.jzrq.Caption:=datetimetostr(now);
  form27.query1.active:=false;
  form27.query1.sql.clear;
  form27.query1.sql.add('select * from sn_Dinlist where accountno=cdbl('''+sn_accountno.Caption+''')');
  form27.query1.active:=true;
  form27.QuickRep1.Print;

       end
     else
     begin
       MessageDlg('输入不正确,请重新输入!',mtError,[mbok],0);
     end;


end;

procedure TForm14.SpeedButton2Click(Sender: TObject);
 var accountno,lsls:string;
begin
   accountno:=sn_accountno.Caption;
//将sn_Account对应数据复制到H_sn_Account中后删除
   Q_over.SQL.Clear;
   Q_over.SQL.Add('Insert into H_Sn_Account select * from Sn_Account where Sn_Account.AccountNo=cdbl('''+Accountno+''')');
   Q_over.ExecSQL;
   Q_over.SQL.Clear;
   Q_over.SQL.Add('delete from sn_Account where accountno=cdbl('''+accountno+''')');
   Q_over.ExecSQL;
//结束

//将DinList对应数据复制到H_DinList中后删除
   Q_over.SQL.Clear;
   Q_over.SQL.Add('Insert into H_Sn_DinList select * from Sn_DinList where Sn_DinList.accountno=cdbl('''+accountno+''')');
   Q_over.ExecSQL;
   Q_over.SQL.Clear;
   Q_over.SQL.Add('delete from sn_DinList where accountno=cdbl('''+accountno+''')');
   Q_over.ExecSQL;
//结束
//从SnFolio中删除
   Q_over.SQL.Clear;
   Q_over.SQL.Add('delete from snfolio where folio=cdbl('''+accountno+''')');
   Q_over.ExecSQL;
//更改房间状态
   Q_over.SQL.Clear;
   Q_over.SQL.Add('select * from H_Sn_DinList where cstr(accountno)='''+accountno+'''');
   Q_over.Open;
   while not Q_over.Eof do
   begin
     if strpos(pchar(Q_over.fieldbyname('menuname').asstring),pchar('钟点房'))<>nil then
        begin
        lsls:=Q_over.fieldbyname('menuno').AsString;
        Q_room.SQL.Clear;
        q_room.SQL.Add('update sn_menu set zt=0 where menuno='''+lsls+'''');
        q_room.ExecSQL;
        end;
    Q_over.Next;
   end;


   form2.ResetMain;
   form14.Close;
//结束


end;

procedure TForm14.Button1Click(Sender: TObject);
begin
  form26.showmodal;
end;

procedure TForm14.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  form2.Q_DinList.Active:=False;
  form2.Q_DinList.Active:=true;
end;

procedure TForm14.Jz_kdrSelect(Sender: TObject);
begin
 seekd.Enabled:=True;
 Q_selkddz.Active:=False;
 Q_selkddz.SQL.Clear;
 Q_selkddz.SQL.Add('select username from userinfo where userno='''+jz_kdr.Text+'''');
 Q_selkddz.Active:=true;
 Jz_kdr1.Caption:=Q_selkddz.fieldbyname('username').AsString;
 Q_selkddz.Active:=False;
end;

procedure TForm14.Jz_dzrSelect(Sender: TObject);
begin
 Seedz.Enabled:=True;
 Q_selkddz.Active:=False;
 Q_selkddz.SQL.Clear;
 Q_selkddz.SQL.Add('select username from vipinfo where userno='''+jz_dzr.Text+'''');
 Q_selkddz.Active:=true;
 Jz_dzr1.Caption:=Q_selkddz.fieldbyname('username').AsString;
 Q_selkddz.Active:=False;
end;

procedure TForm14.seekdClick(Sender: TObject);
  var filen:string;
begin
 see_kdr.Active:=False;
 See_kdr.SQL.Clear;
 See_kdr.SQL.Add('select * from userinfo where username='''+jz_kdr.Text+'''');
 See_kdr.Active:=True;
 filen:='image\'+See_kdr.fieldbyname('userno').AsString+'.bmp';
 see_kdr.Active:=False;
 form29.Image1.Picture.LoadFromFile(filen);
 form29.showmodal;

end;

procedure TForm14.seedzClick(Sender: TObject);
  var filen:string;
begin
 see_kdr.Active:=False;
 See_kdr.SQL.Clear;
 See_kdr.SQL.Add('select * from vipinfo where username='''+jz_dzr.Text+'''');
 See_kdr.Active:=True;
 filen:='image\'+See_kdr.fieldbyname('userno').AsString+'.bmp';
 see_kdr.Active:=False;
 form29.Image1.Picture.LoadFromFile(filen);
 form29.showmodal;

end;

end.

⌨️ 快捷键说明

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