Acredito que esta minha duvida seja bem simples, mas como sou iniciante em ADVPL estou com dificuldade. Tenho o codigo abaixo, onde coloco um filtro default no browse e o usuario pode criar outros filtros, como faço para pegar somente os registros que estão sendo exibidos no browse apos o filtro?
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
User Function MCK001A()
Local aArea As Array
Local oBrowse As Object
aArea := GetArea()
oBrowse := FwLoadBrw("MCK001")
oBrowse:Activate()
RestArea(aArea)
Return
Static Function BrowseDef()
Local oBrowse As Array
Local cFilter As Character
cFilter := SB2->("@B2_LOCAL = 'DV' AND B2_QATU > 0")
oBrowse := FwMarkBrowse():New()
oBrowse:DataTable()
oBrowse:SetAlias("SB2")
oBrowse:SetMenuDef("MCK001")
oBrowse:SetFilterDefault(cFilter)
Return oBrowse
Static Function MenuDef()
Local aRot As Array
aRot := {}
Add OPTION aRot TITLE 'Teste' ACTION 'u_MCK001B()' OPERATION 6 ACCESS 0
Return aRot
User Function MCK001B()
Local cAliasSB2 := 'SB2'
Local aAreaSB2 := (cAliasSB2)->( GetArea() )
//Aqui vem todos os registros da tabela
//Gostaria de pegar somente os dados exibidos no browse
DbSelectArea(cAliasSB2)
(cAliasSB2)->( DbGoTop() )
While !(cAliasSB2)->( Eof() )
Alert( (cAliasSB2)->B2_COD )
(cAliasSB2)->( DbSkip() )
EndDo
RestArea( aAreaSB2 )
Return