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.