- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- relatorio nao salva
×
Linguagem de Programação ADVPL
Perguntas relatorio nao salva
- vitor kwon
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 13
- Obrigados Recebidos: 0
10 anos 11 meses atrás #19991
por vitor kwon
relatorio nao salva foi criado por vitor kwon
bom dia pessoal...Estou com uma duvida, desenvolvi este relatorio e ele esta trazendo os dados normalmente....mas ao fechar a tela de impressao e abrir de novo ele sempre volta em branco.....vou no menu, aciono a rotina e fecho....normal...se eu tento acionar a rotina novamente ela vem em branco.......se eu fechar o protheus e acessar a rotina ela vem certo...mas vem certo so se eu fechar o modulo e abrir.....nao sei onde esta se perdendo.......alguém tem
#INCLUDE "protheus.ch"
#INCLUDE "topconn.ch"
user function relatorio()
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 "
Local nTipo := 18
Local cPerg := "RREL001"
Local cAlias := "ADA"
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.)
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
RptStatus({|| RunReport(cTitulo,cTamanho,cNomeprog,nTipo,cAlias) },cTitulo)
Return
Static Function RunReport(cTitulo,cTamanho,cNomeprog,nTipo,cAlias)
Local nOrdem := 0
Local nLin := 80
Local cCabec1 := ""
Local cCabec2 := ""
cCabec1 :="Relatorio Contratos"
cCabec2 :=""
SetRegua(RecCount())
dbSeek(xFilial(cAlias)+ADB->ADB_NUMCTR,.T.)
While (cAlias)->(!EOF())
If MV_PAR01 > ADA->ADA_EMISSA
(cAlias)->( dbSkip())
Loop
EndIf
If MV_PAR02 < ADA->ADA_EMISSA
(cAlias)->( dbSkip() )
Loop
EndIf
If MV_PAR03 > ADA->ADA_NUMCTR
(cAlias)->( dbSkip())
Loop
EndIf
If MV_PAR04 < ADA->ADA_NUMCTR
(cAlias)->( dbSkip() )
Loop
EndIf
cSql:= " SELECT * FROM "+RETSQLNAME("ADB")+ " ADB "
cSql+= " WHERE "
cSql+= " ADB_NUMCTR = ‘"+ADA->ADA_NUMCTR+"‘ "
If !empty(mv_par04)
cSql+= " AND ADB_NUMCTR BETWEEN ‘"+mv_par03+"‘ AND ‘"+mv_par04+"‘ "
Endif
cSql+= " AND ADB.D_E_L_E_T_ <> ‘*‘ "
cSql+= " ORDER BY ADB_NUMCTR "
If Select("ADBSQL") > 0
ADBSQL->(DbCloseArea())
End
TcQuery cSql New Alias "ADBSQL"
DBSELECTAREA("ADB")
DBSETORDER(1)
dbSeek(xFilial(cAlias)+(cAlias)->ADA_NUMCTR,.T.)
If ADBSQL->ADB_NUMCTR == ADA->ADA_NUMCTR
If nLin > 55
Cabec(cTitulo,cCabec1,cCabec2,cNomeProg,cTamanho,nTipo)
nLin := 8
Endif
nLin++
@nLin,00 psay ("CLIENTE : ")+(ADA->ADA_CODCLI)
nLin++
@nLin,00 psay ("Contrato Numero: ")+CVALTOCHAR(ADB->ADB_NUMCTR)
nLin++
@nLin,00 psay ("Nota Fiscal : ")+CVALTOCHAR(ADB->ADB_NUMCTR)
nLin++
While ADBSQL->(!eof())
If nLin > 55
Cabec(cTitulo,cCabec1,cCabec2,cNomeProg,cTamanho,nTipo)
nLin := 8
Endif
@nLin,00 Psay ("ITEM :")+CVALTOCHAR(ADBSQL->ADB_ITEM)
@nLin,30 Psay CVALTOCHAR(ADBSQL->ADB_NUMCTR)
@nLin,50 Psay CVALTOCHAR(ADBSQL->ADB_DESPRO)
@nLin,90 Psay CVALTOCHAR(ADBSQL->ADB_QUANT)
@nLin,110 Psay CVALTOCHAR(ADBSQL->ADB_PRCVEN)
@nLin,130 Psay CVALTOCHAR(ADBSQL->ADB_TOTAL)
@nLin,00 Psay Replicate("_",150)
ADBSQL->(dbSkip())
nLin++
Enddo
Endif
(cAlias)->(dbSkip()) // Avanca o ponteiro do registro no arquivo
ENDDO
SET DEVICE TO SCREEN
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
#INCLUDE "protheus.ch"
#INCLUDE "topconn.ch"
user function relatorio()
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 "
Local nTipo := 18
Local cPerg := "RREL001"
Local cAlias := "ADA"
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.)
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
RptStatus({|| RunReport(cTitulo,cTamanho,cNomeprog,nTipo,cAlias) },cTitulo)
Return
Static Function RunReport(cTitulo,cTamanho,cNomeprog,nTipo,cAlias)
Local nOrdem := 0
Local nLin := 80
Local cCabec1 := ""
Local cCabec2 := ""
cCabec1 :="Relatorio Contratos"
cCabec2 :=""
SetRegua(RecCount())
dbSeek(xFilial(cAlias)+ADB->ADB_NUMCTR,.T.)
While (cAlias)->(!EOF())
If MV_PAR01 > ADA->ADA_EMISSA
(cAlias)->( dbSkip())
Loop
EndIf
If MV_PAR02 < ADA->ADA_EMISSA
(cAlias)->( dbSkip() )
Loop
EndIf
If MV_PAR03 > ADA->ADA_NUMCTR
(cAlias)->( dbSkip())
Loop
EndIf
If MV_PAR04 < ADA->ADA_NUMCTR
(cAlias)->( dbSkip() )
Loop
EndIf
cSql:= " SELECT * FROM "+RETSQLNAME("ADB")+ " ADB "
cSql+= " WHERE "
cSql+= " ADB_NUMCTR = ‘"+ADA->ADA_NUMCTR+"‘ "
If !empty(mv_par04)
cSql+= " AND ADB_NUMCTR BETWEEN ‘"+mv_par03+"‘ AND ‘"+mv_par04+"‘ "
Endif
cSql+= " AND ADB.D_E_L_E_T_ <> ‘*‘ "
cSql+= " ORDER BY ADB_NUMCTR "
If Select("ADBSQL") > 0
ADBSQL->(DbCloseArea())
End
TcQuery cSql New Alias "ADBSQL"
DBSELECTAREA("ADB")
DBSETORDER(1)
dbSeek(xFilial(cAlias)+(cAlias)->ADA_NUMCTR,.T.)
If ADBSQL->ADB_NUMCTR == ADA->ADA_NUMCTR
If nLin > 55
Cabec(cTitulo,cCabec1,cCabec2,cNomeProg,cTamanho,nTipo)
nLin := 8
Endif
nLin++
@nLin,00 psay ("CLIENTE : ")+(ADA->ADA_CODCLI)
nLin++
@nLin,00 psay ("Contrato Numero: ")+CVALTOCHAR(ADB->ADB_NUMCTR)
nLin++
@nLin,00 psay ("Nota Fiscal : ")+CVALTOCHAR(ADB->ADB_NUMCTR)
nLin++
While ADBSQL->(!eof())
If nLin > 55
Cabec(cTitulo,cCabec1,cCabec2,cNomeProg,cTamanho,nTipo)
nLin := 8
Endif
@nLin,00 Psay ("ITEM :")+CVALTOCHAR(ADBSQL->ADB_ITEM)
@nLin,30 Psay CVALTOCHAR(ADBSQL->ADB_NUMCTR)
@nLin,50 Psay CVALTOCHAR(ADBSQL->ADB_DESPRO)
@nLin,90 Psay CVALTOCHAR(ADBSQL->ADB_QUANT)
@nLin,110 Psay CVALTOCHAR(ADBSQL->ADB_PRCVEN)
@nLin,130 Psay CVALTOCHAR(ADBSQL->ADB_TOTAL)
@nLin,00 Psay Replicate("_",150)
ADBSQL->(dbSkip())
nLin++
Enddo
Endif
(cAlias)->(dbSkip()) // Avanca o ponteiro do registro no arquivo
ENDDO
SET DEVICE TO SCREEN
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.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
10 anos 11 meses atrás #19992
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico relatorio nao salva
Vitor boa noite, cara não entendi muito bem a logica desse relatorio seu, porque essa query no meio de um do while ?
cSql:= " SELECT * FROM "+RETSQLNAME("ADB")+ " ADB "
cSql+= " WHERE "
cSql+= " ADB_NUMCTR = ‘"+ADA->ADA_NUMCTR+"‘ "
If !empty(mv_par04)
cSql+= " AND ADB_NUMCTR BETWEEN ‘"+mv_par03+"‘ AND ‘"+mv_par04+"‘ "
Endif
cSql+= " AND ADB.D_E_L_E_T_ <> ‘*‘ "
cSql+= " ORDER BY ADB_NUMCTR "
If Select("ADBSQL") > 0
ADBSQL->(DbCloseArea())
End
TcQuery cSql New Alias "ADBSQL"
desculpa mas ta muito confuso.
poderia explicar a logica que precisa ai posso entender melhor.
Abraços.
cSql:= " SELECT * FROM "+RETSQLNAME("ADB")+ " ADB "
cSql+= " WHERE "
cSql+= " ADB_NUMCTR = ‘"+ADA->ADA_NUMCTR+"‘ "
If !empty(mv_par04)
cSql+= " AND ADB_NUMCTR BETWEEN ‘"+mv_par03+"‘ AND ‘"+mv_par04+"‘ "
Endif
cSql+= " AND ADB.D_E_L_E_T_ <> ‘*‘ "
cSql+= " ORDER BY ADB_NUMCTR "
If Select("ADBSQL") > 0
ADBSQL->(DbCloseArea())
End
TcQuery cSql New Alias "ADBSQL"
desculpa mas ta muito confuso.
poderia explicar a logica que precisa ai posso entender melhor.
Abraços.
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- vitor kwon
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 13
- Obrigados Recebidos: 0
10 anos 11 meses atrás #19995
por vitor kwon
Respondido por vitor kwon no tópico relatorio nao salva
LUIZ, DESCULPA ENVIEI A FONTE DE TESTE QUE ESTAVA FAZENDO COM QUERY.... SEGUE O TRECHO DA FONTE QUE ESTOU DESENVOLVENDO.....SOU MEGA INICIANTE, AQUELA FONTE COM A QUERY DO MEIO FOI UM COLEGA DO SITE QUE ME AJUDOU...RSRSRS.....OBRIGADO!!!
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Processamento. RPTSTATUS monta janela com a regua de processamento. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
RptStatus({|| RunReport(cTitulo,cTamanho,cNomeprog,nTipo,cAlias) },cTitulo)
Return
Static Function RunReport(cTitulo,cTamanho,cNomeprog,nTipo,cAlias)
LOCAL nTotal := 0
Local nLin := 220
Local cCabec1 := ""
Local cCabec2 := ""
LOCAL pTven := 0
LOCAL cFil := 0
LOCAL cFi := ""
LOCAL Posi:= Posicione("SC6",12,xFilial("SC6")+ADB->ADB_NUMCTR,"C6_NUM")
cCabec1 :="Relatorio Contratos"
cCabec2 :="RELATORIO TESTE EMPRESA LTDA"
SetRegua(RecCount())
While (cAlias)->(!eof())
DBSELECTAREA("ADB")
DBSETORDER(1)
dbSeek(xFilial(cAlias)+ADA->ADA_NUMCTR,.T.)
DBSELECTAREA("SC6")
DBORDERNICKNAME("CONT")
dbSeek(xFilial(cAlias)+SC6->C6_CONTRAT+SC6->C6_PRODUTO+SC6->C6_NUM)
If MV_PAR01 > ADA->ADA_EMISSA
(cAlias)->( dbSkip())
Loop
EndIf
If MV_PAR02 < ADA->ADA_EMISSA
(cAlias)->( dbSkip() )
Loop
EndIf
If MV_PAR03 > ADA->ADA_NUMCTR
(cAlias)->( dbSkip())
Loop
EndIf
If MV_PAR04 < ADA->ADA_NUMCTR
(cAlias)->( dbSkip())
Loop
EndIf
If MV_PAR05 > ADA->ADA_CODCLI
(cAlias)->( dbSkip())
Loop
EndIf
If MV_PAR06 < ADA->ADA_CODCLI
(cAlias)->( dbSkip() )
Loop
EndIf
If nLin > 55
Cabec(cTitulo,cCabec1,cCabec2,cNomeProg,cTamanho,nTipo)
nLin := 9
Endif
If lAbortPrint
@nLin,00 PSAY "*** CANCELADO PELO OPERADOR ***"
Exit
Endif
@nLin,00 PSAY ("Cliente: ")+ ADA->ADA_CONTR2 +SPACE(33)+"Quant:"+SPACE(2)+"Valor unit:"+space(2)+"Empenhado"+SPACE(2)+" Saldo:"+SPACE(4)+"Valor Empenhado:"+SPACE(+" Pedido :"+SPACE(6)+" Nota Fiscal:"
nLin++
@nLin,00 PSAY ("Contrato: ")+ ADB->ADB_NUMCTR
nLin++
@nLin,00 PSAY ("Pedido Inicial: ")+IF(Posicione("SC6",12,xFilial("SC6")+ADB->ADB_NUMCTR,"C6_NUM")<>CVALTOCHAR(cFil)," Sem Pedido :",(Posicione("SC6",12,xFilial("SC6")+ADB->ADB_NUMCTR,"C6_NUM")))
nLin +=3
DBSELECTAREA("SC6")
DBORDERNICKNAME("CONT")
dbSeek(xFilial(cAlias)+SC6->C6_CONTRAT+SC6->C6_PRODUTO+SC6->C6_NUM)
While ("ADB")->(!EOF()) .AND. ADB->ADB_Filial == xFilial("ADB") .AND. (SC6->C6_CONTRAT == ADA->ADA_NUMCTR);
.AND. ( ADB->ADB_NUMCTR == ADA->ADA_NUMCTR )
If nLin > 55
Cabec(cTitulo,cCabec1,cCabec2,cNomeProg,cTamanho,nTipo)
nLin := 9
Endif
@nLin,00 Psay ("ITEM :")+CVALTOCHAR(ADB->ADB_ITEM)
@nLin,10 Psay CVALTOCHAR(ADB->ADB_DESPRO)
@nLin,50 Psay CVALTOCHAR(ADB->ADB_QUANT)
@nLin,60 Psay CVALTOCHAR(ADB->ADB_PRCVEN)
@nLin,70 Psay CVALTOCHAR(ADB->ADB_QTDEMP)
@nLin,80 Psay CVALTOCHAR(ADB->ADB_QUANT - ADB->ADB_QTDEMP)
@nLin,90 Psay (ADB->ADB_QTDEMP * ADB->ADB_PRCVEN ) PICTURE "@E 999,999.99"
DBSELECTAREA("SC6")
DBSETORDER(12)
dbSeek(xFilial(cAlias)+SC6->C6_CONTRAT+SC6->C6_PRODUTO+SC6->C6_NUM+SC6->C6_ITEM+SC6->C6_NOTA)
If SC6->C6_CONTRAT == ADB->ADB_NUMCTR .AND. SC6->C6_PRODUTO == ADB->ADB_CODPRO .AND. SC6->C6_QTDENT == ADB->ADB_QTDENT .AND. SC6->C6_ITEM == ADB->ADB_ITEM
@nLin,117 Psay IF(SC6->C6_NUM==CVALTOCHAR(cFi)," Sem Pedido :",SC6->C6_NUM)
@nLin,132 Psay SC6->C6_NOTA
SC6->(DBSKIP())
ENDIF
nLin++
pTven += (ADB->ADB_QTDEMP * ADB->ADB_PRCVEN )
nTotal+= ADB->ADB_TOTAL
ADB-> (dbSkip())
ENDDO
If nLin > 55
Cabec(cTitulo,cCabec1,cCabec2,cNomeProg,cTamanho,nTipo)
nLin := 9
Endif
@nLin,00 PSAY Replicate("-", 150 )
nLin := nLin + 1
@nLin,80 Psay "Valor Total do Contrato:"
@nLin,130 Psay (nTotal) PICTURE "@E 999,999,999.99"
nLin++
@nLin,80 Psay "Valor Soma dos Pedidos Empenhados:"
@nLin,130 Psay (pTven )PICTURE "@E 999,999,999.99"
nLin++
@nLin,80 Psay "Saldo Total do Contrato:"
@nLin,130 Psay (nTotal - pTven ) PICTURE "@E 999,999,999.99"
nLin+= 3
nTotal := 0
pTven := 0
(cAlias)->(dbSkip())
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
dbCommitAll()
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,"G","","mv_par03","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})
AADD(aPerg,{"Contrato ate:","","","mv_ch4","C",6,0,1,"G","","mv_par04","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})
AADD(aPerg,{"Cliente de:","","","mv_ch5","C",8,0,1,"G","","mv_par05","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})
AADD(aPerg,{"Cliente de:","","","mv_ch6","C",8,0,1,"G","","mv_par06","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})
AjustaSx1(cPerg,aPerg)
RestArea(aArea)
RETURN
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Processamento. RPTSTATUS monta janela com a regua de processamento. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
RptStatus({|| RunReport(cTitulo,cTamanho,cNomeprog,nTipo,cAlias) },cTitulo)
Return
Static Function RunReport(cTitulo,cTamanho,cNomeprog,nTipo,cAlias)
LOCAL nTotal := 0
Local nLin := 220
Local cCabec1 := ""
Local cCabec2 := ""
LOCAL pTven := 0
LOCAL cFil := 0
LOCAL cFi := ""
LOCAL Posi:= Posicione("SC6",12,xFilial("SC6")+ADB->ADB_NUMCTR,"C6_NUM")
cCabec1 :="Relatorio Contratos"
cCabec2 :="RELATORIO TESTE EMPRESA LTDA"
SetRegua(RecCount())
While (cAlias)->(!eof())
DBSELECTAREA("ADB")
DBSETORDER(1)
dbSeek(xFilial(cAlias)+ADA->ADA_NUMCTR,.T.)
DBSELECTAREA("SC6")
DBORDERNICKNAME("CONT")
dbSeek(xFilial(cAlias)+SC6->C6_CONTRAT+SC6->C6_PRODUTO+SC6->C6_NUM)
If MV_PAR01 > ADA->ADA_EMISSA
(cAlias)->( dbSkip())
Loop
EndIf
If MV_PAR02 < ADA->ADA_EMISSA
(cAlias)->( dbSkip() )
Loop
EndIf
If MV_PAR03 > ADA->ADA_NUMCTR
(cAlias)->( dbSkip())
Loop
EndIf
If MV_PAR04 < ADA->ADA_NUMCTR
(cAlias)->( dbSkip())
Loop
EndIf
If MV_PAR05 > ADA->ADA_CODCLI
(cAlias)->( dbSkip())
Loop
EndIf
If MV_PAR06 < ADA->ADA_CODCLI
(cAlias)->( dbSkip() )
Loop
EndIf
If nLin > 55
Cabec(cTitulo,cCabec1,cCabec2,cNomeProg,cTamanho,nTipo)
nLin := 9
Endif
If lAbortPrint
@nLin,00 PSAY "*** CANCELADO PELO OPERADOR ***"
Exit
Endif
@nLin,00 PSAY ("Cliente: ")+ ADA->ADA_CONTR2 +SPACE(33)+"Quant:"+SPACE(2)+"Valor unit:"+space(2)+"Empenhado"+SPACE(2)+" Saldo:"+SPACE(4)+"Valor Empenhado:"+SPACE(+" Pedido :"+SPACE(6)+" Nota Fiscal:"
nLin++
@nLin,00 PSAY ("Contrato: ")+ ADB->ADB_NUMCTR
nLin++
@nLin,00 PSAY ("Pedido Inicial: ")+IF(Posicione("SC6",12,xFilial("SC6")+ADB->ADB_NUMCTR,"C6_NUM")<>CVALTOCHAR(cFil)," Sem Pedido :",(Posicione("SC6",12,xFilial("SC6")+ADB->ADB_NUMCTR,"C6_NUM")))
nLin +=3
DBSELECTAREA("SC6")
DBORDERNICKNAME("CONT")
dbSeek(xFilial(cAlias)+SC6->C6_CONTRAT+SC6->C6_PRODUTO+SC6->C6_NUM)
While ("ADB")->(!EOF()) .AND. ADB->ADB_Filial == xFilial("ADB") .AND. (SC6->C6_CONTRAT == ADA->ADA_NUMCTR);
.AND. ( ADB->ADB_NUMCTR == ADA->ADA_NUMCTR )
If nLin > 55
Cabec(cTitulo,cCabec1,cCabec2,cNomeProg,cTamanho,nTipo)
nLin := 9
Endif
@nLin,00 Psay ("ITEM :")+CVALTOCHAR(ADB->ADB_ITEM)
@nLin,10 Psay CVALTOCHAR(ADB->ADB_DESPRO)
@nLin,50 Psay CVALTOCHAR(ADB->ADB_QUANT)
@nLin,60 Psay CVALTOCHAR(ADB->ADB_PRCVEN)
@nLin,70 Psay CVALTOCHAR(ADB->ADB_QTDEMP)
@nLin,80 Psay CVALTOCHAR(ADB->ADB_QUANT - ADB->ADB_QTDEMP)
@nLin,90 Psay (ADB->ADB_QTDEMP * ADB->ADB_PRCVEN ) PICTURE "@E 999,999.99"
DBSELECTAREA("SC6")
DBSETORDER(12)
dbSeek(xFilial(cAlias)+SC6->C6_CONTRAT+SC6->C6_PRODUTO+SC6->C6_NUM+SC6->C6_ITEM+SC6->C6_NOTA)
If SC6->C6_CONTRAT == ADB->ADB_NUMCTR .AND. SC6->C6_PRODUTO == ADB->ADB_CODPRO .AND. SC6->C6_QTDENT == ADB->ADB_QTDENT .AND. SC6->C6_ITEM == ADB->ADB_ITEM
@nLin,117 Psay IF(SC6->C6_NUM==CVALTOCHAR(cFi)," Sem Pedido :",SC6->C6_NUM)
@nLin,132 Psay SC6->C6_NOTA
SC6->(DBSKIP())
ENDIF
nLin++
pTven += (ADB->ADB_QTDEMP * ADB->ADB_PRCVEN )
nTotal+= ADB->ADB_TOTAL
ADB-> (dbSkip())
ENDDO
If nLin > 55
Cabec(cTitulo,cCabec1,cCabec2,cNomeProg,cTamanho,nTipo)
nLin := 9
Endif
@nLin,00 PSAY Replicate("-", 150 )
nLin := nLin + 1
@nLin,80 Psay "Valor Total do Contrato:"
@nLin,130 Psay (nTotal) PICTURE "@E 999,999,999.99"
nLin++
@nLin,80 Psay "Valor Soma dos Pedidos Empenhados:"
@nLin,130 Psay (pTven )PICTURE "@E 999,999,999.99"
nLin++
@nLin,80 Psay "Saldo Total do Contrato:"
@nLin,130 Psay (nTotal - pTven ) PICTURE "@E 999,999,999.99"
nLin+= 3
nTotal := 0
pTven := 0
(cAlias)->(dbSkip())
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
dbCommitAll()
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,"G","","mv_par03","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})
AADD(aPerg,{"Contrato ate:","","","mv_ch4","C",6,0,1,"G","","mv_par04","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})
AADD(aPerg,{"Cliente de:","","","mv_ch5","C",8,0,1,"G","","mv_par05","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})
AADD(aPerg,{"Cliente de:","","","mv_ch6","C",8,0,1,"G","","mv_par06","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})
AjustaSx1(cPerg,aPerg)
RestArea(aArea)
RETURN
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- relatorio nao salva
Tempo para a criação da página:0.149 segundos