× Linguagem de Programação ADVPL

Perguntas DUVIDA EM RELATORIO

Mais
11 anos 2 semanas atrás #19302 por vitor kwon
boa tarde, pessoal estou com uma duvida que nao consigo dar continuidade, travei nesta questao, por favor preciso de ajuda dos colaboradores,...estou fazendo um relatorio onde preciso trazer os itens do pedido...os numeros vem corretos, do pedido, do contrato, tudo ok, mas nao consigo trazer todo os itens do pedido, so vem o primeiro item, vem certinho, mas preciso que venha todos os itens....so esta vindo o primeiro item do pedido....agradeco a ajuda..

#INCLUDE "protheus.ch"

/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ RREL01 º Autor ³ VITOR KWON º Data ³ 19/11/2013 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDescricao ³ RELATORIO DE CONTRATOS - SPTF º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ GENERICO º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
User Function REL_PAR2()




Local cDesc1 := "Este programa tem como objetivo imprimir relatorio "
Local cDesc2 := "de acordo com os parametros informados pelo usuario."
Local cDesc3 := "Relatorio de Contratos"
Local cPict := ""
Local cTitulo := "Relatorio de Contratos"

Local aOrd := {"Contratos",""}
Local cTamanho := "M"
Local cNomeprog := "Relatorio Contratos - SPTF"
Local nTipo := 18
Local cPerg := "RREL001"
Local cAlias := "SC5"

Private aReturn := { "Zebrado", 1, "Administracao", 2, 2, 1, "", 1}
PRIVATE lEnd := .f.
Private lAbortPrint := .F.
Private nLastKey := 0
Private m_pag := 01
Private wnrel := "EL01"
dbSelectArea(cAlias)
dbSetOrder(1)

CriaSx1(cPerg)
Pergunte(cPerg,.T.)

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Monta a interface padrao com o usuario... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

wnrel := SetPrint(cAlias,cNomeProg,cPerg,@cTitulo,cDesc1,cDesc2,cDesc3,.F.,aOrd,.F.,cTamanho,,.T.)

If nLastKey == 27
Return
Endif

SetDefault(aReturn,cAlias)

If nLastKey == 27
Return
Endif


//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Processamento. RPTSTATUS monta janela com a regua de processamento. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

RptStatus({|| RunReport(cTitulo,cTamanho,cNomeprog,nTipo,cAlias) },cTitulo)
Return

/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºFun‡„o ³RUNREPORT º Autor ³ AP6 IDE º Data ³ 16/06/07 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDescri‡„o ³ Funcao auxiliar chamada pela RPTSTATUS. A funcao RPTSTATUS º±±
±±º ³ monta a janela com a regua de processamento. º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Programa principal º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/

Static Function RunReport(cTitulo,cTamanho,cNomeprog,nTipo,cAlias)

local aVetor:= {}
local nI := 0
LOCAL aVetor2 := SC6->C6_DESCRI
Local nOrdem := 0
Local nLin := 80
Local cCabec1 := ""
Local cCabec2 := ""
cCabec1 :="Relatorio Contratos"+Space(8)+"Nota fiscal"+Space(8)+"Emissão do Pedido"+Space(8)+"Emissão da nota"+Space(10)//+"Contrato"
cCabec2 :=""


dbSelectArea(cAlias)
nOrdem := aReturn[8]
dbSetOrder(nOrdem)



SetRegua(RecCount())



dbSeek(xFilial(cAlias)+C5_NUM+C5_NOTA,.T.) //posicionar a tabela
While (cAlias)->(!EOF())

DBSELECTAREA("SC6")
DBSETORDER(1)
dbSeek(xFilial(cAlias)+SC5->C5_NUM,.T.)




If MV_PAR01 > SC5->C5_EMISSAO
(cAlias)->( dbSkip())
Loop
EndIf

If MV_PAR02 < SC5->C5_EMISSAO
(cAlias)->( dbSkip() )
Loop
EndIf


If MV_PAR03 > SC6->C6_CONTRAT
(cAlias)->( dbSkip())
Loop
EndIf

If MV_PAR04 < SC6->C6_CONTRAT
(cAlias)->( dbSkip() )
Loop
EndIf






If lAbortPrint
@nLin,00 PSAY "*** CANCELADO PELO OPERADOR ***"
Exit
Endif

nLin++




If nLin > 55
Cabec(cTitulo,cCabec1,cCabec2,cNomeProg,cTamanho,nTipo)
nLin := 8
Endif




@nLin,00 PSAY ("CLIENTE: ")+ SC5->C5_CLIENTE
@nLin,28 PSAY (cAlias)->C5_NOTA
@nLin,46 PSAY DTOC((cAlias)->C5_EMISSAO)
@nLin,71 PSAY DTOC(SC6->C6_ENTREG)
nLin++
@nLin,00 PSAY ("Contrato Numero: ")+SC6->C6_CONTRAT
nLin++
@nLin,00 PSAY ("Pedido de Venda: ")+SC6->C6_NUM
nLin++
@nLin,00 Psay ("ÏTEM")
nLin++
@nLin,00 PSAY SC6->C6_DESCRI











@nLin,00 Psay Replicate("_",150)

(cAlias)->(dbSkip()) // Avanca o ponteiro do registro no arquivo

ENDDO


//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Finaliza a execucao do relatorio... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

SET DEVICE TO SCREEN

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Se impressao em disco, chama o gerenciador de impressao... ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

If aReturn[5]==1
dbCommitAll()
SET PRINTER TO
OurSpool(wnrel)
Endif

MS_FLUSH()

RETURN




STATIC FUNCTION CriaSx1(cPerg)

Local aArea := GetArea()
Local aPerg := {}



AADD(aPerg,{ "DATA DE:","","","mv_ch1","D",8,0,0,"G","","mv_par01","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})

AADD(aPerg,{ "DATA ATE:","","","mv_ch2","D",8,0,0,"G","","mv_par02","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})

AADD(aPerg,{ "Contrato de:","","","mv_ch3","C",6,0,1,"C","","mv_par03","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})

AADD(aPerg,{"Contrato ate:","","","mv_ch4","C",6,0,1,"G","","mv_par04","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})




AjustaSx1(cPerg,aPerg)
RestArea(aArea)
RETURN

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 1 semana atrás #19303 por mbrigagao
Respondido por mbrigagao no tópico DUVIDA EM RELATORIO
Vitor,

Coloque a impressão dos itens dentro de um Do While, mais ou menos assim.

DBSELECTAREA("SC6")
DBSETORDER(1)
dbSeek(xFilial(cAlias)+SC5->C5_NUM,.T.)


While !EOF() .And. SC6->C6_NUM == SC5->C5_NUM
If MV_PAR01 > SC5->C5_EMISSAO
(cAlias)->( dbSkip())
Loop
EndIf

If MV_PAR02 < SC5->C5_EMISSAO
(cAlias)->( dbSkip() )
Loop
EndIf
......
......

SC6->(dbSkip())
EndDo

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 1 semana atrás #19336 por vitor kwon
Respondido por vitor kwon no tópico DUVIDA EM RELATORIO
boa tarde marcelo, poxa infelizmente nao funcionou sua dica, mas obrigado pela colaboracao....esta vindo so o primeiro item do pedido, vem certinho so que nao estou conseguindo fazer aparecer todos eles....ja tentei varias formas.. A sua dica ficaria assim, mas nao sei porque nao esta funcinando.....


*

SetRegua(RecCount())

dbSeek(xFilial(cAlias)+C5_NUM+C5_NOTA,.T.) //posicionar a tabela


DBSELECTAREA("SC6")
DBSETORDER(1)
dbSeek(xFilial(cAlias)+SC5->C5_NUM,.T.)

While !EOF() .AND. SC6->C6_NUM == SC5->C5_NUM





If MV_PAR01 > SC5->C5_EMISSAO
(cAlias)->( dbSkip())
Loop
EndIf

If MV_PAR02 < SC5->C5_EMISSAO
(cAlias)->( dbSkip() )
Loop
EndIf


*

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 1 semana atrás #19343 por mbrigagao
Respondido por mbrigagao no tópico DUVIDA EM RELATORIO
Vitor,

Manda o fonte para darmos uma olhada.

At.

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.137 segundos
Joomla templates by a4joomla