Saltar para o conteúdo principal
Versão: Próximo

Sequence number

Sequence number {( tabela )} -> Resultado

ParâmetroTipoDescrição
tabelaTableTabela para a qual devolver o número de sequência, ou tabela padrão, se omitido
ResultadoIntegerNúmero de sequência

Descrição

Sequence number devolve o próximo número automático de tabela. O número de sequência é único para cada tabela. É um valor que não se repete e é incrementado (*) para cada novo registro criado pela tabela.

(*) Por razões de otimização, a incrementação é iniciada apenas na primeira chamada ao comando Sequence number ou de uma propriedade que obtém acesso a sequência de números (ver abaixo). Além disso, a numeração pode ser modificada usando o comando [#cmd id="642"/]. Desta forma, o valor retornado não deve ser considerado como contagem dos registros criados em umaTabela.

Normalmente, a numeração começa em 1. Pode mudar a numeração para uma tabela utilizando o comando SET DATABASE PARAMETER.

Nota: Se não houver um registro atual e a numeração tiver sido modificada via o comando SET DATABASE PARAMETER, este número é em fato reservado para a criação do novo registro mas só vai re ser retornado pela função Sequence number quando o comando SAVE RECORD tiver sido chamado.

A função Sequence number é útil nos casos abaixos:

  • O número de sequência precisa de um incremento maior que 1

  • O número de sequência é parte de um código, por exemplo um número de código parcial.

Para armazenar o número de sequência com a ajuda de um método, crie um campo de tipo Inteiro longo na tabela e atribua o número de sequência ao campo.

O número de sequência devolvido por essa função para a tabela é o mesmo número que o gerado ao selecionar a opção Autoincrementar para um campo da tabela utilizando o inspetor de estrutura ou ao atribuído utilizando o símbolo #N como valor automático para um campo da tabela em um formulário. Para maior informação sobre a atribuição de valores, consulte o Manual de Desenho de 4D.

Nota: a numeração automática também pode ser atribuída através do atributo SQL AUTO_INCREMENT.

Se a numeração deve começar em um valor diferente de 1, simplesmente adiciona a diferença a Sequence number. Por exemplo, se o número de sequência deve começar em 1.000, pode utilizar a seguinte linha de código para atribuir o número:

 [Tabela1]NumAuto:=Sequence number([Tabela1])+999

Exemplo

O exemplo a seguir é parte de um método de formulário. Estas linhas de código testam se é um novo registro (se o número de fatura for igual a uma cadeia vazia). Se for um novo registro, o método atribui um número de fatura. O número de fatura está formado por duas partes: o número de sequência, e o identificador do operador, o qual foi introduzido ao abrir o banco. O número de sequência é formatado como uma cadeia de cinco caracteres:

  // Se for uma nova fatura, criar um número de fatura
 If([Faturas]NumFatura="")
  // O número de fatura é uma cadeia que termina pelo número de referência do usuário.
    [Faturas]NumFatura:=String(Sequence number;"00000")+[Faturas]Usuário
 End if

Ver também

Record number
Selected record number
Sobre Números de Registros