04 Jan 2018 08:16
while MovFun->(!eof())
if CadFun->(dbsetorder(1),dbseek(MovFun->CodFun))
while !CadFun->(Trava_Reg())
end
if MovFun->tipo == "1"
CadFun->SldFun += MovFun->Valor
else
CadFun->SldFun -= MovFun->Valor
end
CadFun->(dbunlock())
end
MovFun->(dbskip())
06 Jan 2018 12:56
update cadfun as a set sldfun=a.sldfun+ a.valor+coalesce((select sum(valor) from movfun as b where b.codfun=a.CODFUN and b.movfun='1'),0) - coalesce((select sum(valor) from movfun as b where b.codfun=a.CODFUN and b.movfun<>'1'),0)
aSQL:=EXECUTA_SQL('select codfun,valor,tipo from movfun') // pega todas as movimentações, o certo era ter um WHERE pra limitar as buscas
FOR nI:=1 TO len(aSQL)
IF aSQL[nI,3]=='1'
EXECUTA_SQL('update cadfun set sldfun=sldfun+'+cs(aSQL[nI,2])+' where codfun='+cs(aSQL[nI,1]) )
ELSE
EXECUTA_SQL('update cadfun set sldfun=sldfun-'+cs(aSQL[nI,2])+' where codfun='+cs(aSQL[nI,1]) )
ENDIF
NEXT
10 Jan 2018 07:52
28 Jan 2020 10:25
local dDataI := ctod("01/01/2019")
local dDataF := ctod("31/12/2019")
use pedidos
index on data to pedidos
use itemped
index on numero to itemped
dbcloseall()
use pedidos alias pedidos new
set index to pedidos
use itemped alias itemped new
set index to itemped
Pedidos->(dbseek(dDatai))
do while pedidos->data >= dDataI .and. pedidos->data <= dDataF .and. pedidos->(!eof())
@ prow()+1,00 say pedidos->numero
@ prow() ,10 say pedidos->data
itemped->(dbsetorder(1),dbseek(pedidos->numero))
do while itemped->numero = pedidos->numero .and. itemped->(!eof())
@ prow()+1,00 say itemped->codprod
itemped->(dbskip())
enddo
pedidos->(dbskip())
enddo
28 Jan 2020 16:55
28 Jan 2020 17:02
28 Jan 2020 17:35
cDataI := "'" + Hb_DtoC( dDataI, "YYYY-MM-DD") + "'"
cDataF := "'" + Hb_DtoC( dDataF, "YYYY-MM-DD") + "'"
cQuery := "SELECT * FROM PEDIDOS P "
cQuery += "WHERE "
cQuery += " P.Pedidos between " + cDataI + " and " + cDataF
oRs:MoveFirst()
nCol := ( oRs:Fields:Count ) - 1
Do While ! oRs:Eof
FOR i:=0 TO nCol
xVaue := oRs:Fields( i ):value
NEXT
oRs:MoveNext()
Enddo
28 Jan 2020 18:15
28 Jan 2020 20:42
cDataI := "'" + Hb_DtoC( dDataI, "YYYY-MM-DD") + "'"
cDataF := "'" + Hb_DtoC( dDataF, "YYYY-MM-DD") + "'"
cQuery := "SELECT * FROM PEDIDOS P "
cQuery += "WHERE "
cQuery += " P.Data between " + cDataI + " and " + cDataF
28 Jan 2020 20:48
cQuery := "SELECT * FROM PEDIDOS P "
cQuery += "WHERE "
cQuery += " P.Data between ? and ? "
WITH OBJECT oCommand
oPrm := :CreateParameter("DATAI", adDate, adParamInput, 8, dDataI)
:Parameters:Append( oPrm )
oPrm := :CreateParameter("DATAF", adDate, adParamInput, 8, dDataF)
:Parameters:Append( oPrm )
:CommandText := cQuery
:CommandType := adCmdText
oRs := :Execute()
END
28 Jan 2020 21:51
asimoes escreveu:Outra forma é usando bind ?, nesse caso não precisa converter para string a data
28 Jan 2020 21:56
01 Abr 2020 13:58
XNumAux := PlanoContabil->codigo //NumAux
Set Soft On
SaldoContabil->(dbsetorder(2),dbseek(str(xNumAux,5)+Dtos(dDataI)))
Set Soft Off
If SaldoContabil->(found())
02 Abr 2020 00:47
select
*
from SaldoContabil s
inner join PlanoContabil p on p.codigo = s.codigo
where
s.data >= dataInicial
and s.data <= ddataFinal2 -- se quiser apenas maior que uma determinada data, retire esta linha
02 Abr 2020 09:18