DBEval

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

leo
Usuário Nível 1
Usuário Nível 1
Mensagens: 7
Registrado em: 03 Dez 2003 23:57
Localização: timbauba

DBEval

Mensagem por leo »

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?
Dudu_XBase
Membro Master
Membro Master
Mensagens: 1071
Registrado em: 25 Ago 2003 16:55

Mensagem por Dudu_XBase »

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.


________________________________________________________________________________________________________
(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




leo
Usuário Nível 1
Usuário Nível 1
Mensagens: 7
Registrado em: 03 Dez 2003 23:57
Localização: timbauba

Mensagem por leo »

Ok muito obrigadu isso atende minha questao.
Responder