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

📄 sanydtoqx.pas

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

interface

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

type
  Tsanydtoqxform = class(TForm)
    Button1: TButton;
    Button2: TButton;
    q1: TQuery;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Bevel1: TBevel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    GroupBox1: TGroupBox;
    man: TRadioButton;
    woman: TRadioButton;
    zj: TComboBox;
    id: TMaskEdit;
    workunit: TEdit;
    yj: TSpinEdit;
    GroupBox2: TGroupBox;
    phone: TRadioButton;
    xj: TRadioButton;
    cometime: TMaskEdit;
    yzday: TSpinEdit;
    ydgrid: TStringGrid;
    rmnum: TSpinEdit;
    pnum: TSpinEdit;
    czy: TEdit;
    Bevel2: TBevel;
    name: TComboBox;
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure nameClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  sanydtoqxform: Tsanydtoqxform;

implementation
uses dataproc;

{$R *.DFM}
var
  rmtp:array [0..30] of string;
  beforeno:string;

procedure formini;
begin
with sanydtoqxform do
  begin
  man.Checked :=true;
  workunit.text:='';
  zj.text:='';
  id.text:='';
  xj.Checked :=true;
  yj.Value :=500;
  cometime.text:=datetimetostr(now);
  yzday.Value :=3;
  rmnum.Value :=0;
  pnum.Value :=0;
  czy.Text :=curper.code+' '+curper.name ;
  end
end;

procedure gridini;
var
  i:integer;
begin
with sanydtoqxform do
   begin
   i:=1;
   q1.Active :=false;
   q1.sql.clear;
   q1.sql.add('select roomtype,name,bednum from roomtype');
   q1.Prepare;
   q1.open;
   q1.Active :=true;
   ydgrid.RowCount :=q1.RecordCount+1 ;
   while not q1.EOF do
      begin
      rmtp[i]:=q1.fieldbyname('roomtype').asstring;
      ydgrid.cells[0,i]:=q1.fieldbyname('name').asstring;
      ydgrid.Cells [1,i]:=inttostr(q1.fieldbyname('bednum').asinteger);
      ydgrid.cells [2,i]:='';
      q1.Next ;
      i:=i+1;
      end;
   q1.Active :=false;
   end;
end;

procedure datetoctrl;
var
  aa:array [0..1] of string;
  lszj,lsczy:string;
  i:integer;
begin
with sanydtoqxform do
   begin
   aa[0]:='';
   getvalue(aa,'select beforeid from beforein where name='''+trim(name.items[name.itemindex])+'''');
   if length(trim(aa[0]))>0 then
      begin
      beforeno:=trim(aa[0]);
      q1.Active :=false;
      q1.sql.clear;
      q1.sql.add('select * from beforein where beforeid=:pbeforeid');
      q1.ParamByName ('pbeforeid').asstring:=trim(aa[0]);
      q1.Prepare;
      q1.open;
      if q1.FieldByName ('sex').asstring='1' then
         man.Checked :=true
      else
         woman.Checked :=true;
      workunit.Text :=q1.fieldbyname('workunit').asstring;
      id.Text :=q1.fieldbyname('id').asstring;
      if q1.FieldByName('isphone').asboolean then
         phone.Checked :=true;
      if q1.FieldByName('ismoney').asboolean then
         xj.Checked :=true;
      yj.Value :=q1.fieldbyname('yj').asinteger;
      cometime.Text :=datetimetostr(q1.FieldByName('cometime').asdatetime);
      yzday.Value :=q1.fieldbyname('yzday').asinteger;
      rmnum.Value :=q1.fieldbyname('roomnum').asinteger;
      pnum.Value :=q1.fieldbyname('pnum').asinteger;
      lszj:=q1.fieldbyname('zjid').asstring;
      lsczy:=q1.fieldbyname('regid').asstring;
      if length(trim(lszj))>0 then
         begin
         aa[0]:='';
         getvalue(aa,'select name from zj where code='''+trim(lszj)+'''');
         zj.ItemIndex :=zj.Items.IndexOf (trim(aa[0]));
         end;
      aa[0]:='';
      getvalue(aa,'select name from stuff where code='''+trim(lsczy)+'''');
      czy.Text :=lsczy+' '+trim(aa[0]);
      q1.Active :=false;
      q1.sql.clear;
      q1.sql.add('select Roomtype,RoomNum from beforeinmx where beforeid=:pid');
      q1.ParamByName ('pid').asstring:=trim(beforeno);
      q1.Prepare;
      q1.open;
      while not q1.EOF do
         begin
         i:=1;
         while i<ydgrid.rowcount do
            begin
            if trim(rmtp[i])=q1.FieldByName('roomtype').asstring then
               begin
               ydgrid.cells[2,i]:=inttostr(q1.fieldbyname('roomnum').asinteger);
               i:=ydgrid.RowCount;
               end;
            i:=i+1;
            end;
         q1.Next;
         end;
      end;
   end;
end;

procedure Tsanydtoqxform.FormCreate(Sender: TObject);
begin
  shortdateformat:='yyyy-mm-dd';
  formini;
  ydgrid.Cells [0,0]:='       房间类型';
  ydgrid.Cells [1,0]:='       房间床数';
  ydgrid.Cells [2,0]:='       预订数量';
  gridini;
  q1.Active :=false;
  q1.sql.clear;
  q1.sql.add('select name from zj');
  q1.Prepare;
  q1.open;
  while not q1.eof do
    begin
    zj.Items.add(trim(q1.fieldbyname('name').asstring));
    q1.Next;
    end;
  q1.Active :=false;
  comadd(sanydtoqxform.name,1,'select name from beforein where isgroup=0 ');
  datetoctrl;
end;

procedure Tsanydtoqxform.Button2Click(Sender: TObject);
begin
   sanydtoqxform.close;
end;

procedure Tsanydtoqxform.Button1Click(Sender: TObject);
begin
  if length(trim(beforeno))>0 then
     begin
     q1.Active :=false;
     q1.sql.clear;
     q1.sql.add('delete beforein where beforeid=:pid');
     q1.ParamByName ('pid').asstring:=trim(beforeno);
     q1.Prepare;
     q1.ExecSQL ;
     q1.Active :=false;
     q1.sql.Clear;
     q1.sql.add('update room set status=''0'' where roomno in (select roomno from ydroommx where beforeid=:pd)');
     q1.ParamByName ('pd').asstring:=trim(beforeno);
     q1.Prepare;
     q1.ExecSQL ;
     q1.sql.Clear;
     q1.sql.add('delete beforeinmx where beforeid=:pd');
     q1.sql.add('delete ydroommx where beforeid=:pd');
     q1.ParamByName ('pd').asstring:=trim(beforeno);
     q1.Prepare;
     q1.ExecSQL ;
     q1.Active :=false;
     showmessage('散客预订转撤消成功');
     cleargrid(sanydtoqxform.ydgrid,2);
     formini;
     comadd(sanydtoqxform.name,1,'select name from beforein ');
     datetoctrl;
     end
   else
     name.SetFocus ;
end;

procedure Tsanydtoqxform.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  q1.free;
   action:=cafree;
end;

procedure Tsanydtoqxform.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=13 then
     selectnext(activecontrol,true,true);
  if key=27 then
     close;   
end;

procedure Tsanydtoqxform.nameClick(Sender: TObject);
begin
  cleargrid(ydgrid,2);
  datetoctrl;
end;

end.

⌨️ 快捷键说明

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