Depois de contonar o funcionamento obscuro do harbour, ficou interessante.
Este é meu browse normal GTWVG
Código: Selecionar todos
ETHOD GridSelection( cCampoKeyboard ) CLASS JPTABCIDADECLASS
LOCAL oTBrowse, cnSQL := ADOLocal()
hb_Default( @cCampoKeyboard, "CODIGO" )
WITH OBJECT cnSQL
:Execute( "SELECT CINOME, CIUF, CIIBGE, IDCIDADE" + ;
" FROM JPTABCIDADE" + ;
" ORDER BY CINOME" )
oTBrowse := { ;
{ "NOME", { || cnSQL:String( "CINOME", 40 ) } }, ;
{ "UF", { || cnSQL:String( "CIUF", 2 ) } }, ;
{ "IBGE", { || cnSQL:String( "CIIBGE", 7 ) } }, ;
{ "ID", { || Str( cnSQL:Number( "IDCIDADE" ), 6 ) } } }
BrowseADO( @cnSQL, oTBrowse, "CINOME,CIUF,CIIBGE", ;
iif( cCampoKeyboard == "CODIGO", { || Str( cnSQL:Number( "IDCIDADE" ), 6 ) }, { || cnSQL:String( "CINOME", Len( GetActive():VarGet ) ) } ) )
:CloseRecordset()
ENDWITH
RETURN NIL
Em browseADO fiz isto:
Código: Selecionar todos
FUNCTION BrowseADO( cnSQL, oTBrowse, cFilterKey, bKeyboard, bUserFunction, nFixToCol, aADOFilterList, aBtnList )
LOCAL nTop := 5, nLeft := 0, nBottom, nRight, cColorAnt := SetColor()
LOCAL oFrm, cKeyboard, cOption
IF AppUserLevel() == 0
RunModule( { || FWBrowseADO( @cnSQL, @oTBrowse ) }, "browse", "FIVEWIN" )
ENDIF
Apenas teste básico.

