função para data
Moderador: Moderadores
função para data
Bom dia amigos!
Tenho uma rotina de pesquisa de movimento entre datas (data inicial / data final).
Como poderia ser uma função que verificasse se houve movimento nesse período?
Olhei os tópicos sobre data, porém não encontrei exemplo de caso.
Para criticar uma data específica eu fiz. Mas entre datas ...
Meus agradecimentos antecipados.
Netavin
Tenho uma rotina de pesquisa de movimento entre datas (data inicial / data final).
Como poderia ser uma função que verificasse se houve movimento nesse período?
Olhei os tópicos sobre data, porém não encontrei exemplo de caso.
Para criticar uma data específica eu fiz. Mas entre datas ...
Meus agradecimentos antecipados.
Netavin
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
" Sem saber que era impossível, foi lá e fez !! "
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
função para data
Oi colega. Existem vários tópicos abordando esse tema. Veja em:
https://pctoledo.org/forum/viewto ... ata#p48770
https://pctoledo.org/forum/viewto ... ata#p71455
https://pctoledo.org/forum/viewto ... ata#p65403
Tiver dificuldades em implementar, passe o seu código que iremos te ajudar Lorival.
https://pctoledo.org/forum/viewto ... ata#p48770
https://pctoledo.org/forum/viewto ... ata#p71455
https://pctoledo.org/forum/viewto ... ata#p65403
Tiver dificuldades em implementar, passe o seu código que iremos te ajudar Lorival.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
função para data
Arriba Pablo!!
Meu digníssimo amigo. Foi de grande valia a informação.
Meus sinceros agradecimentos.
Netavin
Meu digníssimo amigo. Foi de grande valia a informação.
Meus sinceros agradecimentos.
Netavin
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
" Sem saber que era impossível, foi lá e fez !! "
função para data
Amigos. Última forma!!! rs
Pensei ter resolvido. Mas mesmo havendo movimento em um dos dias, me retorna falso.
anexo a rotina para que possam me auxiliar.
Pensei ter resolvido. Mas mesmo havendo movimento em um dos dias, me retorna falso.
anexo a rotina para que possam me auxiliar.
Código: Selecionar todos
/************************/
/* Entradas entre datas */
/* DETALHADO */
Function Ent_dt_tl()
LOCAL L,Vari,Num,Linh,texto
LOCAL VTOTAL :=000000.00
LOCAL VSUBTOTAL :=000000.00
LOCAL TOTALR :=000000.00
LOCAL SUBTTLR :=000000.00
Private vdtin,vdtfin
Sele 1
Use Cadtora Alias Cadtora SHARED NEW EXCLU
IF !NETERR()
If !File("esse.ntx")
Index on esse to esse
Endif
If !File("placa.ntx")
Index on plac to placa
Endif
ELSE
NETMSG()
RETURN(.F.)
ENDIF
Set Index to esse,placa
OrdSetFocus(1)
DbGotop()
Linh :=0
vDtin :=Ctod(" ")
vDtfin:=Ctod(" ")
DispBox(Linh+39,C+08,Linh+44,C+35,1,"w/bg,gb+/b")
@ Linh+40,C+09 Clear to Linh+43,C+34
@ Linh+41,C+10 Say "Data inicial:" Get vDtin Valid datain(vdtin)
@ Linh+42,C+10 Say "Data final :" Get vDtfin Valid dataou(vdtfin)
Read
If Lastkey() = 27
CANCBEEP()
Alert("Opera‡ao cancelada!")
DbCloseAll()
Return
Endif
Pg :=1
L :=0
Num :=0
Vari:=esse
Set Exac on
Set Filter to Dten >= vDtin .and. Dten <= vDtfin
LOCATE FOR vDtin=Dten .AND. vDtfin=Dten
If eof()
ERRORBEEP()
Alert("NÆo houve entradas;neste intervalo de datas!")
USE
Return
endif
abre_imp()
Do While !Eof()
If L = 0
? PADC(" ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ",80)
? PADC(" MADEIREIRA",80)
? Padc(" Entradas por per¡odo",80)
? Padc(" De "+ dtoc(vDtin) + " … " + Dtoc(vDtfin),80)
? PADC(" ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ",80)
? " Pg.: "+Strzero(pg,2)
? " ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ"
? " Placa Essˆncia Comp Diam Desc Ttl M3 Vlr/M3 Vlr Pg Entrada"
? " ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ"
L:=7
Endif
If plac = 0 .or. Dten < vDtin .or. Dten > vDtfin
Skip
Endif
IF ALLTRIM(VARI) # ALLTRIM(ESSE)
If vsubtotal > 0
? Space(36)+"Subtotal: "+TRANSFORM(VSUBTOTAL,"@e 9,999.999")+" M3 R$ "+Transform(Subttlr, "@e 999,999.99")
VTOTAL+=VSUBTOTAL
VSUBTOTAL:=000000.00
VARI:=ESSE
TOTALR+=SUBTTLR
SUBTTLR:=000000.00
Else
VTOTAL+=VSUBTOTAL
VSUBTOTAL:=000000.00
VARI:=ESSE
TOTALR+=SUBTTLR
SUBTTLR:=000000.00
Endif
Endif
If ALLTRIM(VARI)=ALLTRIM(ESSE)
? Space(3),plac,esse,Transform(comp,"@e 99.99"),Space(1),Transform(diam,"@e 9.99"),;
Space(1),Transform(tdes,"@e 9.999"),Transform(ttm3,"@e 999.999"),;
+SPACE(02),Transform(vlm3,"@e 999.99")+SPACE(02),Transform(vlpg,"@e 999.99"),Space(1),Dten
VSUBTOTAL+=TTM3
subttlr+=vlpg
Endif
DbSkip()
Num++
L++
If L >= 60
L = 0
Pg++
Eject
Endif
If eof()
? Space(36)+"Subtotal: "+TRANSFORM(VSUBTOTAL,"@e 9,999.999")+" M3 R$ "+Transform(Subttlr, "@e 999,999.99")
VTOTAL+=VSUBTOTAL
Totalr+=Subttlr
VARI:=ESSE
Endif
Enddo
? " ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ"
? " Totais:"+Transform(Num,"@e 99,999")+" tora(s)"+Space(20)+transform(vtotal,"@E 999,999.999") + " M3"+Space(1)+"R$"+Transform(Totalr, "@e 99,999,999.99")
? " ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ"
? "[COMPRIME]"
? SPACE(05)+lori2
? "[NORMAL]"
fech_imp()
SETCURSOR(0)
RUN USBPRINT C:\TEMP\RELA.TXT /SEL /DEL
DbCloseAll()
Return NILTK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
" Sem saber que era impossível, foi lá e fez !! "
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7929
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
função para data
Ola!
Use dtos() e um arquivo temporário.
por exemplo:
continuando...
Saudações,
Itamar M. Lins Jr.
Use dtos() e um arquivo temporário.
por exemplo:
Código: Selecionar todos
cTemp := "receber001"+dtos(hb_datetime())
cQuery := " dtos(vencimento) >= '"+dtos(inicio)+"' .and. dtos(vencimento) <= '"+dtos(fim)+"' .and. empty(pagamento) "
OrdBy := "cliente + dtos(vencimento) + cod_venda"
Index on &OrdBy Tag re99 to &cTemp for &cQuery temporary
Código: Selecionar todos
cQuery := " dtos(suadtainicio) >= '"+dtos(inicio)+"' .and. dtos(suadtafim) <= '"+dtos(fim)+"' "
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
função para data
Oi Lorival, tinha diversos erros. Eu alterei o seu código, tirei o SET FILTER (que na minha opinião é um procedimento desnecessário e lento), alterei a condição e mudei de posição a verificação. Como é um relatório e espero que o dbf não seja tão grande, pois se for eu aconselharia a criar mais um indice, nem que seja temporário como o colega Itamar mencionou, pois o LOCATE e varrer todo o arquivo
Observe a mudança para "!" nas linhas 55 e 68.
Entre as linhas 65 a 71, responda-me se o plac pode ser zero, senão podemos mudar isso.
Também confirme se ficou lento, mudamos para o modo indexado.
Código: Selecionar todos
/************************/
/* Entradas entre datas */
/* DETALHADO */
Function Ent_dt_tl()
LOCAL L,Vari,Num,Linh,texto
LOCAL VTOTAL :=000000.00
LOCAL VSUBTOTAL :=000000.00
LOCAL TOTALR :=000000.00
LOCAL SUBTTLR :=000000.00
Private vdtin,vdtfin
Sele 1
Use Cadtora Alias Cadtora SHARED NEW EXCLU
IF !NETERR()
If !File("esse.ntx")
Index on esse to esse
Endif
If !File("placa.ntx")
Index on plac to placa
Endif
ELSE
NETMSG()
RETURN(.F.)
ENDIF
Set Index to esse,placa
OrdSetFocus(1)
DbGotop()
Linh :=0
vDtin :=Ctod(" ")
vDtfin:=Ctod(" ")
DispBox(Linh+39,C+08,Linh+44,C+35,1,"w/bg,gb+/b")
@ Linh+40,C+09 Clear to Linh+43,C+34
@ Linh+41,C+10 Say "Data inicial:" Get vDtin Valid datain(vdtin)
@ Linh+42,C+10 Say "Data final :" Get vDtfin Valid dataou(vdtfin)
Read
If Lastkey() = 27
CANCBEEP()
Alert("Opera‡ao cancelada!")
DbCloseAll()
Return
Endif
Pg :=1
L :=0
Num :=0
Vari:=esse
// Set Exac on
// Set Filter to Dten >= vDtin .and. Dten <= vDtfin
LOCATE FOR vDtin>=Dten .AND. Dten<=vDtfin
If !found() // nao eocntrado
ERRORBEEP()
Alert("NÆo houve entradas;neste intervalo de datas!")
USE
Return
endif
abre_imp()
Do While !Eof()
/* mudei de posicao (apesar que acho que nao ha necessidade de testar estas condições, a não ser pelo
plac poder ser zero alguma vez ?
*/
If plac = 0 .or. !(Dten >= vDtin .and. Dten <= vDtfin)
Skip
loop // importante o laço de repeticao
Endif
If L = 0
? PADC(" ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ",80)
? PADC(" MADEIREIRA",80)
? Padc(" Entradas por per¡odo",80)
? Padc(" De "+ dtoc(vDtin) + " … " + Dtoc(vDtfin),80)
? PADC(" ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ",80)
? " Pg.: "+Strzero(pg,2)
? " ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ"
? " Placa Essˆncia Comp Diam Desc Ttl M3 Vlr/M3 Vlr Pg Entrada"
? " ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ"
L:=7
Endif
IF ALLTRIM(VARI) # ALLTRIM(ESSE)
If vsubtotal > 0
? Space(36)+"Subtotal: "+TRANSFORM(VSUBTOTAL,"@e 9,999.999")+" M3 R$ "+Transform(Subttlr, "@e 999,999.99")
VTOTAL+=VSUBTOTAL
VSUBTOTAL:=000000.00
VARI:=ESSE
TOTALR+=SUBTTLR
SUBTTLR:=000000.00
Else
VTOTAL+=VSUBTOTAL
VSUBTOTAL:=000000.00
VARI:=ESSE
TOTALR+=SUBTTLR
SUBTTLR:=000000.00
Endif
Endif
If ALLTRIM(VARI)=ALLTRIM(ESSE)
? Space(3),plac,esse,Transform(comp,"@e 99.99"),Space(1),Transform(diam,"@e 9.99"),;
Space(1),Transform(tdes,"@e 9.999"),Transform(ttm3,"@e 999.999"),;
+SPACE(02),Transform(vlm3,"@e 999.99")+SPACE(02),Transform(vlpg,"@e 999.99"),Space(1),Dten
VSUBTOTAL+=TTM3
subttlr+=vlpg
Endif
DbSkip()
Num++
L++
If L >= 60
L = 0
Pg++
Eject
Endif
If eof()
? Space(36)+"Subtotal: "+TRANSFORM(VSUBTOTAL,"@e 9,999.999")+" M3 R$ "+Transform(Subttlr, "@e 999,999.99")
VTOTAL+=VSUBTOTAL
Totalr+=Subttlr
VARI:=ESSE
Endif
Enddo
? " ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ"
? " Totais:"+Transform(Num,"@e 99,999")+" tora(s)"+Space(20)+transform(vtotal,"@E 999,999.999") + " M3"+Space(1)+"R$"+Transform(Totalr, "@e 99,999,999.99")
? " ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ"
? "[COMPRIME]"
? SPACE(05)+lori2
? "[NORMAL]"
fech_imp()
SETCURSOR(0)
RUN USBPRINT C:\TEMP\RELA.TXT /SEL /DEL
DbCloseAll()
Return NILEntre as linhas 65 a 71, responda-me se o plac pode ser zero, senão podemos mudar isso.
Também confirme se ficou lento, mudamos para o modo indexado.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
função para data
Bom dia a todos os amigos do Fórum!
Caro amigo Pablo.
A variável plac nunca será zero. Esta linha está assim porque quando comecei este projeto, por erros de programação, ocorria que alguns registros se apresentavam em branco no DBF. Já foi corrigido.
Quanto ao modo como você sugeriu, ainda continua com problema, ou seja:
Digamos que houve entrada no dia 10/11/11 no intervalo de 01/11 a 20/11. O programa está informando que não houve entradas nesse período.
Estou queimando os fósforos para tentar acertar tambem ..
Grato pela atenção!
[]
Netavin
Caro amigo Pablo.
A variável plac nunca será zero. Esta linha está assim porque quando comecei este projeto, por erros de programação, ocorria que alguns registros se apresentavam em branco no DBF. Já foi corrigido.
Quanto ao modo como você sugeriu, ainda continua com problema, ou seja:
Digamos que houve entrada no dia 10/11/11 no intervalo de 01/11 a 20/11. O programa está informando que não houve entradas nesse período.
Estou queimando os fósforos para tentar acertar tambem ..
Grato pela atenção!
[]
Netavin
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
" Sem saber que era impossível, foi lá e fez !! "
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
função para data
Puxa detesto fazer isto... eu geralmente gosto da idéia que o colega mesmo encontre e eu não entregar tudo pronto. Pois acho mais importante que você realmente entenda. Eu achei o erro, estava na linha 52 do fonte abaixo:
Removí essa questão do plac e mudei de posição a condição para que atenda a condição do seu laço de repetição. Veja também se não ficou lento, senão ao invés de usar locate utilize o DBSeek( ' ' + DtoS( pData ), .T. ). (Esse .T. faz um SOFT SEEK ) mas antes terá que indexar com INDEX ON Dtos( Dten )
Código: Selecionar todos
/************************/
/* Entradas entre datas */
/* DETALHADO */
Function Ent_dt_tl()
LOCAL L,Vari,Num,Linh,texto
LOCAL VTOTAL :=000000.00
LOCAL VSUBTOTAL :=000000.00
LOCAL TOTALR :=000000.00
LOCAL SUBTTLR :=000000.00
Private vdtin,vdtfin
Sele 1
Use Cadtora Alias Cadtora SHARED NEW EXCLU
IF !NETERR()
If !File("esse.ntx")
Index on esse to esse
Endif
If !File("placa.ntx")
Index on plac to placa
Endif
ELSE
NETMSG()
RETURN(.F.)
ENDIF
Set Index to esse,placa
OrdSetFocus(1)
DbGotop()
Linh :=0
vDtin :=Ctod(" ")
vDtfin:=Ctod(" ")
DispBox(Linh+39,C+08,Linh+44,C+35,1,"w/bg,gb+/b")
@ Linh+40,C+09 Clear to Linh+43,C+34
@ Linh+41,C+10 Say "Data inicial:" Get vDtin Valid datain(vdtin)
@ Linh+42,C+10 Say "Data final :" Get vDtfin Valid dataou(vdtfin)
Read
If Lastkey() = 27
CANCBEEP()
Alert("Opera‡ao cancelada!")
DbCloseAll()
Return
Endif
Pg :=1
L :=0
Num :=0
Vari:=esse
LOCATE FOR Dten>=vDtin .AND. Dten<=vDtfin // estava errado (verifique)
If !found()
ERRORBEEP()
Alert("NÆo houve entradas;neste intervalo de datas!")
USE
Return
endif
abre_imp()
Do While !Eof()
If L = 0
? PADC(" ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ",80)
? PADC(" MADEIREIRA",80)
? Padc(" Entradas por per¡odo",80)
? Padc(" De "+ dtoc(vDtin) + " … " + Dtoc(vDtfin),80)
? PADC(" ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ",80)
? " Pg.: "+Strzero(pg,2)
? " ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ"
? " Placa Essˆncia Comp Diam Desc Ttl M3 Vlr/M3 Vlr Pg Entrada"
? " ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ"
L:=7
Endif
IF ALLTRIM(VARI) # ALLTRIM(ESSE)
If vsubtotal > 0
? Space(36)+"Subtotal: "+TRANSFORM(VSUBTOTAL,"@e 9,999.999")+" M3 R$ "+Transform(Subttlr, "@e 999,999.99")
VTOTAL+=VSUBTOTAL
VSUBTOTAL:=000000.00
VARI:=ESSE
TOTALR+=SUBTTLR
SUBTTLR:=000000.00
Else
VTOTAL+=VSUBTOTAL
VSUBTOTAL:=000000.00
VARI:=ESSE
TOTALR+=SUBTTLR
SUBTTLR:=000000.00
Endif
Endif
If ALLTRIM(VARI)=ALLTRIM(ESSE)
? Space(3),plac,esse,Transform(comp,"@e 99.99"),Space(1),Transform(diam,"@e 9.99"),;
Space(1),Transform(tdes,"@e 9.999"),Transform(ttm3,"@e 999.999"),;
+SPACE(02),Transform(vlm3,"@e 999.99")+SPACE(02),Transform(vlpg,"@e 999.99"),Space(1),Dten
VSUBTOTAL+=TTM3
subttlr+=vlpg
Endif
DbSkip()
If !(Dten >= vDtin .and. Dten <= vDtfin)
Goto Bootom
DbSkip()
Endif
Num++
L++
If L >= 60
L = 0
Pg++
Eject
Endif
If eof()
? Space(36)+"Subtotal: "+TRANSFORM(VSUBTOTAL,"@e 9,999.999")+" M3 R$ "+Transform(Subttlr, "@e 999,999.99")
VTOTAL+=VSUBTOTAL
Totalr+=Subttlr
VARI:=ESSE
Endif
Enddo
? " ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ"
? " Totais:"+Transform(Num,"@e 99,999")+" tora(s)"+Space(20)+transform(vtotal,"@E 999,999.999") + " M3"+Space(1)+"R$"+Transform(Totalr, "@e 99,999,999.99")
? " ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ"
? "[COMPRIME]"
? SPACE(05)+lori2
? "[NORMAL]"
fech_imp()
SETCURSOR(0)
RUN USBPRINT C:\TEMP\RELA.TXT /SEL /DEL
DbCloseAll()
Return NILUm clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
