Tenho lá na classe um tbrowse.
Agora preciso definir o SkipBlock.
Como posso definir para o SkipBlock um método da classe?
Seria algo parecido com isto:
Código: Selecionar todos
oBrowse:SkipBlock :=&( " { | nRecords | Self:SkipBlock( nRecords ) }" )
Moderador: Moderadores

Código: Selecionar todos
oBrowse:SkipBlock :=&( " { | nRecords | Self:SkipBlock( nRecords ) }" )







Código: Selecionar todos
METHOD DbView(......)
...
oBrowse:SkipBlock := { |X| ::Skip( x ) }
oBrowse:GoBottomBlock := { || ::MoveLast() }
oBrowse:GoTopBlock := { || ::MoveFirst() }
Código: Selecionar todos
METHOD Skip( nSkip ) CLASS PCAD0020Class
LOCAL nSkipped := 0
DO CASE
CASE nSkip == 0
SKIP 0
CASE nSkip > 0
DO WHILE nSkipped < nSkip .AND. jpcadas->cdTipo == "1"
SKIP
IF Eof() .OR. jpcadas->cdTipo != "1"
SKIP -1
EXIT
ENDIF
nSkipped++
ENDDO
CASE nSkip < 0
DO WHILE nSkipped > nSkip .AND. jpcadas->cdTipo == "1"
SKIP -1
IF Bof() .OR. jpcadas->cdTipo != "1"
SKIP
EXIT
ENDIF
nSkipped--
ENDDO
ENDCASE
RETURN nSkipped

Código: Selecionar todos
METHOD Skip( nSkip ) CLASS PCAD0020Class
LOCAL nSkipped := 0
DO CASE
CASE nSkip == 0
SKIP 0
CASE nSkip > 0
DO WHILE nSkipped < nSkip .AND. jpcadas->cdTipo == "1"
SKIP
IF Eof() .OR. jpcadas->cdTipo != "1"
SKIP -1
EXIT
ENDIF
nSkipped++
ENDDO
CASE nSkip < 0
DO WHILE nSkipped > nSkip .AND. jpcadas->cdTipo == "1"
SKIP -1
IF Bof() .OR. jpcadas->cdTipo != "1"
IF jpcadas->cdTipo != "1"
SKIP
ENDIF
EXIT
ENDIF
nSkipped--
ENDDO
ENDCASE
RETURN nSkipped
