DBSkip y navegación de registros
Recorre secuencia limitada con avance y prueba de fin.
Descripción general
Bucle necesita inicio, fin y avance. DBGoTop inicia posición lógica; DBSkip sigue orden/filtro y EOF debe comprobarse antes de campos. Ejemplo recorre máximo tres registros visibles de EDTRB propia y solo cuenta, sin exponer datos. Filtros y configuración de eliminados influyen; no es total general. Alias queda en posición alcanzada, posiblemente EOF. (TOTVS, s.f., refs. 1–2)
Ejemplo comentado
#Include "Protheus.ch"
User Function Ed341()
Local nConteo := 0
If Select("EDTRB") > 0
EDTRB->(DBGoTop())
While !EDTRB->(Eof()) .And. nConteo < 3
nConteo++
EDTRB->(DBSkip(1))
EndDo
ConOut(cValToChar(nConteo))
EndIf
Return NilConteo de cero a tres según registros visibles. En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.
- Mantener avance dentro del bucle. Garantizar contexto de lectura sin cambios pendientes; restaurar área/posición si llamador exige.
- En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.

Comentarios
Todavía no hay comentarios aprobados.
Inicia sesión con Google o Microsoft para comentar.