× Linguagem de Programação ADVPL

Perguntas Impressão dados em colunas

Mais
10 anos 10 meses atrás #19751 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

Por favor Acessar ou Registrar para participar da conversa.

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