oi pessoal estou com uma duvida referente a esse comando tenho um codigo de bloco para avaliar a situacao eh a seguinte:
no dbf tem a data de vencimento venc. e o dia atual diapro
Eu quero q o dbeval verifique se o atrazo eh maior q 10 quando for passando os registro se encontrar o primeiro valor maior q 10 atualiza outro dbf tipo assim:
--------------------------------------------------
tatr:=0
BLOCO := {|| tatr := diapro - venc} //aqui ele faz ok da o dia de atrazo
TCOND := {|| tatr > 10} // quando chega aqui tatr eh sempre 0
DBEVAL (BLOCO, TCOND)
if tatr > 10
field->situacao:='I'
endif
esse nao deu certo entao fiz assim:
---------------------------------------------------
tok:=.F.
tatr:=0
BLOCO := {|| tatr := diapro - venc} //aqui ele faz ok da o dia de atrazo
TCOND := {|| tok:=iif(tatr>10,.t.,.f.)} // quando chega aqui tatr eh sempre 0
DBEVAL (BLOCO, TCOND)
if tok
field->situacao:='I'
endif
tambem nao deu certo
-------------------------------------------------
Onde estou errando?
DBEval
Moderador: Moderadores
-
Dudu_XBase
- Membro Master

- Mensagens: 1071
- Registrado em: 25 Ago 2003 16:55
Boa Tarde Leo.
Montei um prg para exemplificar.
Criei um dbf com os seguintes campos.
CLI_DAT date
CLI_STAT Caracter 1
No exemplo abaixo eu faço diferença da data corrente menos a data do campo cli_dat.
Use clientes
ncont :=0
// Somo qtos registros atendem minha condição
dbeval({||ncont++ } ,{||DATE()-CLI_DAT>=10})
? str(nCont)
// Executo a procedure grava para os registros q estão na condição
DBGOTOP()
dbeval({||grava() } ,{||DATE()-CLI_DAT>=10})
// Somo os registros processados que estão com status "I"
ncont :=0
DBGOTOP()
dbeval({||ncont++ } ,{||CLI_STAT = "I"})
? str(nCont)
return
// Procedure que grava no campo cli_stat
Static procedure grava()
replace cli_stat with "I"
return .t.
Montei um prg para exemplificar.
Criei um dbf com os seguintes campos.
CLI_DAT date
CLI_STAT Caracter 1
No exemplo abaixo eu faço diferença da data corrente menos a data do campo cli_dat.
Use clientes
ncont :=0
// Somo qtos registros atendem minha condição
dbeval({||ncont++ } ,{||DATE()-CLI_DAT>=10})
? str(nCont)
// Executo a procedure grava para os registros q estão na condição
DBGOTOP()
dbeval({||grava() } ,{||DATE()-CLI_DAT>=10})
// Somo os registros processados que estão com status "I"
ncont :=0
DBGOTOP()
dbeval({||ncont++ } ,{||CLI_STAT = "I"})
? str(nCont)
return
// Procedure que grava no campo cli_stat
Static procedure grava()
replace cli_stat with "I"
return .t.
________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle
