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

📄 djqx.pas

📁 集成酒店桑拿食管管理的完整程序
💻 PAS
字号:
unit djqx;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, DBTables, StdCtrls, Grids, DBGrids, ExtCtrls, Mask;

type
  Tdjqxform = class(TForm)
    Label1: TLabel;
    hdno: TMaskEdit;
    man: TRadioButton;
    woman: TRadioButton;
    Label2: TLabel;
    yj: TMaskEdit;
    Bevel1: TBevel;
    DBGrid1: TDBGrid;
    Button1: TButton;
    Button2: TButton;
    q1: TQuery;
    DataSource1: TDataSource;
    s1: TStoredProc;
    Label3: TLabel;
    czy: TEdit;
    GroupBox1: TGroupBox;
    Memo1: TMemo;
    procedure hdnoExit(Sender: TObject);
    procedure manClick(Sender: TObject);
    procedure womanClick(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  djqxform: Tdjqxform;

implementation
uses dataproc;

{$R *.DFM}
var
  acc:string;

procedure findacc;
begin
with djqxform do
   begin
   q1.Active :=false;
   q1.sql.Clear ;
   q1.sql.add('select accno,begtime from nowin where (handno=:phdno) and (sex=:psex)');
   q1.ParamByName ('phdno').asstring:=trim(hdno.text);
   if man.Checked =true then
      q1.ParamByName ('psex').asstring:='1'
   else
      q1.ParamByName ('psex').asstring:='0';
   q1.Prepare;
   q1.open;
   
   if now-strtodatetime(q1.fieldbyname('begtime').asstring)>strtotime('00:15') then
   begin
      showmessage('登记已超过十五分钟,不能撤消');
      hdno.SetFocus ;
      q1.Active :=false;
      exit;
   end;
   acc:=q1.fieldbyname('accno').asstring;
   q1.Active :=false;
   end;
end;

procedure seemx;
begin
with djqxform do
  begin
  q1.Active :=false;
  q1.sql.clear;
  q1.sql.add('select sum(deposit) as total from deposit where accno=:paccno');
  q1.ParamByName ('paccno').asstring:=acc;
  q1.Prepare;
  q1.open;
  yj.text:=inttostr(q1.fieldbyname('total').asinteger);
  q1.Active :=false;
  q1.sql.clear;
  q1.sql.add('select roomno,handno,lssex.sexname,istime,begtime,regid,sdjcode from nowin,lssex where (accno=:pacc and nowin.sex=lssex.sex)');
  q1.ParamByName ('pacc').asstring:=acc;
  q1.Prepare;
  q1.open;
  DataSource1.DataSet:=q1;
  chinesegrid(djqxform.dbgrid1);
  q1.Active :=true;
  end;
end;

procedure Tdjqxform.hdnoExit(Sender: TObject);
var
  recnum:integer;
  lssex:string;
begin
   if length(trim(hdno.text))>0 then
      begin
      q1.Active :=false;
      q1.sql.clear;
      q1.sql.add('select accno,handno,sex,begtime from nowin where (handno=:phdno)');
      q1.ParamByName ('phdno').asstring:=trim(hdno.text);
      q1.Prepare;
      q1.open;
      q1.Active :=true;
      acc:=trim(q1.fieldbyname('accno').asstring);
      lssex:=trim(q1.FieldByName ('sex').asstring);
      recnum:=q1.RecordCount ;
      if recnum =0 then
      begin
         showmessage('手号错误');
         hdno.SetFocus ;
         q1.Active :=false;
         exit;
      end;

      if recnum =1 then
      begin
         if now-strtodatetime(q1.fieldbyname('begtime').asstring)>strtotime('00:15') then
            begin
             showmessage('登记已超过十五分钟,不能撤消');
             hdno.SetFocus ;
             exit;
            end;
         man.Enabled :=false;
         woman.Enabled :=false;
         if lssex='3' then
            begin
            man.Checked :=false;
            woman.Checked :=false;
            end;
         if lssex='2' then
            begin
            man.Checked :=false;
            woman.Checked :=false;
            end;
         if lssex='1' then
            man.Checked :=true;
         if lssex='0' then
            woman.Checked :=true;
         q1.Active :=false;
         seemx;
         end;
      if recnum >1 then
         begin
         q1.Active :=false;
         man.Enabled :=true;
         woman.Enabled :=true;
         man.Checked :=true;
         man.setfocus;
         end;
      end;
end;

procedure Tdjqxform.manClick(Sender: TObject);
begin
  if man.Checked =true then
     begin
     findacc;
     seemx;
     end;
end;

procedure Tdjqxform.womanClick(Sender: TObject);
begin
  if woman.Checked =true then
     begin
     findacc;
     seemx;
     end;
end;

procedure formini;
begin
with djqxform do
  begin
  acc:='';
  hdno.text:='';
  yj.text:='';
  end;
end;

procedure Tdjqxform.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=112 then
  begin
     if xt=0 then help(2);
  end;
  if key=13 then
     selectnext(activecontrol,true,true);
  if key=27 then
     djqxform.close;
end;

procedure Tdjqxform.FormCreate(Sender: TObject);
begin
  formini;
end;

procedure Tdjqxform.Button2Click(Sender: TObject);
begin
  djqxform.Close;
end;

procedure Tdjqxform.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  s1.Free;
  q1.free;
end;

procedure Tdjqxform.Button1Click(Sender: TObject);
var
  val:string;
begin
  if length(trim(hdno.text))=0 then
     begin
     showmessage('手号不能为空');
     hdno.setfocus;
     exit;
     end;
  if messagedlg('真的撤消吗?',mtWarning,[mbYes, mbNo], 0) = mrYes then
     begin
     s1.Prepare;
     s1.ParamByName ('@iaccno').asstring:=trim(acc);
     s1.ParamByName ('@czy').asstring:=trim(czy.Text);
     s1.ParamByName ('@bz').Asstring:=trim(Memo1.Text);
     s1.ExecProc ;
     val:=s1.ParamByName ('@ostatus').asstring;
     if val='1' then
        showmessage('已有消费,不能撤消');
{     if val='2' then
        showmessage('已经换房,不能撤消'); }
     if val='0' then
     begin
        addlogo(curper.code,datetimetostr(now),trim(acc)+'撤消'+trim(hdno.text));
        showmessage('撤消成功');
     end;
     Memo1.Text:='';
     q1.Active :=false;
     formini;
     hdno.SetFocus ;
     end;
end;

end.

⌨️ 快捷键说明

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