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

📄 groupydzdj.pas

📁 集成酒店桑拿食管管理的完整程序
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit groupydzdj;

interface

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

type
  TTTydtodjform = class(TForm)
    Button1: TButton;
    Button2: TButton;
    q1: TQuery;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Bevel2: TBevel;
    Label8: TLabel;
    Label9: TLabel;
    labed10: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Bevel4: TBevel;
    Bevel5: TBevel;
    Label15: TLabel;
    Bevel3: TBevel;
    Bevel6: TBevel;
    Bevel7: TBevel;
    country: TEdit;
    workunit: TMaskEdit;
    master: TEdit;
    djtime: TMaskEdit;
    daynum: TSpinEdit;
    yj: TSpinEdit;
    rmnum: TSpinEdit;
    pnum: TSpinEdit;
    sy: TEdit;
    zj: TComboBox;
    GroupBox2: TGroupBox;
    man: TRadioButton;
    woman: TRadioButton;
    ydgrid: TStringGrid;
    rmgrid: TStringGrid;
    rmf: TCheckBox;
    xf: TCheckBox;
    cusgrid: TStringGrid;
    phonef: TCheckBox;
    isreg: TCheckBox;
    ttjc: TMaskEdit;
    BitBtn1: TBitBtn;
    id: TMaskEdit;
    Panel1: TPanel;
    xj: TRadioButton;
    zp: TRadioButton;
    card: TRadioButton;
    cardlist: TComboBox;
    gz: TRadioButton;
    mf: TRadioButton;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    groupname: TComboBox;
    procedure FormCreate(Sender: TObject);
    procedure groupnameClick(Sender: TObject);
    procedure xfClick(Sender: TObject);
    procedure PopupMenu1Popup(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure rmgridKeyPress(Sender: TObject; var Key: Char);
    procedure rmgridExit(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BitBtn1Click(Sender: TObject);
    procedure idExit(Sender: TObject);
    procedure ydgridSetEditText(Sender: TObject; ACol, ARow: Integer;
      const Value: String);
    procedure ydgridExit(Sender: TObject);
    procedure ydgridKeyPress(Sender: TObject; var Key: Char);
    procedure xjClick(Sender: TObject);
    procedure zpClick(Sender: TObject);
    procedure gzClick(Sender: TObject);
    procedure mfClick(Sender: TObject);
    procedure cardClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  TTydtodjform: TTTydtodjform;

implementation
uses dataproc;
{$R *.DFM}
var
  rmtp,custp:array [0..30] of string[6];
  groupno,zjno:string[6];

procedure formini;
begin
with TTydtodjform do
   begin
   sy.text:='';
   country.Text:='';
   ttjc.Text :='';
   workunit.Text :='';
   master.Text :='';
   man.Checked :=true;
   id.Text :='';
   xj.Checked :=true;
   djtime.Text :=datetimetostr(now);
   daynum.Value :=3;
   yj.Value :=1000;
   rmnum.Value :=0;
   pnum.Value :=0;
   rmf.Checked :=false;
   phonef.Checked :=false;
   xf.Checked :=false;
   end;
end;

procedure gridini;
var
  i:integer;
begin
with TTydtodjform do
   begin
   q1.Active :=false;
   q1.sql.clear;
   q1.sql.add('select roomtype,name,bednum from roomtype');
   q1.Prepare;
   q1.open;
   ydgrid.RowCount :=q1.RecordCount+1 ;
   i:=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);
     i:=i+1;
     q1.next;
     end;
   q1.Active :=false;
   q1.sql.clear;
   q1.sql.add('select custype,cusname from custype where parentcode=:pid');
   q1.ParamByName ('pid').asstring:='0';
   q1.Prepare;
   q1.open;
   cusgrid.RowCount :=q1.RecordCount+1 ;
   i:=1;
   while not q1.eof do
     begin
     custp[i]:=q1.fieldbyname('custype').asstring;
     cusgrid.cells[0,i]:=q1.fieldbyname('cusname').asstring;
     cusgrid.cells[1,i]:='自己付';
     i:=i+1;
     q1.next;
     end;
   q1.active:=false;
   end
end;

{procedure wic(k,i:integer;welid,accno:string);
var ss,ls,rq,bx:string;
    bb:Word;
    fd:smallint;
begin
   with TTydtodjform do
   begin
      if not xfk.Checked then exit;
      if Application.MessageBox(pchar('请插入IC卡(房号:'+trim(rmgrid.cells[0,i])+')!'),'房卡信息',49)=2 then exit;;
      ss:='                         ';
      rq:=formatdatetime('yyyy-mm-dd hh:mm:ss',now);
      bx:='001';
      fd:=open_com('');
      if fd=0 then exit;
      ls:=HotelNo+copy('0000000'+trim(rmgrid.Cells[0,k]),length(trim(rmgrid.Cells[0,k])),8)+bx+'00'+formatdatetime('hh',strtodatetime(rq))+newDate(strtodatetime(rq))+'0012'+newdate(strtodatetime(djtime.text)+daynum.value)+'2050000000000';
      bb:=write_ic(fd,$30,1,ls);
      if bb=0 then
      begin
        bb:=CT_close(fd);
        exit;
      end;
      ls:=copy(trim(rmgrid.Cells[0,k])+ss,1,7)+copy(trim(trim(ttjc.Text)+'  '+trim(rmgrid.cells[0,i]))+ss,1,21)
      +copy(formatdatetime('yyyymmddhhmmss',strtodatetime(djtime.text))+ss,1,14)
      +copy(formatdatetime('yyyymmddhhmmss',strtodatetime(djtime.text)+daynum.value)+ss,1,14)+copy(trim(id.Text)+ss,1,19)
      +copy(welid+ss,1,6)+copy(accno+ss,1,6)+'000000000000';
      bb:=write_ic(fd,$70,0,ls);
      bb:=CT_close(fd);
      q1.Active :=false;
      q1.sql.clear;
      q1.sql.add('insert into iccmx values(:pRoomNo,:pName,:pWelid,:paccno,:pcodeno,:ptime)');
      q1.ParamByName ('proomno').asstring:=trim(rmgrid.Cells[0,k]);
      q1.ParamByName ('paccno').asstring:=accno;
      q1.ParamByName ('pwelid').asstring:=welid;
      q1.ParamByName ('pname').asstring:=trim(ttjc.Text)+'  '+trim(rmgrid.cells[0,i]);
    // q1.ParamByName ('page').asinteger:=age.Value;
      q1.ParamByName ('pcodeno').asstring:=xdh('iccmx','','codeno',5);
      q1.ParamByName ('ptime').asstring:=rq;
      q1.Prepare;
      q1.ExecSQL ;
      q1.Active :=false;
   end;
end;  }


procedure datatoctrl;
var
  i:integer;
  aa:array [0..1] of string;
begin
with TTydtodjform do
   begin
   q1.Active :=false;
   q1.sql.clear;
   q1.sql.add('select * from beforein where (isgroup=1) and (groupname=:pname)');
   q1.ParamByName ('pname').asstring:=trim(groupname.items[groupname.itemindex]);
   q1.Prepare;
   q1.open;
   groupno:=q1.fieldbyname('beforeid').asstring;
   sy.Text :=q1.fieldbyname('sy').asstring;
   country.text:=q1.fieldbyname('country').asstring;
   ttjc.text:=q1.fieldbyname('othername').asstring;
   workunit.text:=q1.fieldbyname('workunit').asstring;
   master.Text :=q1.fieldbyname('name').asstring;
   if q1.fieldbyname('sex').asstring='1' then
      man.Checked:=true;
   if q1.fieldbyname('sex').asstring='0' then
      woman.Checked:=true;
   zjno:=q1.fieldbyname('zjid').asstring;
   id.text:=q1.fieldbyname('id').asstring;
   djtime.Text :=datetimetostr(q1.fieldbyname('cometime').asdatetime);
   daynum.value:=q1.fieldbyname('yzday').asinteger;
   yj.Value :=q1.fieldbyname('yj').asinteger;
   rmnum.Value :=q1.fieldbyname('roomnum').asinteger;
   pnum.Value :=q1.fieldbyname('pnum').asinteger;
   q1.Active :=false;
   q1.sql.clear;
   q1.sql.add('select * from beforeinmx where beforeid=:pid');
   q1.ParamByName ('pid').asstring:=groupno;
   q1.Prepare;
   q1.open;
   while not q1.eof do
      begin
      i:=1;
      while i<ydgrid.RowCount do
        begin
        if trim(rmtp[i])=trim(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;
      q1.sql.clear;
      q1.sql.add('select * from ydroommx where beforeid=:pid');
      q1.ParamByName ('pid').asstring:=trim(groupno);
      q1.open;
      i:=1;
      while not q1.EOF do
      begin
        rmgrid.cells[0,i]:=q1.fieldbyname('roomno').asstring;
        rmgrid.cells[1,i]:=q1.fieldbyname('fj').asstring;
        i:=i+1;
        q1.Next;
        BitBtn1.Enabled:=false;
        rmgrid.Enabled:=false;
      end;
   q1.Active :=false;
   getvalue(aa,'select name from zj where code='''+zjno+'''');
   zj.itemindex:=zj.Items.IndexOf (aa[0]);
   if rmnum.Value =0 then
      rmgrid.enabled:=false
   else
      begin
      rmgrid.enabled:=true;
      rmgrid.RowCount :=rmnum.Value+1 ;
      end;
   end
end;

procedure TTTydtodjform.FormCreate(Sender: TObject);
begin
  shortdateformat:='yyyy-mm-dd';
  bitbtn1.Caption :='自'+#13+'动'+#13+'分'+#13+'房';
  ydgrid.Cells [0,0]:='  房间类型';
  ydgrid.Cells [1,0]:='   床位数';
  ydgrid.Cells [2,0]:='  登记数量';
  rmgrid.Cells [0,0]:='  房间';
  rmgrid.Cells [1,0]:='  价格';
  cusgrid.cells[0,0]:='   消费类型';
  cusgrid.cells[1,0]:='支付方式';
  formini;
  gridini;
  comadd(ttydtodjform.groupname ,1,'select groupname from beforein where isgroup=1');
  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;
  cardlist.clear;
  cardlist.items.Add('牡丹卡');
  cardlist.items.add('龙卡');
  cardlist.items.add('长城卡');
  cardlist.itemindex:=0;
  datatoctrl;
end;

procedure TTTydtodjform.groupnameClick(Sender: TObject);
begin
  cleargrid(ydgrid,2);
  cleargrid(rmgrid,0);
  datatoctrl;
end;

procedure TTTydtodjform.xfClick(Sender: TObject);
var
  i:integer;
begin
  i:=1;
  while i<cusgrid.RowCount do
     begin
     if xf.Checked =true then
        cusgrid.Cells [1,i]:='团体付'
     else
        cusgrid.Cells [1,i]:='自己付';
     i:=i+1;
     end;
end;

procedure TTTydtodjform.PopupMenu1Popup(Sender: TObject);
begin
   if trim(cusgrid.Cells [1,cusgrid.Row])='自己付' then
      begin
      n2.Enabled :=false;
      n1.Enabled :=true;
      end;
   if trim(cusgrid.Cells [1,cusgrid.Row])='团体付' then
      begin
      n1.Enabled :=false;
      n2.Enabled :=true;
      end;
end;

procedure TTTydtodjform.N1Click(Sender: TObject);
begin
   cusgrid.cells[1,cusgrid.row]:='团体付';
end;

procedure TTTydtodjform.N2Click(Sender: TObject);
begin
   cusgrid.cells[1,cusgrid.row]:='自己付';
end;

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

procedure TTTydtodjform.rmgridKeyPress(Sender: TObject; var Key: Char);
begin
  if ((key<'0') or (key>'9')) then
     if (key<>char(8)) and (key<>'-') then
        key:=char(0);
end;

procedure TTTydtodjform.rmgridExit(Sender: TObject);
var
  aa:array [0..1] of string;
  i,j:integer;
  ls,ss:string;
begin
  j:=rmgrid.rowcount-1;
  i:=1;
  ss:=' ';
  while i<rmgrid.RowCount do
     begin
     if length(trim(rmgrid.cells[0,i]))>0 then
        begin
        aa[0]:='';
        ls:=trim(rmgrid.cells[0,i]);
        getvalue(aa,'select status from room where roomno='''+ls+'''');
        if trim(aa[0])<>'0' then
           begin
           if j>i then
              j:=i;
           ss:=ss+' '+ls;
           end
        end;
     i:=i+1;
     end;
  if length(trim(ss))>0 then
     begin
     showmessage('房间 '+ss+' 错误');
     rmgrid.SetFocus ;
     rmgrid.row:=j;
     end;
  i:=1;
  while i<rmgrid.rowcount do
     begin
     ls:=rmgrid.Cells [0,i];
     if length(trim(ls))>0 then
        begin
        j:=i+1;
        while j<rmgrid.RowCount do
           begin
           if length(trim(rmgrid.cells[0,j]))>0 then
              if trim(rmgrid.cells[0,j])=ls then
                 begin
                 showmessage('房间 '+ls+' 重号');
                 rmgrid.setfocus;
                 rmgrid.row:=j;
                 exit;

⌨️ 快捷键说明

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