LPARAMETER toControl PRIVATE loControl, lnI, lnJ, lnK, lnL, lnM, lnS loControl = toControl DO CASE CASE loControl.BASECLASS$"Form" FOR lnI = 1 TO loControl.CONTROLCOUNT THIS.MustHavesValidate(loControl.CONTROLS(lnI)) ENDFOR CASE loControl.BASECLASS$"Pageframe" FOR lnJ = 1 TO loControl.PAGECOUNT WITH loControl.PAGES(lnJ) FOR lnK = 1 TO .CONTROLCOUNT THIS.MustHavesValidate(.CONTROLS(lnK)) ENDFOR ENDWITH ENDFOR CASE loControl.BASECLASS$"Grid" FOR lnS = 1 TO loControl.COLUMNCOUNT WITH loControl THIS.MustHavesValidate(.COLUMNS(lnS)) ENDWITH ENDFOR CASE loControl.BASECLASS$"Container" FOR lnL = 1 TO loControl.CONTROLCOUNT WITH loControl THIS.MustHavesValidate(.CONTROLS(lnL)) ENDWITH ENDFOR CASE loControl.BASECLASS$"Commandgroup" OR loControl.BASECLASS$"Optiongroup" FOR lnM = 1 TO loControl.BUTTONCOUNT WITH loControl THIS.MustHavesValidate(.BUTTONS(lnM)) ENDWITH ENDFOR CASE loControl.BASECLASS$"Checkbox" ; OR loControl.BASECLASS$"Combobox" ; OR loControl.BASECLASS$"Editbox" ; OR loControl.BASECLASS$"Listbox" ; OR loControl.BASECLASS$"Spinner" ; OR loControl.BASECLASS$"Textbox" IF loControl.lMustKey AND EMPTY(loControl.VALUE) plRetVal = .F. pcReqdFlds = pcReqdFlds + loControl.name + chr(13) ENDIF ENDCASE loControl = .NULL.