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.