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.)
