| **Navigation:**  [[introduction.htm|Language Reference]] > 13 - Built-in Functions >====== INCOMPLETE (return empty REQ control) ====== | [[imagesavethumbnail.htm|{{btn_prev_n.gif|Previous page}}]][[introduction.htm|{{btn_home_n.gif|Return to chapter overview}}]][[inlist return entry in list .htm|{{btn_next_n.gif|Next page}}]] | | || {{newc7.jpg|NewC7.jpg}} **INCOMPLETE( )** {{blk2blue.jpg|blk2blue.jpg}} The **INCOMPLETE** procedure returns the field number of the first control with the REQ attribute in the currently active window that has been left zero or blank, and gives input focus to that control. If all REQ controls in the window contain data, INCOMPLETE returns zero (0) and leaves input focus on the control that already had it. The INCOMPLETE procedure duplicates the action performed by the REQ attribute on a BUTTON control. You must remove the REQ attribute from the button for the INCOMPLETE() code to run, otherwise RTL will select the first REQ field and the EVENT:Accepted will not occur. | **Return Data Type:** | SIGNED | **Example:** **CODE** ** OPEN(Window)** ** ACCEPT** **  CASE ACCEPTED()** **  OF ?OkButton** **   IF ~Check1 AND ~Check2 AND ~Check3** **    Message('You must check at least one box')** **    CYCLE** **   END** **   ReqFld = INCOMPLETE()                   !Any REQ fields empty?** **   IF ReqFld ** **    ReqFld{Prop:FillColor}=Color:Yellow    !color the bad field** **    MESSAGE('The selected entry must be filled in.')** **    CYCLE** **   ELSE** **    BREAK                                  !If not, go on** **   END** **  END** ** END** **See Also:** [[req set required entry .htm|REQ]] [[button declare a pushbutton control .htm|BUTTON]]