RECNO()
 Retorna o número do registro corrente de uma área de trabalho
------------------------------------------------------------------------------

 Sintaxe

     RECNO() --> nRegistro

 Retorno

     RECNO() retorna o número do registro corrente na forma de um valor
     numérico inteiro.  Se a área de trabalho contém um arquivo de banco de
     dados com zero registros, RECNO() retorna um, BOF() e EOF() retornam
     verdadeiro (.T.), e LASTREC() retorna zero.

     Se o ponteiro de registros for movido para além do último registro,
     RECNO() retorna LASTREC() + 1 e EOF() retorna verdadeiro (.T.).  Caso
     seja feita uma tentativa para mover o ponteiro além do primeiro
     registro, RECNO() retorna o número do primeiro registro lógico no
     arquivo de banco de dados, e BOF() retorna verdadeiro (.T.).

 Descriçao

     RECNO() é uma funçao de tratamento de banco de dados que retorna o
     número do registro corrente em uma área de trabalho.  No esquema de
     arquivos de bancos de dados do Clipper, cada arquivo de banco de dados
     é ordenado fisicamente pelo número do registro.  Cada área de trabalho,
     por sua vez, mantém um ponteiro para o registro corrente em seu arquivo
     de banco de dados aberto.  Aquele número de registro é informado pela
     funçao RECNO().  A ferramenta de numeraçao de registros permite acesso
     direto a um registro sem pesquisar sequencialmente o arquivo de banco
     de dados para atingir a posiçao do registro especificado.

     RECNO() é normalmente utilizada para generalizar rotinas que processam
     os registros através do número dos mesmos.  Isto inclui SET
     RELATION...TO RECNO(), que faz a likagem de arquivos de banco de dados
     por número de registro.  GO RECNO() também é usada para fazer um
     refresh dos dados de registro correntes do disco.

     O padrao é que RECNO() opere na área de trabalho correntemente
     selecionada.  Pode-se fazê-la operar em uma área de trabalho nao
     selecionada se esta for especificada em uma expressao alias (veja o
     exemplo abaixo).

 Exemplos

       O exemplo a seguir questiona RECNO() após mover
        deliberadamente o ponteiro de registros:

        USE Customers NEW
        GO 3
        ? RECNO()                             // Resulta: 3
        GO TOP
        ? RECNO()                             // Resulta: 1
        nRecord := 3
        GO nRecord
        ? RECNO()                             // Resulta: 3
        GO BOTTOM
        SKIP
        ? RECNO(), LASTREC()                  // Resulta: 11 10


       Este exemplo utiliza expressoes alias para questionar o valor
        de RECNO() em áreas de trabalho nao selecionadas:

        USE Sales NEW
        USE Customer NEW
        //
        ? Sales->(RECNO())
        ? Customer->(RECNO())

 Arquivos:  Biblioteca CLIPPER.LIB.
 To download this example - click here.

See Also: BOF() EOF() LASTREC() GO SKIP