PROCEDURE clearclass
LPARAMETERS tlClearAll
LOCAL lcObjName,lcClass,lnChildCount,lnCount
LOCAL lnLastSelect,lnRecNo
IF NOT this.lBrowser OR NOT USED(this.cAlias)
RETURN .F.
ENDIF
lnLastSelect=SELECT()
this.RefreshRecNo
SELECT (this.cAlias)
lnRecNo=IIF(EOF() OR RECNO()>RECCOUNT(),1,RECNO())
lcObjName=LOWER(MLINE(ObjName,1))
IF NOT EMPTY(lcObjName) AND NOT lcObjName==LOWER(MLINE(BaseClass,1))
CLEAR CLASS (lcObjName)
ENDIF
lcClass=LOWER(MLINE(Class,1))
IF NOT EMPTY(lcClass) AND NOT lcClass==LOWER(MLINE(BaseClass,1))
CLEAR CLASS (lcClass)
ENDIF
lnChildCount=VAL(MLINE(Reserved2,1))-1
FOR lnCount = 1 TO lnChildCount
SKIP
lcClass=LOWER(MLINE(Class,1))
IF NOT EMPTY(lcClass) AND NOT lcClass==LOWER(MLINE(BaseClass,1))
CLEAR CLASS (lcClass)
ENDIF
ENDFOR
IF tlClearAll
FOR lnCount = 1 TO this.nClassCount
lcClass=this.aClassList[lnCount,1]
IF EMPTY(lcClass) OR "."$lcClass OR lcClass==this.aClassList[lnCount,8]
LOOP
ENDIF
CLEAR CLASS (lcClass)
ENDFOR
ENDIF
SELECT (this.cAlias)
GO lnRecNo
SELECT (lnLastSelect)