- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Impressão dados em colunas
×
Linguagem de Programação ADVPL
Perguntas Impressão dados em colunas
- HelderOSouza
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 36
- Obrigados Recebidos: 0
10 anos 10 meses atrás #19751
por HelderOSouza
Impressão dados em colunas foi criado por HelderOSouza
Boa tarde,
Preciso fazer impressão de dados em colunas, por exemplo, tenho coluna A onde cabe 16 itens, após impressão desses 16 itens pular para a coluna B e assim até a coluna C, depois disso se não for suficiente imprimir em outra folha mais seguindo o mesmo padrão.
Segue abaixo trecho do fonte que estou fazendo.
While !QRYTOT->(EOF())
nValor := QRYTOT->ZZB_VALOR
cDatEmi := QRYTOT->EMISSAO
cCTRC := AllTrim(QRYTOT->ZZB_NUMERO)
cCorLin := "BRA"
If(nCol == 0 .And. nItens > 0 .Or. nPag = 1 .And. Eof())
oPrint:Box(0409,0107,0409,2380)
oPrint:Say(0368,0129,"Emissao" ,oFont11N,100)
oPrint:Say(nLin,0129,cDatEmi ,oFont10,100)
oPrint:Say(0368,0356,"CTRC" ,oFont11N,100)
oPrint:Say(nLin,0356,cCTRC ,oFont10,100)
oPrint:Say(0368,0486,"Valor Frete" ,oFont11N,100)
oPrint:Say(nLin,0486,Transform(nValor,"@RE 999,999,999.99") ,oFont10,100)
//oPrint:Say(nLin,0467,Transform(QRY->ZZB_VALOR,"@RE 999,999,999.99"),oFont07,100)
nCol+= 1
nItens += 1
If cCorLin = "BRA"
cCorLin := "CIN"
Else
cCorLin := "BRA"
Endif
ElseIf(nCol==1 .And. nItens > 19 .Or. nPag = 1 .And. Eof())
oPrint:Box(0409,0107,0409,2380)
oPrint:Say(0368,0929,"Emissao" ,oFont11N,100)
oPrint:Say(nLin,0929,cDatEmi ,oFont10,100)
oPrint:Say(0368,1196,"CTRC" ,oFont11N,100)
oPrint:Say(nLin,1196,cCTRC ,oFont10,100)
oPrint:Say(0368,1300,"Valor Frete" ,oFont11N,100)
oPrint:Say(nLin,1300,Transform(nValor,"@RE 999,999,999.99") ,oFont10,100)
//oPrint:Say(nLin,0467,Transform(QRY->ZZB_VALOR,"@RE 999,999,999.99"),oFont07,100)
nCol+= 1
nItens += 1
If cCorLin = "BRA"
cCorLin := "CIN"
Else
cCorLin := "BRA"
Endif
ElseIf(nCol==2 .And. nItens > 38 .Or. nPag = 1 .And. Eof())
oPrint:Box(0409,0107,0409,2380)
oPrint:Say(0368,1700,"Emissao" ,oFont11N,100)
oPrint:Say(nLin,1700,cDatEmi ,oFont10,100)
oPrint:Say(0368,1996,"CTRC" ,oFont11N,100)
oPrint:Say(nLin,1996,cCTRC ,oFont10,100)
oPrint:Say(0368,2186,"Valor Frete" ,oFont11N,100)
oPrint:Say(nLin,2186,Transform(nValor,"@RE 999,999,999.99") ,oFont10,100)
//oPrint:Say(nLin,0467,Transform(QRY->ZZB_VALOR,"@RE 999,999,999.99"),oFont07,100)
nCol:= 0
nItens += 1
If cCorLin = "BRA"
cCorLin := "CIN"
Else
cCorLin := "BRA"
Endif
nlin += 60
QRYTOT->(dbSkip())
ENDIF
EndDo
QRYTOT->(dbCloseArea())
Se alguém puder me ajudar agradeço
Preciso fazer impressão de dados em colunas, por exemplo, tenho coluna A onde cabe 16 itens, após impressão desses 16 itens pular para a coluna B e assim até a coluna C, depois disso se não for suficiente imprimir em outra folha mais seguindo o mesmo padrão.
Segue abaixo trecho do fonte que estou fazendo.
While !QRYTOT->(EOF())
nValor := QRYTOT->ZZB_VALOR
cDatEmi := QRYTOT->EMISSAO
cCTRC := AllTrim(QRYTOT->ZZB_NUMERO)
cCorLin := "BRA"
If(nCol == 0 .And. nItens > 0 .Or. nPag = 1 .And. Eof())
oPrint:Box(0409,0107,0409,2380)
oPrint:Say(0368,0129,"Emissao" ,oFont11N,100)
oPrint:Say(nLin,0129,cDatEmi ,oFont10,100)
oPrint:Say(0368,0356,"CTRC" ,oFont11N,100)
oPrint:Say(nLin,0356,cCTRC ,oFont10,100)
oPrint:Say(0368,0486,"Valor Frete" ,oFont11N,100)
oPrint:Say(nLin,0486,Transform(nValor,"@RE 999,999,999.99") ,oFont10,100)
//oPrint:Say(nLin,0467,Transform(QRY->ZZB_VALOR,"@RE 999,999,999.99"),oFont07,100)
nCol+= 1
nItens += 1
If cCorLin = "BRA"
cCorLin := "CIN"
Else
cCorLin := "BRA"
Endif
ElseIf(nCol==1 .And. nItens > 19 .Or. nPag = 1 .And. Eof())
oPrint:Box(0409,0107,0409,2380)
oPrint:Say(0368,0929,"Emissao" ,oFont11N,100)
oPrint:Say(nLin,0929,cDatEmi ,oFont10,100)
oPrint:Say(0368,1196,"CTRC" ,oFont11N,100)
oPrint:Say(nLin,1196,cCTRC ,oFont10,100)
oPrint:Say(0368,1300,"Valor Frete" ,oFont11N,100)
oPrint:Say(nLin,1300,Transform(nValor,"@RE 999,999,999.99") ,oFont10,100)
//oPrint:Say(nLin,0467,Transform(QRY->ZZB_VALOR,"@RE 999,999,999.99"),oFont07,100)
nCol+= 1
nItens += 1
If cCorLin = "BRA"
cCorLin := "CIN"
Else
cCorLin := "BRA"
Endif
ElseIf(nCol==2 .And. nItens > 38 .Or. nPag = 1 .And. Eof())
oPrint:Box(0409,0107,0409,2380)
oPrint:Say(0368,1700,"Emissao" ,oFont11N,100)
oPrint:Say(nLin,1700,cDatEmi ,oFont10,100)
oPrint:Say(0368,1996,"CTRC" ,oFont11N,100)
oPrint:Say(nLin,1996,cCTRC ,oFont10,100)
oPrint:Say(0368,2186,"Valor Frete" ,oFont11N,100)
oPrint:Say(nLin,2186,Transform(nValor,"@RE 999,999,999.99") ,oFont10,100)
//oPrint:Say(nLin,0467,Transform(QRY->ZZB_VALOR,"@RE 999,999,999.99"),oFont07,100)
nCol:= 0
nItens += 1
If cCorLin = "BRA"
cCorLin := "CIN"
Else
cCorLin := "BRA"
Endif
nlin += 60
QRYTOT->(dbSkip())
ENDIF
EndDo
QRYTOT->(dbCloseArea())
Se alguém puder me ajudar agradeço
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Impressão dados em colunas
Tempo para a criação da página:0.111 segundos