Perguntas Quebra de página
- diegoo_martins
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 175
- Obrigados Recebidos: 0
8 anos 2 meses atrás - 8 anos 2 meses atrás #31059
por diegoo_martins
Quebra de página foi criado por diegoo_martins
Pessoal, bom dia.
Criei um relatório e este é impresso normalmente, mas estou com problemas para quebrar de página. Alguém pode me auxiliar....
Obrigado desde já...
Segue Trecho do fonte.
Static Function RunReport()
li := 1075
cQuery := "SELECT Z3_NUM,Z3_OF,Z3_CLIENTE,Z3_TPFRETE,Z3_NATUREZ,Z3_CONDPAG,Z3_TRANSP,Z3_PESOL,Z3_PBRUTO,"+;
"Z3_VOLUME1,Z3_FORNECE,Z3_SERVICO,Z3_QTDSERV,Z3_VLRSERV,Z3_UMSERV,Z3_ORDFABR, Z3_PEDCLIE, Z3_OBS,"+;
"Z4_PRODUTO,Z4_DESC,Z4_NUM,Z3_EMISSAO,Z4_ITEM,Z4_QTDVEN,Z4_UM, Z4_NFORI"
cQuery += " FROM " + RetSqlName("SZ3") + " SZ3 "
cQuery += " JOIN " + RetSqlName("SZ4") + " SZ4"
cQuery += " ON SZ3.Z3_NUM = SZ4.Z4_NUM"
cQuery += " WHERE SZ3.Z3_NUM BETWEEN '" + mv_par01 + "' AND '" + mv_par02 + "' "
cQuery += " AND SZ3.D_E_L_E_T_ = '' "
cQuery += " ORDER BY Z3_NUM"
TCQUERY cQuery NEW ALIAS "TRBSZ3"
cQuery := ChangeQuery(cQuery)
DBSelectArea("TRBSZ3")
While TRBSZ3->(!Eof()) .and. TRBSZ3->Z4_NUM == TRBSZ3->Z3_NUM
If li > 2700
ImpRodape() // Imprime rodape do formulario e salta para a proxima folha
ImpCabec()
li := 1075
Endif
li:=li+45
oPrinter:Say(li,0058,TRBSZ3->Z4_ITEM,oArial8,,0)
oPrinter:Say(li,0200,TRBSZ3->Z4_NFORI,oArial8,,0)
oPrinter:Say(li,0400,TRBSZ3->Z4_PRODUTO,oArial8,,0)
oPrinter:Say(li,0700,TRBSZ3->Z4_DESC,oArial8,,0)
oPrinter:Say(li,1850,Transform(TRBSZ3->Z4_QTDVEN,"@E 9,999,999.9999"),oArial8,,,,1)
oPrinter:Say(li,2156,TRBSZ3->Z4_UM,oArial8,,0)
TRBSZ3->(DbSkip())
EndDo
TRBSZ3->(DbCloseArea())
Return .T.
Criei um relatório e este é impresso normalmente, mas estou com problemas para quebrar de página. Alguém pode me auxiliar....
Obrigado desde já...
Segue Trecho do fonte.
Static Function RunReport()
li := 1075
cQuery := "SELECT Z3_NUM,Z3_OF,Z3_CLIENTE,Z3_TPFRETE,Z3_NATUREZ,Z3_CONDPAG,Z3_TRANSP,Z3_PESOL,Z3_PBRUTO,"+;
"Z3_VOLUME1,Z3_FORNECE,Z3_SERVICO,Z3_QTDSERV,Z3_VLRSERV,Z3_UMSERV,Z3_ORDFABR, Z3_PEDCLIE, Z3_OBS,"+;
"Z4_PRODUTO,Z4_DESC,Z4_NUM,Z3_EMISSAO,Z4_ITEM,Z4_QTDVEN,Z4_UM, Z4_NFORI"
cQuery += " FROM " + RetSqlName("SZ3") + " SZ3 "
cQuery += " JOIN " + RetSqlName("SZ4") + " SZ4"
cQuery += " ON SZ3.Z3_NUM = SZ4.Z4_NUM"
cQuery += " WHERE SZ3.Z3_NUM BETWEEN '" + mv_par01 + "' AND '" + mv_par02 + "' "
cQuery += " AND SZ3.D_E_L_E_T_ = '' "
cQuery += " ORDER BY Z3_NUM"
TCQUERY cQuery NEW ALIAS "TRBSZ3"
cQuery := ChangeQuery(cQuery)
DBSelectArea("TRBSZ3")
While TRBSZ3->(!Eof()) .and. TRBSZ3->Z4_NUM == TRBSZ3->Z3_NUM
If li > 2700
ImpRodape() // Imprime rodape do formulario e salta para a proxima folha
ImpCabec()
li := 1075
Endif
li:=li+45
oPrinter:Say(li,0058,TRBSZ3->Z4_ITEM,oArial8,,0)
oPrinter:Say(li,0200,TRBSZ3->Z4_NFORI,oArial8,,0)
oPrinter:Say(li,0400,TRBSZ3->Z4_PRODUTO,oArial8,,0)
oPrinter:Say(li,0700,TRBSZ3->Z4_DESC,oArial8,,0)
oPrinter:Say(li,1850,Transform(TRBSZ3->Z4_QTDVEN,"@E 9,999,999.9999"),oArial8,,,,1)
oPrinter:Say(li,2156,TRBSZ3->Z4_UM,oArial8,,0)
TRBSZ3->(DbSkip())
EndDo
TRBSZ3->(DbCloseArea())
Return .T.
Ultima edição: 8 anos 2 meses atrás por diegoo_martins.
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
- diegoo_martins
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 175
- Obrigados Recebidos: 0
8 anos 2 meses atrás #31078
por diegoo_martins
Respondido por diegoo_martins no tópico Quebra de página
Bom dia,
Resolvido inserindo oPrinter:EndPage() e oPrinter:StartPage() para controle dentro do While.
While TRBSZ3->(!Eof()) .and. TRBSZ3->Z4_NUM == TRBSZ3->Z3_NUM
li:=li+45
oPrinter:Say(li,0058,TRBSZ3->Z4_ITEM,oArial8,,0)
oPrinter:Say(li,0200,TRBSZ3->Z4_NFORI,oArial8,,0)
oPrinter:Say(li,0400,TRBSZ3->Z4_PRODUTO,oArial8,,0)
oPrinter:Say(li,0700,TRBSZ3->Z4_DESC,oArial8,,0)
oPrinter:Say(li,1850,Transform(TRBSZ3->Z4_QTDVEN,"@E 9,999,999.9999"),oArial8,,,,1)
oPrinter:Say(li,2100,Transform(TRBSZ3->Z4_VLRUNIT,"@E 9,999,999.9999"),oArial8,,,,1)
oPrinter:Say(li,2200,TRBSZ3->Z4_UM,oArial8,,0)
TRBSZ3->(DbSkip())
If li > 2700
oPrinter:Say(2810,0058, "CONTINUA ..." , oArial10N,,0)
oPrinter:EndPage()
oPrinter:StartPage()
ImpCabec()
li := 1075
ImpRodape()
Endif
EndDo
TRBSZ3->(DbCloseArea())
Return .T.
Resolvido inserindo oPrinter:EndPage() e oPrinter:StartPage() para controle dentro do While.
While TRBSZ3->(!Eof()) .and. TRBSZ3->Z4_NUM == TRBSZ3->Z3_NUM
li:=li+45
oPrinter:Say(li,0058,TRBSZ3->Z4_ITEM,oArial8,,0)
oPrinter:Say(li,0200,TRBSZ3->Z4_NFORI,oArial8,,0)
oPrinter:Say(li,0400,TRBSZ3->Z4_PRODUTO,oArial8,,0)
oPrinter:Say(li,0700,TRBSZ3->Z4_DESC,oArial8,,0)
oPrinter:Say(li,1850,Transform(TRBSZ3->Z4_QTDVEN,"@E 9,999,999.9999"),oArial8,,,,1)
oPrinter:Say(li,2100,Transform(TRBSZ3->Z4_VLRUNIT,"@E 9,999,999.9999"),oArial8,,,,1)
oPrinter:Say(li,2200,TRBSZ3->Z4_UM,oArial8,,0)
TRBSZ3->(DbSkip())
If li > 2700
oPrinter:Say(2810,0058, "CONTINUA ..." , oArial10N,,0)
oPrinter:EndPage()
oPrinter:StartPage()
ImpCabec()
li := 1075
ImpRodape()
Endif
EndDo
TRBSZ3->(DbCloseArea())
Return .T.
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.092 segundos