Histórico da Página
Incluir Página | ||||
---|---|---|---|---|
|
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