00001  def new global shared var prog-started as log.
00002  def new global shared var u-name as char.
00003  
00004  def shared var screen-title as char.
00005  
00006  def shared var total-floor-no as int init 4.
00007  def shared var room-types as char extent 5.
00008  
00009  def shared var res-state as char extent 4.
00010  def shared var res-state-ch as char extent 4.
00011  
00012  def shared var res-state-placed as int init 1.
00013  def shared var res-state-canceled as int init 2.
00014  def shared var res-state-checked-in as int init 3.
00015  def shared var res-state-checked-out as int init 4.
00016  
00017  prog-started = true. 
00018  def var h-time as char.
00019  
00020  form u-name view-as text
00021       screen-title view-as text
00022       h-time view-as text
00023       with frame f-main-header size 80 by 1 no-box no-underline no-labels at row 1 col 1.
00024   
00025  
00026  screen-title = "Menu".
00027  
00028  if u-name = ? or u-name = "" then do:
00029     message "You are not logged in - access denied" view-as alert-box.
00030     quit.
00031  end.
00032  
00033  h-time = string(now, "99/99/99 HH:MM:SS").
00034  h-time = substring(h-time, 10).
00035  
00036  do with frame f-main-header:
00037     u-name:column = 1.
00038     screen-title:column = u-name:column + length(u-name) + (frame f-main-header:width-chars - length(u-name) - length(screen-title) - length(h-time)) / 2.
00039     h-time:column = frame f-main-header:width-chars - length(h-time).
00040     screen-title:format = "x(" + string(length(screen-title)) + ")".
00041  end.
00042  
00043  display u-name screen-title h-time with frame f-main-header.
00044   
00045  
00046  def var menu-items as char extent 6.
00047  def var menu-item as char.
00048  def var progs as char extent 6.
00049  
00050  menu-items[1] = "R Rooms".
00051  menu-items[2] = "T Rates".
00052  menu-items[3] = "G Guests".
00053  menu-items[4] = "S Reservations".
00054  menu-items[5] = "K Check out".
00055  menu-items[6] = "X Exit".
00056  progs[1] = "rooms.p".
00057  progs[2] = "rates.p".
00058  progs[3] = "guests.p".
00059  progs[4] = "reservations.p".
00060  progs[5] = "checkout.p".
00061  progs[6] = "exit.p".
00062  
00063  display menu-items[1] format "x(30)" skip
00064          menu-items[2] format "x(30)" skip
00065          menu-items[3] format "x(30)" skip
00066          menu-items[4] format "x(30)" skip
00067          menu-items[5] format "x(30)" skip
00068          menu-items[6] format "x(30)"
00069          with frame f-menu no-labels centered title "Choose an Option".
00070  
00071  on "R", "r" anywhere do:
00072     publish "push-program" ("rooms.p").
00073     stop.
00074  end.
00075  
00076  on "T", "t" of frame f-menu do:
00077     publish "push-program" ("rates.p").
00078     stop.
00079  end.
00080  
00081  on "G", "g" of frame f-menu do:
00082     publish "push-program" ("guests.p").
00083     stop.
00084  end.
00085  
00086  on "S", "s" of frame f-menu do:
00087     publish "push-program" ("reservations.p").
00088     stop.
00089  end.
00090  
00091  on "K", "k" of frame f-menu do:
00092     publish "push-program" ("checkout.p").
00093     stop.
00094  end.
00095  
00096  on "X", "x" anywhere do:
00097     publish "push-program" ("exit.p").
00098     stop.
00099  end.
00100  
00101  proc:
00102  repeat on error undo, leave
00103         on stop undo, leave
00104         on endkey undo, leave:
00105     choose field menu-items help "Select an option"
00106            auto-return
00107            go-on("f5")
00108            with frame f-menu.
00109     
00110     if frame-index = ? then message "No option selected." view-as alert-box.
00111     else do:
00112        publish "push-program" (progs[frame-index]).
00113        leave proc.
00114     end.
00115  end.