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

📄 u_web_userm.pas

📁 以前写的一个利用P2P 技术的一个通讯的例子。里面用到了 DBISAM 、INDY 控件。
💻 PAS
📖 第 1 页 / 共 5 页
字号:
                     end;
                  next;
               end;
            close;
         end;
end;

procedure TF_WEB_USERM.display_4;
var
   i: integer;
   s: string; //
begin
   i := strtoint(getpartstr(analy_str('type', m_str)));
   with sg_jl do
      begin
         case i of
            1, 2:
               begin
                  defaultRowHeight := 64;
                  RowHeights[0] := 20;
               end;
            else
               begin
                  defaultRowHeight := 22;
                  RowHeights[0] := 20;
               end;
         end;
         Options := Options + gridop;
         selectioncolor := clinfobk;
         selectiontextcolor := clmaroon;
         fixedcols := 0;
         font.Color := clnavy;
         font.Style := [fsBold];
      end;
   case i of
      0: //特殊服务
         with f_reca_dm.qy_wangy do
            begin
               case m_lang of
                  1: s := '日期*12*特殊服务*42*特服数量*12*减免金额*12*工号*6*';
                  2: s := 'DATE*12*SP.ENQ*42*QUANTITY*12*DISC AMT*12*OPNO*6*';
               end;
               title_sg_wy(sg_jl, s, false);
               close;
               sql.Clear;
               sql.Add('select a.date,b.name,tfsl,a.money,a.opno from tsfwdyb a,svrcode b where a.room=:vroom and folio_main=:vfolio_m and a.svrcode=b.svrcode and datediff(dd,a.date,:vdate)<=0 order by a.date,a.svrcode');
               parambyname('vdate').asdatetime := strtodate(gstr_pubdate);
               parambyname('vroom').AsString := analy_str('room', m_str);
               parambyname('vfolio_m').AsString := analy_str('folio_m', m_str);
               open;
               while not eof do
                  with sg_jl do
                     begin
                        str_grid_wy(sg_jl, arow);
                        cells[0, arow] := datetostr(fields.fields[0].asdatetime);
                        cells[colcount, arow] := datetostr(fields.fields[0].asdatetime);
                        if (arow > 0) and (cells[colcount, arow] = cells[colcount, arow - 1]) then
                           cells[0, arow] := '';
                        cells[1, arow] := fieldbyname('name').asstring;
                        cells[2, arow] := iif(fieldbyname('tfsl').asinteger = 0, '', fieldbyname('tfsl').asstring);
                        s := currtostrf(fieldbyname('money').ascurrency, fffixed, gint_dec);
                        cells[3, arow] := iif(comp_zero(s), '', s);
                        cells[4, arow] := fieldbyname('opno').asstring;
                        next;
                     end;
               close;
            end;
      1: //重要信息
         with f_reca_dm.qy_wangy do
            begin
               case m_lang of
                  1: s := '日期*18*重要信息*64*工号*6*';
                  2: s := 'DATE*18*IMPT INFO*64*OPNO*6*';
               end;
               title_sg_wy(sg_jl, s, false);
               close;
               sql.Clear;
               sql.Add('select date,special,opno from specdyb where room=:vroom and folio_main=:vfolio_m and datediff(dd,date,:vdate)<=0 order by date');
               parambyname('vdate').asdatetime := strtodate(gstr_pubdate);
               parambyname('vroom').AsString := analy_str('room', m_str);
               parambyname('vfolio_m').AsString := analy_str('folio_m', m_str);
               open;
               while not eof do
                  with sg_jl do
                     begin
                        str_grid_wy(sg_jl, arow);
                        cells[0, arow] := datetostr(fields.fields[0].asdatetime, 1);
                        cells[colcount, arow] := datetostr(fields.fields[0].asdatetime, 1);
                        if (arow > 0) and (cells[colcount, arow] = cells[colcount, arow - 1]) then
                           cells[0, arow] := '';
                        cells[1, arow] := fieldbyname('special').asstring;
                        cells[2, arow] := fieldbyname('opno').asstring;
                        next;
                     end;
               close;
            end;
      2: //访客留言
         with f_reca_dm.qy_wangy do
            begin
               case m_lang of
                  1: s := '日期*18*留言类型*12*访客姓名*16*留言内容*60*工号*6*';
                  2: s := 'DATE*18*MSG TYPE*12*VISITOR*16*MESSAGE*60*OPNO*6*';
               end;
               title_sg_wy(sg_jl, s, false);
               close;
               sql.Clear;
               sql.Add('select date,flag,fkname,remark,opno from daymsg where room=:vroom and folio_main=:vfolio_m and datediff(dd,msgrmk,:vdate)<=0 and flag<2 order by msgrmk,flag');
               parambyname('vdate').asdatetime := strtodate(gstr_pubdate);
               parambyname('vroom').AsString := analy_str('room', m_str);
               parambyname('vfolio_m').AsString := analy_str('folio_m', m_str);
               open;
               while not eof do
                  with sg_jl do
                     begin
                        str_grid_wy(sg_jl, arow);
                        cells[0, arow] := datetostr(fields.fields[0].asdatetime, 1);
                        cells[colcount, arow] := datetostr(fields.fields[0].asdatetime, 1);
                        if (arow > 0) and (cells[colcount, arow] = cells[colcount, arow - 1]) then
                           cells[0, arow] := '';
                        cells[1, arow] := iif(fieldbyname('flag').asinteger = 0, zk_msg, fk_msg);
                        cells[2, arow] := fieldbyname('fkname').asstring;
                        cells[3, arow] := fieldbyname('remark').asstring;
                        cells[4, arow] := fieldbyname('opno').asstring;
                        next;
                     end;
               close;
            end;
      7: //超支客房
         with f_reca_dm.qy_wangy do
            begin
               case m_lang of
                  1: s := '账号*6*房号*6*FOLIO*12*流水号*12*费用名称*12*UN*4*记帐日期*12*金  额*10*服务费*8*备  注*16*发生日期*12*结帐*12*流水号*12*班次*6*修改*6*部门*6*工号*6*';
                  2: s := 'BILL NO*6*ROOM*6*FOLIO*12*FLOW NO*12*COST NAME*12*UN*4*DATE*12*AMOUNT*10*SVR.CHG*8*REMARK*16*TIME*12*PAID*12*NO*12*SHFT*6*MODI*6*DEP*6*OPNO*6*';
               end;
               title_sg_wy(sg_jl, s, false);
               close;
               sql.Clear;
               s := 'select a.room,a.room_o,a.folio,a.flowno,aa = a.costno+ ''-''+b.name,a.fscs,a.date,a.money,a.smoney,a.remark,a.date_o,a.ps,a.flowno,a.genflag,a.modflag,a.depno,a.opno from gbills a,costno b where a.costno = b.costno';
               s := s + ' and room=:vroom and folio_main=:vfolio_m and isnull(a.pt,0)=0 order by a.room,a.room_o,a.date';
               sql.Add(s);
               parambyname('vroom').AsString := analy_str('room', m_str);
               parambyname('vfolio_m').AsString := analy_str('folio_m', m_str);
               open;
               while not eof do
                  with sg_jl do
                     begin
                        str_grid_wy(sg_jl, arow);
                        for i := 0 to colcount - 1 do
                           case i of
                              6, 10: cells[i, arow] := datetostr(fields.fields[i].asdatetime);
                              7, 8: cells[i, arow] := currtostrf(fields.fields[i].ascurrency, fffixed, gint_dec);
                              11: cells[i, arow] := pstomc(fieldbyname('ps').asinteger);
                              13: cells[i, arow] := iif(fieldbyname('genflag').asinteger = 0, this_gen, fieldbyname('genflag').asstring);
                              14: cells[i, arow] := iif(fieldbyname('modflag').asinteger = 0, '', 'MOD');
                              else
                                 cells[i, arow] := fields.fields[i].asstring;
                           end;
                        next;
                     end;
               close;
            end;
      8, 9, 10: //8: 预退排房    9: //预退排房
         with f_reca_dm.qy_wangy do
            begin
               case m_lang of
                  1: s := 'CHK IN*8*VIP*6*预订流水号*11*房号*6*房类*8*客房姓名*24*房态*6*人数*6*折扣类型*14*折扣*6*房租*8*总消费*10*协议名称*24*入住时间*16*离店时间*16*备  注*36*工号*6*主 FOLIO*12*';
                  2: s := 'CHK IN*8*VIP*6*RSVNNO*11*ROOM*6*RM CLS*8*NAME*24*RM STS*6*PAX*6*DISC TYPE*14*DISC*6*RATE*8*EXPENSE*10*COPR NAME*24*ARR DATE*16*DEP DATE*16*REMARK*36*OPNO*6*MAIN FOLIO*12*';
               end;
               title_sg_wy(sg_jl, s, false);
               close;
               sql.Clear;
               if i = 8 then
                  begin
                     s := 'select 0,a.vip,a.rsvnno,room,rclass,b.name,b.rst,b.pax,dtype,disc,rate,gross=0,a.no,a.adate,a.ddate,remark,a.opno,folio_main,a.c_name';
                     s := s + ' from rsvns a,blkrm b where a.rsvnno=b.rsvnno and a.recno=b.recno and room=:vroom and datediff(dd,b.adate,:vdate)=0 and b.room>''000000'' and isnull(b.show,0)=0';
                     s := s + 'union select 1,vip,rsvnno,a.room,rclass,name,rst,pax,dtype,disc,rate,gross,no,adate,ddate,remark,opno,folio_main,c_name';
                     s := s + ' from roomno a,roomno_2 b,roomno_1 c where a.room=b.room and a.room=c.room and a.room=:vroom and a.rst>4';
                     sql.Add(s);
                     parambyname('vdate').Asdatetime := strtodate(gstr_pubdate);
                     parambyname('vroom').AsString := analy_str('room', m_str);
                  end
               else
                  if i = 9 then
                  begin
                     s := 'select 0,a.vip,a.rsvnno,room,rclass,b.name,b.rst,b.pax,dtype,disc,rate,gross=0,a.no,a.adate,a.ddate,remark,a.opno,folio_main,a.c_name';
                     s := s + ' from rsvns a,blkrm b where a.rsvnno=b.rsvnno and a.recno=b.recno and folio_main=:vfolio_m and b.room>''000000'' and isnull(b.show,0)=0';
                     s := s + 'union select 1,vip,rsvnno,a.room,rclass,name,rst,pax,dtype,disc,rate,gross,no,adate,ddate,remark,opno,folio_main,c_name';
                     s := s + ' from roomno a,roomno_2 b,roomno_1 c where a.room=b.room and a.room=c.room and folio_main=:vfolio_m and a.rst>4';
                     sql.Add(s);
                     parambyname('vfolio_m').AsString := analy_str('folio_m', m_str);
                  end
               else
                  if i = 10 then
                  begin
                     s := 'select 0,a.vip,a.rsvnno,room,rclass,b.name,b.rst,b.pax,dtype,disc,rate,gross=0,a.no,a.adate,a.ddate,remark,a.opno,folio_main,a.c_name';
                     s := s + ' from rsvns a,blkrm b where a.rsvnno=b.rsvnno and a.recno=b.recno and folio_main=:vfolio_m and b.room>''000000'' and isnull(b.show,0)=0';
                     s := s + 'union select 1,vip,rsvnno,a.room,rclass,name,rst,pax,dtype,disc,rate,gross,no,adate,ddate,remark,opno,folio_main,c_name';
                     s := s + ' from roomno a,roomno_2 b,roomno_1 c where a.room=b.room and a.room=c.room and folio_main=:vfolio_m and a.rst>4';
                     s := s + 'union select 2,vip,rsvnno,a.room,rclass,name,b.rst,pax,dtype,disc,rate,gross,no,adate,ddate,remark,opno,b.folio_main,c_name';
                     s := s + ' from roomno a,dayout_2 b,dayout c where a.room=b.room and b.room=c.room and b.folio_main=c.folio_main and b.folio_main=:vfolio_m';
                     sql.Add(s);
                     parambyname('vfolio_m').AsString := analy_str('folio_m', m_str);
                  end;

               open;
               while not eof do
                  with sg_jl do
                     begin
                        str_grid_wy(sg_jl, arow);
                        for i := 0 to colcount - 1 do
                           case i of
                              0:
                                 case fields.fields[i].asinteger of
                                    0: cells[i, arow] := 'BLOCK';
                                    1: cells[i, arow] := 'CHKIN';
                                    2: cells[i, arow] := 'CHK OUT';
                                 end;
                              1: cells[i, arow] := vip_list[fieldbyname('vip').asinteger];
                              4: cells[i, arow] := trans_lst_wy(fieldbyname('rclass').asinteger, rcls_list, true);
                              6: cells[i, arow] := rst_name(fieldbyname('rst').asinteger);
                              8: cells[i, arow] := dtype_list[fields.fields[i].asinteger];
                              9..11:
                                 cells[i, arow] := currtostrf(fields.Fields[i].ascurrency, fffixed, gint_dec);
                              12: cells[i, arow] := fieldbyname('c_name').asstring; //fields.Fields[i].asstring + ' - ' +
                              13, 14:
                                 cells[i, arow] := datetostr(fields.Fields[i].asdatetime, 1);
                              else
                                 cells[i, arow] := fields.fields[i].asstring;
                           end;
                        next;
                     end;
               close;
            end;
      11: //15:  他房主付
         with f_reca_dm.qy_wangy do
            begin
               case m_lang of
                  1: s := 'VIP*6*房号*6*房类*6*客房姓名*22*房态*6*人数*5*协议名称*22*.客欠总额*10*.预付按金*10*.抵押金额*10*.总消费*10*备  注*36*入住时间*15*离店日期*11*折扣类型*14*折扣*6*房租*8*抵押卡号*15*工号*6*主 FOLIO*12*预订流水号*12*';
                  2: s := 'VIP*6*ROOM*6*RM CLS*6*NAME*22*RM STS*6*PAX*5*CORP NAME*22*.BALANCE*10*.DEPOSIT*10*.PLEDGE*10*.CONSUME*10*REMARK*36*ARR DATE*15*DEP DATE*11*DISC TYPE*14*DISC*6*RATE*8*CREDIT NO*15*OPNO*6*MAIN FOLIO*12*RSVNNO*12*';
               end;
               title_sg_wy(sg_jl, s, false);
               //m_bcalcol := true;
               close;
               sql.Clear;
               s := 'select vip,a.room,rclass,name,rst,pax,no,cost,money,adv,gross,remark,b.date,ddate,dtype,disc,rate,advname,opno,folio_main,rsvnno,c_name';
               s := s + ' from roomno a,roomno_2 b,roomno_1 c where a.room=b.room and a.room=c.room and b.master=:vmast and a.rst>4';
               sql.Add(s);
               parambyname('vmast').asstring := analy_str('mast', m_str);
               open;
               while not eof do
                  with sg_jl do
                     begin
                        str_grid_wy(sg_jl, arow);
                        for i := 0 to colcount - 1 do
                           case i of
                              0: cells[i, arow] := vip_list[fieldbyname('vip').asinteger];
                              2: cells[i, arow] := trans_lst_wy(fieldbyname('rclass').asinteger, rcls_list, true);
                              4: cells[i, arow] := rst_name(fieldbyname('rst').asinteger);
                              6: cells[i, arow] := fieldbyname('c_name').asstring; //fields.Fields[i].asstring + ' - ' +
                              7..10, 15, 16:
                                 cells[i, arow] := currtostrf(fields.Fields[i].ascurrency, fffixed, gint_dec);
                              12, 13:
                                 cells[i, arow] := datetostr(fields.Fields[i].a

⌨️ 快捷键说明

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