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

📄 ylnewdj.pas

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

interface

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

type
  Tyldjform = class(TForm)
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    q1: TQuery;
    Q2: TQuery;
    Panel1: TPanel;
    Button2: TButton;
    xfrmno: TEdit;
    jylgrid: TStringGrid;
    N2: TMenuItem;
    Edit1: TEdit;
    Edit2: TEdit;
    czy: TLabel;
    rmnogrid: TStringGrid;
    Label8: TLabel;
    Label10: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label1: TLabel;
    man: TRadioButton;
    woman: TRadioButton;
    jzfsname: TComboBox;
    jzfs: TComboBox;
    Panel2: TPanel;
    MaskEdit1: TMaskEdit;
    Panel3: TPanel;
    reg: TMaskEdit;
    zkl: TSpinEdit;
    CheckBox1: TCheckBox;
    yj: TSpinEdit;
    pdj: TEdit;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure PopupMenu1Popup(Sender: TObject);
    procedure rmnogridExit(Sender: TObject);
    procedure mangridDrawCell(Sender: TObject; Col, Row: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure womangrid1DrawCell(Sender: TObject; Col, Row: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure MaskEdit1Exit(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure rmnogridKeyPress(Sender: TObject; var Key: Char);
    procedure rmnogridSelectCell(Sender: TObject; Col, Row: Integer;
      var CanSelect: Boolean);
    procedure rmnogridSetEditText(Sender: TObject; ACol, ARow: Integer;
      const Value: String);
    procedure jzfsnameChange(Sender: TObject);
    procedure jzfsnameKeyPress(Sender: TObject; var Key: Char);
    procedure grid1DblClick(Sender: TObject);
    procedure rmnogridDblClick(Sender: TObject);
    procedure pdjKeyPress(Sender: TObject; var Key: Char);
    procedure rmnogridKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure rmnogridKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure zklChange(Sender: TObject);
    procedure jylgridDrawCell(Sender: TObject; Col, Row: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure FormShow(Sender: TObject);
    procedure hykhKeyPress(Sender: TObject; var Key: Char);
    procedure jylgridMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  yldjform: Tyldjform;

implementation
uses dataproc, roomhsan, hf,xgftyqjz,icdate, bkzl, qxrz, newdj;
{$R *.DFM}
var
     szacc:string[6];
//     addyj:real;
     dehdno,desex,dewel:string;
     cfhd,rmno,curroomtype:string;
     //tt:tstringgrid;
     lsroom:array [0..5,0..12] of string;
     llssroom:array [0..5,0..8] of string;
     hintroom:array [0..5,0..12] of string;
     hintroom2:array [0..5,0..8] of string;
     lsstatusarr:array [0..5,0..12] of string[1];
     llssstatusarr:array [0..5,0..8] of string [1];
     //llssroomnum:array [0..4,0..6] of integer;
     currow,zdrmnum,roomnum,mannum,womannum,jylnum:integer;
     lsmd:boolean;
     rmtypearr:array[1..2,0..12] of string;

procedure roomini;
var  ls:string;
  i:integer;
begin
with yldjform do
   begin
   edit1.Text:='';
   q2.Active :=false;
   q2.sql.clear;
   q2.sql.add('select * from jyl');
//   q1.ParamByName ('pgridno').asinteger:=1;
   q2.Prepare;
   q2.open;
   i:=1;
   while  not  q2.EOF do
      begin
        jylgrid.Cells[i,0]:=q2.fieldbyname('RoomNo').asstring;
        jylgrid.Cells[i,1]:=q2.fieldbyname('status').asstring;
        i:=i+1;
        q2.Next;
      end;
   jylgrid.ColCount:=i+1;

  end;
end;

procedure xggrid(grid1: TStringGrid);
var i,j:integer;
begin

   for i:=0 to grid1.RowCount-1 do
       for j:=0 to grid1.ColCount-1 do
           begin
             grid1.row:=grid1.RowCount-1-i;
             grid1.col:=grid1.ColCount-1-j;
           end;
end;
procedure init;
begin
  with yldjform do
  begin
    qkgrid(rmnogrid);
    rmnogrid.Cells [0,0]:='手号';
    rmnogrid.Cells [1,0]:='钟点';
    rmnogrid.Cells [2,0]:='人数';
    rmnogrid.Cells [3,0]:='性别';
    rmnogrid.Cells [4,0]:='价格';
    rmnogrid.Cells [5,0]:=' 鞋牌号';
    rmnogrid.Cells [6,0]:='姓名';
    rmnogrid.Cells [7,0]:='周转';
    rmnogrid.Cells [8,0]:='年龄';
    rmnogrid.Cells [9,0]:='证件名';
    rmnogrid.Cells [10,0]:='   证件号';
    rmnogrid.Cells [11,0]:='    工作单位';
    jylgrid.Cells[0,0]:='娱乐';
    dehdno:='';
    desex:='';
    dewel:='';
    maskedit1.Text :=datetimetostr(now);
    zkl.Enabled:=false;
    yj.value:=0; CheckBox1.Checked:=false;
    pdj.text:='';
    czy.Caption:='';
    zkl.Value:=100;
    roomini;
    jzfsname.ItemIndex:=0;
    jzfsname.Text:=jzfsname.Items[0];
 end;
end ;

procedure Tyldjform.FormCreate(Sender: TObject);
var i,j:integer;
   arr:array[1..50] of integer;
   ls:string;
begin
  for j:=1 to 50 do arr[j]:=0;
  for i:=0 to ComponentCount-1 do
  if (Components[i] is TPanel)and(Components[i].tag<>0) then
  begin
     (Components[i] as Tpanel).Caption:='';
      arr[Components[i].tag]:=i;
  end;

  q1.Active :=false;
  q1.sql.Clear ;
  q1.sql.add('select * from mode');
  q1.Prepare;
  q1.open;
  jzfsname.Items.Clear;
  jzfs.Items.Clear;

  while not q1.Eof do
  begin
    jzfs.Items.Add(q1.FieldByName('Code').asstring);
    jzfsname.Items.Add(q1.FieldByName('name').asstring);
    q1.Next;
  end;
  q1.Close;
  q1.UnPrepare;
  jzfs.ItemIndex:=0;
  jzfsname.ItemIndex:=0;

  roomnum:=0;
  zdrmnum:=0;
  mannum:=0;
  womannum:=0;
  reg.Text:=curper.name;
  shortdateformat:='yyyy-MM-dd';
  maskedit1.Text :=datetimetostr(now);
  init;
end;



procedure Tyldjform.N1Click(Sender: TObject);
var
  i:integer;
  aa:array[0..4] of string;
begin
    for i:=1 to rmnogrid.rowcount-1 do
    begin
       if length(trim(rmnogrid.Cells [0,i]))=0 then
       begin
         rmnogrid.cells[0,i]:=rmno;
         if ((activecontrol as tstringgrid)=jylgrid) then
            begin
               rmnogrid.cells[4,i]:='0';
               rmnogrid.cells[15,i]:='3';
               rmnogrid.cells[7,i]:='12';
               rmnogrid.cells[16,i]:='0';
               rmnogrid.cells[17,i]:='0';
               rmnogrid.cells[3,i]:='娱';
               rmnogrid.cells[18,i]:='0';
               rmnogrid.cells[19,i]:='100';
            end;
         yj.Value:=yj.Value+strtoint(rmnogrid.cells[18,i]);
         break;
       end;
    end;
end;

procedure Tyldjform.PopupMenu1Popup(Sender: TObject);
var
  ls: string;
  i :integer;
begin
//  tt:=tstringgrid(activecontrol);
     n1.Caption:='登记'+rmno+'散座';
     rmno:=copy(rmno,1,3);
  popupmenu1.items[0].enabled:=false;
//  popupmenu1.items[1].enabled:=false;
  if ls='0' then
  begin
      for i:=1 to rmnogrid.rowcount-1 do
        if trim(rmnogrid.Cells [0,i])=trim(rmno)  then
           break;
      if i>rmnogrid.rowcount-1 then
         popupmenu1.items[0].enabled:=true;
  end;
end;

procedure Tyldjform.rmnogridExit(Sender: TObject);
var
  aa:array [0..1] of string;
  i,j:integer;
  ss:string;
begin
  j:=rmnogrid.rowcount-1;
  ss:='';
  for i:=1 to rmnogrid.rowcount-1 do
     if  (length(trim(rmnogrid.cells[0,i]))<>0) then
     begin
       if (length(trim(rmnogrid.cells[1,i]))<>0) then
       begin
          aa[0]:='';
          getvalue(aa,'select status from room where roomno='''+trim(rmnogrid.cells[0,i])+'''');
          if ((aa[0]<>'0')and(aa[0]<>'5')) or (aa[0]='') then
             begin
               if j>i then  j:=i   ;
               ss:=ss+rmnogrid.cells[0,i]+'  ';
             end;
       end;
       if (length(trim(rmnogrid.cells[1,i]))=0) and (trim(rmnogrid.cells[15,i])='1') then
       begin
          aa[0]:='';
          getvalue(aa,'select status from mansan where roomno='''+trim(rmnogrid.cells[0,i])+'''');
          if (aa[0]<>'0') or (aa[0]='') then
             begin
               if j>i then  j:=i   ;
               ss:=ss+rmnogrid.cells[0,i]+'  ';
             end
       end;
       if (length(trim(rmnogrid.cells[1,i]))=0) and (trim(rmnogrid.cells[15,i])='0') then
       begin
          aa[0]:='';
          getvalue(aa,'select status from womansan where roomno='''+trim(rmnogrid.cells[0,i])+'''');
          if (aa[0]<>'0') or (aa[0]='') then
             begin
               if j>i then  j:=i   ;
               ss:=ss+rmnogrid.cells[0,i]+'  ';
             end
       end;
     end;
  if trim(ss)<>'' then
    begin
       showmessage('手号 '+ss+' 非法!');
       rmnogrid.row:=j;
       rmnogrid.setfocus;
    end;
  //  yj.setfocus;
{  for i:=1 to rmnogrid.rowcount-1 do
     begin
//     if length(trim(rmnogrid.cells[1,i]))<>0 then
//        rmnogrid.cells[3,i]:='';
     if length(trim(rmnogrid.cells[3,i]))<>0 then
        rmnogrid.cells[1,i]:='';
     end; }

{  for i:=1 to rmnogrid.rowcount-1 do
     begin
     if length(trim(rmnogrid.cells[0,i]))=0 then
        rmnogrid.cells[2,i]:=''
     else
        if length(trim(rmnogrid.cells[2,i]))=0 then
           begin
           aa[0]:='';
           getvalue(aa,'select roomtype from room where roomno='''+trim(rmnogrid.cells[0,i])+'''');
           if length(trim(aa[0]))>0 then
              begin
              bb[0]:='';
              getvalue(bb,'select bednum from roomtype where roomtype='''+trim(aa[0])+'''');
              end;
           rmnogrid.cells[2,i]:=bb[0];
           end;
     end;  }
end;

procedure Tyldjform.mangridDrawCell(Sender: TObject; Col, Row: Integer;
  Rect: TRect; State: TGridDrawState);
var
     bb:Tbrush;
     tt:trect;
begin
end;

procedure Tyldjform.womangrid1DrawCell(Sender: TObject; Col, Row: Integer;
  Rect: TRect; State: TGridDrawState);
var
     bb:Tbrush;
     tt:trect;
begin
    if col=0 then
    exit;
end;

procedure Tyldjform.MaskEdit1Exit(Sender: TObject);
var
  rq:tdatetime;
begin
  try
     rq:=strtodatetime(maskedit1.text);
  except
     showmessage('时间不对');
     maskedit1.SetFocus ;
  end;
end;

Function checkgrid(tg:tstringgrid):boolean;
var
   i: integer;
begin
   checkgrid:=false;
   for i:=1 to tg.rowcount-1 do
       if length(trim(tg.cells[0,i]))>0 then
       begin
         checkgrid:=true;
         break;
       end;
end;

procedure addman;
var
   depo:double;
   i:integer;
   ptab,welno:string;
   aa: array [0..2] of string;
begin
 with yldjform do
  begin
    depo:=0;
    i:=1;
    while trim(rmnogrid.Cells[0,i])<>''  DO
    begin
      welno:=getnewcode('welid');
//      welno:=xdh('nowin','lsnowin','welid',6);
      if i=1 then
      begin
        q1.Active :=false;
        q1.sql.clear;
        q1.sql.add('insert into account values(:paccno,:pdeposit,0)');
        q1.ParamByName('pdeposit').asfloat:=yj.value;
        q1.ParamByName('paccno').asstring:=szacc;
        q1.prepare;
        q1.ExecSQL ;
        q1.Active :=false;
        //************database is deposit*****************//
        //************************************************//
      end;
      q1.Active :=false;
      q1.sql.Clear ;
      q1.sql.add('insert into nowin(roomno,handno,accno,Welid,num,roomprice,truntime,changeroom,isbj,sex,istime,ismd,isxj,iszp,iscard,isgz,gzno,acctime,isleft,money,csmoney,begtime,regid,djcode,sdjcode,guest,JzFs,czy,zkl,ismff,ismxf,xcode,pzr)');
      q1.sql.add(' values(:proomno,:phandno,:paccno,:PWelid,:pnum,:roomprice,:truntime,:pchangeroom,:pisbj,:psex,:pistime,:pismd,:pisxj,:piszp,:piscard,:pisgz,:pgzno,:pacctime,:pisleft,:pmoney,:pcsmoney,:pbegintime,:pregid,:pdjcode,:psdjcode,');
      q1.sql.add(':pguest,:pJzFs,:pczy,:pzkl,:pismff,:pismxf,:pxcode,:ppzr)');
      q1.sql.add('insert into GuestMx(roomno,Welid,Name,Sex,Age,Zj,zjid,WorkUnit,accno,groupid)');
      q1.sql.add(' values(:proomno,:PWelid,:pname,:pxb,:page,:pzj,:pzjid,:pwork,:paccno,'''')');
      q1.ParamByName ('pxb').asstring:=trim(rmnogrid.Cells[3,i]);
      q1.ParamByName ('pname').asstring:=trim(rmnogrid.Cells[6,i]);
      q1.ParamByName ('truntime').asstring:=trim(rmnogrid.Cells[7,i]);
      q1.ParamByName ('roomprice').asstring:=trim(rmnogrid.Cells[4,i]);
      q1.ParamByName ('page').asstring:=trim(rmnogrid.Cells[8,i]);
      q1.ParamByName ('pzj').asstring:=trim(rmnogrid.Cells[9,i]);
      q1.ParamByName ('pzjid').asstring:=trim(rmnogrid.Cells[10,i]);
      q1.ParamByName ('pwork').asstring:=trim(rmnogrid.Cells[11,i]);

⌨️ 快捷键说明

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