Prueba modificando la clase:
METHOD Fill() CLASS TDBCombo
// Refill aItems and aList from cAlias->cFldItem and cAlias->cFldList
LOCAL nOldRecNo
LOCAL nItem, nList
::aItems := {}
::aList := {}
IF ! HB_IsObject( ::cAlias )
IF ::cAlias == ""
* IF Empty( ::cAlias )
// There's no workarea defined, so do nothing.
RETURN NIL
END IF
IF SELECT( ::cAlias ) == 0
MsgAlert( "TDBCombo:Fill() - Alias '" + ::cAlias + "' does not exist." )
RETURN NIL
END IF
- ::aItems := {} && jc 27/08/2013
- ::aList := {} && jc 27/08/2013
IF (nItem := (::cAlias)->(FIELDPOS( ::cFldItem ))) > 0
IF (nList := (::cAlias)->(FIELDPOS( ::cFldList ))) > 0
nOldRecNo := (::cAlias)->(RECNO())
// Make first record blank (so you can have an empty field)
(::cAlias)->(DBGOBOTTOM())
(::cAlias)->(DBSKIP())
AADD( ::aItems, (::cAlias)->(FIELDGET( nItem )) )
AADD( ::aList, (::cAlias)->(FIELDGET( nList )) )
(::cAlias)->(DBGOTOP())
DO WHILE ! (::cAlias)->(EOF())
AADD( ::aItems, (::cAlias)->(FIELDGET( nItem )) )
AADD( ::aList, (::cAlias)->(FIELDGET( nList )) )
(::cAlias)->(DBSKIP())
ENDDO
(::cAlias)->(DBGOTO( nOldRecNo ))
ELSE
msgAlert("TDBCombo:Fill() - Fieldname "+::cFldList+" not found.")
ENDIF
ENDIF
ELSE
::aItems := {}
::aList := {}
IF (nItem := ::cAlias:FIELDPOS( AllTrim(::cFldItem) )) > 0
IF (nList := ::cAlias:FIELDPOS( AllTrim(::cFldList) )) > 0
nOldRecNo := ::cAlias:RECNO()
// Make first record blank (so you can have an empty field)
::cAlias:GOBOTTOM()
::cAlias:SKIP()
AADD( ::aItems, ::cAlias:FIELDGET( nItem ) )
AADD( ::aList, ::cAlias:FIELDGET( nList ) )
::cAlias:GOTOP()
DO WHILE ! ::cAlias:EOF()
AADD( ::aItems, ::cAlias:FIELDGET( nItem ) )
AADD( ::aList, ::cAlias:FIELDGET( nList ) )
::cAlias:SKIP()
ENDDO
::cAlias:GOTO( nOldRecNo )
ELSE
msgAlert("TDBCombo:Fill() - Fieldname "+::cFldList+" not found.")
ENDIF
ENDIF
ENDIF
RETURN NIL
Saludos