Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Incluir Página
tec:DBEval
tec:DBEval

Sintaxe

 

DBEVAL( <bloco de código 1>   [, <bloco de código 2> ]

             [, <bloco de código 3> ]  [, <expressão numérica 1> ]

             [, <expressão numérica 2> ]   [, <expressão lógica> ] )

 

Propósito

 

Executa e avalia um bloco de código para cada registro de um arquivo de dados, selecionados de acordo com um determinado escopo e condições.

 

Argumentos

 

<bloco de código 1>

 

Define o bloco de código que será executado para cada registro do arquivo de dados.

 

<bloco de código 2>

 

Define uma condição lógica opcional, especificada através de um bloco de código, que será avaliada para cada registro, dentro do escopo especificado. De forma idêntica à condição do comando FOR, o registro será avaliado se a condição especificada for verdadeira.

 

<bloco de código 3>

 

Define uma condição lógica opcional, especificada através de um bloco de código, que será avaliada para cada registro, dentro do escopo especificado, até que resulte falso (.F.). De forma idêntica à condição do comando WHILE, o registro será avaliado enquanto a condição especificada permanecer verdadeira (.T.). Neste caso, o arquivo deverá estar ordenado ou indexado de acordo com esta condição.

 

<expressão numérica 1>

 

Opcionalmente, define a quantidade de registros que deverá ser processada, a partir do registro atual. O seu efeito é equivalente ao da cláusula NEXT.

 

<expressão numérica 2>

 

Opcionalmente, define o número de um determinado registro a ser processado. Se este argumento for especificado, o bloco de código 1  será avaliado apenas para este registro.

 

<expressão lógica>

 

Define um valor lógico opcional que determina se o escopo da função será todos os registros do arquivo, a partir do primeiro (Tudo) ou a partir do atual (Resto). Caso o seu resultado seja verdadeiro (.T.), o escopo será o resto. Caso seja falso (.F.), o escopo será tudo. Caso este argumento não seja especificado, o escopo padrão assumido é tudo. Ou seja, todos os registros do arquivo serão processados, a partir do primeiro.

 

Utilização

 

A função DBEVAL() é semelhante à função EVAL(), que executa um determinado bloco de código para cada elemento de um array. Da mesma forma que AEVAL(), a função DBEVAL() pode ser utilizada na construção de funções de usuário que processem arquivos de dados.

 

Dicas

 

Normalmente, a função DBEVAL() opera sobre a área de trabalho selecionada. Contudo, se for especificado outro alias, poderá operar sobre outra área de trabalho. Por exemplo:

 

<alias>->DBEVAL()

 

Neste exemplo, a função executa o bloco de código especificado para os registro do arquivo de dados aberto na área de trabalho especificada pelo alias.

 

Exemplos

 

O exemplo abaixo altera o salário dos funcionários que ganham até um determinado limite, de acordo com um fator de correção.

 

LOCAL nFator  := 1.2

LOCAL nLimite := 50000

 

DbSelectArea(“PESS”)

 

bCodBlo1 := { | | PESS->SALARIO := nFator * PESS->SALARIO }

bCodBlo2 := { | | PESS->SALARIO < nLimite }

 

DBEVAL(bCodBlo1, bCodBlo2)

 

RETURN NIL