Executa uma expressão para os registros dentro das condições especificadas.

Sintaxe

DBEVAL( bBloco, [ bForCond ], [ bWhileCond ], [ nProxRegs ], [ nRecno ], [ lRestante ]) –> Nil

Descrição

Esta função é utilizada para executar uma expressão definida pelo bloco de código do primeiro parâmetro para cada registro que está dentro do escopo definido através dos blocos de condição de “for” e “while”.

O número de registros a ser executado será definido com o parâmetro nProxRegs ou se setado o parâmetro lRestante serão executados todos os registros a partir do registro corrente até o final da tabela corrente. Se for especificado o parâmetro nRecno apenas o registro com o recno especificado será processado.

Se forem omitidos os blocos de “for” e “while”, os mesmos serão considerados .T. como padrão, estão assim todos os registros dentro do escopo.

Se o parâmetro lRestante for omitido a tabela inicia o processamento dos registros a partir do topo da tabela, caso contrário serão processados os registros a partir do posicionamento corrente da tabela.

Exemplo

Este exemplo mostra como se pode usar o DBEVAL para contar quantos registros estão dentro do escopo especificado em toda a tabela, pois como o parâmetro lRestante foi omitido a tabela irá para o topo antes de iniciar a processar os registros. Supondo que a tabela está sobre um índice no campo idade, serão processados registros com o Nome cuja ordem alfabética é maior que “FFFFF” e até encontrar algum registro de idade igual a 40:

USE Cliente VIA “DBFCDX” NEW

LOCAL nCount := 0;

DBGOTO(100)

DBEVAL( {|| nCount++}, {|| Nome > “FFFFF”}, {|| Idade < 40})

 

Este exemplo mostra como se pode usar o DBEVAL para contar quantos registros estão dentro do escopo especificado (como o exemplo anterior) a partir do registro atual (100):

USE Cliente VIA “DBFCDX” NEW

LOCAL nCount := 0;

DBGOTO(100)

DBEVAL( {|| nCount++}, {|| Nome > “FFFFF”}, {|| Idade < 40},,,.T.)

 

Este exemplo mostra como se pode usar o DBEVAL para colocar numa variável um nome inicial que está definido em um registro de recno definido (100):

USE Cliente VIA “DBFCDX” NEW

LOCAL cNomeIni := “”;

DBEVAL( {|| cNomeIni := Nome},,,,100)

 

Este exemplo mostra como se pode usar o DBEVAL para verificar qual é o recno do décimo registro a partir do corrente dentro do escopo definido:

USE Cliente VIA “DBFCDX” NEW

LOCAL nRecno := 0;

DBGOTO(100)

DBEVAL( {|| nRecno := RECNO()}, {|| Nome > “FFFFF”}, {|| Idade < 40},10,,.T.)

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Necessita de ajuda?