LPARAMETERS tcCaption, tcSourceTable, tnMaxSelected LOCAL llRetVal, loSetAllX THIS.CAPTION = tcCaption llRetVal = DODEFAULT() IF llRetVal THIS.cOldDeleted = SET("DELETED") SET DELETED ON THIS.cSourceTable = tcSourceTable *** Populate Available Cursor/Grid THIS.lstAvailable.RECORDSOURCE = "" CloseUsed(THISFORM.icAvailableCursorName) SELECT * ; FROM (tcSourceTable) ; INTO CURSOR (THISFORM.icAvailableCursorName) MakeCursorRW() THIS.lstAvailable.RECORDSOURCE = THISFORM.icAvailableCursorName THIS.nAvailableCount = RECCOUNT() *** Populate Selected Cursor/Grid THIS.lstSelected.RECORDSOURCE = "" CloseUsed(THISFORM.icSelectedCursorName) SELECT * ; FROM (tcSourceTable) ; INTO CURSOR (THISFORM.icSelectedCursorName) MakeCursorRW() THIS.lstSelected.RECORDSOURCE = THISFORM.icSelectedCursorName THIS.nSelectedCount = 0 DELETE ALL *** Make all the controls in the grid disabled so as it make them clickable loSetAllX = CREATEOBJECT("SetAllX") *loSetAllX.SetAllX(THIS.lstAvailable, "Enabled", .F.) loSetAllX.SetAllX(THIS.lstAvailable, "DisabledForeColor", RGB(0,0,0)) loSetAllX.SetAllX(THIS.lstAvailable, "DisabledBackColor", RGB(192,192,192)) *loSetAllX.SetAllX(THIS.lstSelected , "Enabled", .F.) loSetAllX.SetAllX(THIS.lstSelected, "DisabledForeColor", RGB(0,0,0)) loSetAllX.SetAllX(THIS.lstSelected, "DisabledBackColor", RGB(192,192,192)) loSetAllX = .NULL. IF TYPE("tnMaxSelected") = "N" AND tnMaxSelected > 0 THIS.nMaxSelected = tnMaxSelected ENDIF IF FILE(THISFORM.icNoDropIcon) THISFORM.lstAvailable.DRAGICON = FULLPATH(THISFORM.icNoDropIcon) THISFORM.lstSelected.DRAGICON = FULLPATH(THISFORM.icNoDropIcon) ENDIF DO CASE CASE THIS.nMaxSelected = 1 THISFORM.cmdAddAll.SetVisible(.F.) THISFORM.cmdRemoveAll.SetVisible(.F.) CASE THIS.nMaxSelected > 1 THISFORM.cmdAddAll.CAPTION = "Add Max " + ALLTRIM(STR(THIS.nMaxSelected)) ENDCASE ENDIF THISFORM.RemoveObject("cmdCancel") RETURN llRetVal