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 00019 screen-title = "Add Rooms". 00020 00021 def shared var current-floor-no as int. 00022 def button btn-ok label "Add". 00023 def button btn-cancel label "Cancel". 00024 00025 def var start-no as int. 00026 def var end-no as int. 00027 def var room-type as int. 00028 00029 form current-floor-no label "Enter floor no" at row 1 col 20 colon-aligned 00030 skip 00031 start-no label "First room" at row 2 col 20 colon-aligned validate (start-no >= 1 and start-no <= 99, "Room number is between 1 and 99") 00032 skip 00033 end-no label "Last room" at row 3 col 20 colon-aligned 00034 validate (end-no >= 1 and end-no <= 99, "Room number is between 1 and 99") 00035 skip 00036 room-type view-as combo-box inner-lines 5 label "Room type" at row 4 col 20 colon-aligned 00037 skip 00038 btn-ok 00039 btn-cancel 00040 with frame f1 side-labels overlay centered view-as dialog-box 00041 cancel-button btn-cancel default-button btn-ok. 00042 00043 run set-room-types-combo (input room-type:handle in frame f1). 00044 00045 on "choose" of btn-ok in frame f1 do: 00046 assign start-no end-no room-type current-floor-no. 00047 if start-no > end-no then do: 00048 message "Start number must be less than end room number" view-as alert-box. 00049 return. 00050 end. 00051 00052 def var r-no as int. 00053 def var s-no as int. 00054 def var e-no as int. 00055 00056 s-no = current-floor-no * 100 + start-no. 00057 e-no = current-floor-no * 100 + end-no. 00058 def var a as int. 00059 message "Adding rooms from" s-no "to" e-no. 00060 00061 do r-no = s-no to e-no transaction: 00062 00063 find room where room.floor = current-floor-no and room.room-number = r-no no-lock no-error. 00064 if avail room then do: 00065 status default "Skipping room " + string(r-no). 00066 readkey pause 1. 00067 next. 00068 end. 00069 00070 status default "Adding room" + string(r-no). 00071 create room. 00072 room.floor = current-floor-no. 00073 room.room-number = r-no. 00074 room.type-of-room = room-type. 00075 00076 a = a + 1. 00077 end. 00078 00079 message "Added " + string(a) + " rooms". 00080 pause. 00081 00082 status default. 00083 apply "go" to frame f1. 00084 end. 00085 00086 display current-floor-no with frame f1. 00087 enable all with frame f1. 00088 wait-for go of frame f1.