Tempo de leitura: 1 minuto
A função DBEval em ADVPL executa um bloco de código baseado em condições. DBEval avalia um bloco de código para cada registro que atenda um escopo definido, através dos blocos da primeira e segunda condição. Ela é uma das funções de manipulação de blocos de código em ADVPL
Sintaxe:
DBEval(bCod,bCond1,bCond2,nMax,nRecno,lExpLog)
Parâmetros(s):
Retorno:
Exemplo de DBEval em ADVPL:
#include 'protheus.ch'
#include 'rwmake.ch'
#INCLUDE "TBICONN.CH"
/*{Protheus.doc} User Function fDBEval
(Essa função tem por finalidade mostrar a função DBEval em ADVPL)
@type Function
@author Adilio Costa
@since 02/11/2024
@version 1.0
@?Inscreva-se no Blog ProtheusAdvpl:
https://www.protheusadvpl.com.br
@?Inscreva-se no Canal ProtheusAdvpl:
https://www.youtube.com/protheusadvpl
@?Siga-nos no Instagram:
https://www.instagram.com/protheusadvpl
@?Conheça os Cursos e Formações do ProtheusAdvpl:
https://cursos-e-formacoes-protheusadvpl.gr-site.com/
@Participe de nossas comunidades no WhatsApp:
-Comunidade Protheus Backoffice:https://chat.whatsapp.com/KMUIAjwZ6EZ6eAHsLkPTyb
-Comunidade Protheus-RH:https://chat.whatsapp.com/L5dUyAna6xU4ylG5DUgfOW
-Comunidade Protheus-Programação:https://chat.whatsapp.com/LsD6z0apdqKHlOz67bcaEn
-Comunidade Protheus-Framework:https://chat.whatsapp.com/BzUFpjaSnTC3vtsfa77jmG
|Se esse conteúdo foi útil pra você nos ajude divulgando
ele e nossas redes sociais!!|
*/
User Function fDBEval()
Local aArea := GetArea()
Local nContSB1 := 0
Local cMsg := "Registros PF e que utilizam grade."+Chr(10)+Chr(13)
Local bBloco := {|| nContSB1++,cMsg+=SB1->B1_COD+"-"+SB1->B1_DESC+","}
Local bCond1 := {|| nContSB1<= 10} //Enquanto o nConSB1 <= 10
Local bCond2 := {|| SB1->B1_FILIAL == FWxFilial("SB1") .And. SB1->B1_GRADE="S"}
RpcSetType(3)
PREPARE ENVIRONMENT EMPRESA "01" FILIAL "0101" MODULO "FAT"
DBSelectArea("SB1")
SB1->(DBSetOrder(2)) //B1_FILIAL+B1_TIPO+B1_COD
SB1->(DBSeek(FWxFilial("SB1")+"PF")) //Posiciona em produtos do tipo PF
DBEval(bBloco,bCond1,bCond2)
MsgInfo(cMsg,"Função DBEval")
RestArea(aArea)
Return

Bem, finalizamos mais um post aqui no blog. Caso tenha alguma dúvida deixe seu comentário ou nos envie o e-mail para adiliocosta@protheusadvpl.com.br. Grande abraço e fica com Deus.