SABER EM QUE LINHA ESTOU

USUARIO.EXCLUIDOS 23/05/2007 15:37:07
#217950
Turma,

fiz uma rotina de impressao e gostaria de saber como faco pra imprimir um novo cabecalho a cada x linha.
Uso o objeto priter e envio os dados para uma matricial

Exemplo:
+-----------------+ 'aqui é o cabecalho (por tanto linha 1)
|CASA DA MAE JOANA| 'linha 2
+-----+-----------+ 'linha 3 (fim do cabecalho)
|15/01| 10,00| 'estou na linha 4
|16/01| 20,00| 'estou na linha 5
|17/01| 25,00| 'estou na linha 6
| | | 'estou na linha 7
| | | 'estou na linha 8
| | | 'estou na linha 9
| | | 'estou na linha 10
| | | 'estou na linha 11
| | | 'estou na linha 12
+-----+-----------+ 'estou na linha 13 (inicio do rodape)
|Total| 55,00| 'estou na linha 14
+-----+-----------+ 'estou na linha 15 (fim do rodape)


No exemplo acima, gostaria que a cada 15 linhas tivesse um novo cabecalho.
Pra isso preciso saber em que linha estou e nao sei como identificar.


Agradeco a todos

VBAPRENDE 23/05/2007 15:41:00
#217951
é so você criar uma variavel e a cada printer que voce der soma a variavel+1 ai você vai ter a quantidade de linha
Imprimiu a linha 1 linha=linnha+1
Imprimiu a linha 2 linha=linnha+1
linha=2

acho que é isso que vc qué.
USUARIO.EXCLUIDOS 23/05/2007 15:57:27
#217956
elsvb,fa asssim

private sub cabecalho()
print "linha 1"
print "linha 2"
print "linha 3"
end Sub


'depois chame ela
'vai contando os prints

if linha > 30 then
cabecalho
endif
USUARIO.EXCLUIDOS 23/05/2007 16:39:48
#217971
A dica de vcs é boa, mas acontece algo estranho.

a cada 20 linhas eu printo o cabecalho mas em determinado momento há um pulo. vejam como fica o meu relatorio:

abaixo tem o impresso (envie para impressora que a saida é em arquivo txt)
No inicio vai imprimindo bem, mas notem que apos a linha 44, imprime duas linha em branco 45 e 46 comeca um novo cabecalho na linha 47. Nesse momento imprime 9 registros e dá um pulo lá pra linha 77 e continua a imprimir os 11 registros restantes.
O certo era imprimir os 20 registros (e nao 9, pular pra uma linha lá frente e imprimir os 11 finais)

Do lado deixei o nr da linha em parenteses


Codigo (linha 1)
0001 (linha 2)
0002 (linha 3)
0003 (linha 4)
0004 (linha 5)
0005 (linha 6)
0006 (linha 7)
0007 (linha 8)
0008 (linha 9)
0009 (linha 10)
0010 (linha 11)
0011 (linha 12)
0012 (linha 13)
0013 (linha 14)
0014 (linha 15)
0015 (linha 16)
0016 (linha 17)
0017 (linha 18)
0018 (linha 19)
0019 (linha 20)
0020 (linha 21)
(linha 22)
(linha 23)
Codigo (linha 24)
0021 (linha 25)
0022 (linha 26)
0023 (linha 27)
0024 (linha 28)
0025 (linha 29)
0026 (linha 30)
0027 (linha 31)
0028 (linha 32)
0029 (linha 33)
0030 (linha 34)
0031 (linha 35)
0032 (linha 36)
0033 (linha 37)
0034 (linha 38)
0035 (linha 39)
0036 (linha 40)
0037 (linha 41)
0038 (linha 42)
0039 (linha 43)
0040 (linha 44)
(linha 45)
(linha 46)
Codigo (linha 47)
0041 (linha 48)
0042 (linha 49)
0043 (linha 50)
0044 (linha 51)
0045 (linha 52)
0046 (linha 53)
0047 (linha 54)
0048 (linha 55)
0049 (linha 56)
(linha 57)
(linha 58)
(linha 59)
(linha 60)
(linha 61)
(linha 62)
(linha 63)
(linha 64)
(linha 65)
(linha 66)
(linha 67)
(linha 68)
(linha 69)
(linha 70)
(linha 71)
(linha 72)
(linha 73)
(linha 74)
(linha 75)
(linha 76)
0050 (linha 77)
0051 (linha 78)
0052 (linha 79)
0053 (linha 80)
0054 (linha 81)
0055 (linha 82)
0056 (linha 83)
0057 (linha 84)
0058 (linha 85)
0059 (linha 86)
0060 (linha 87)

USUARIO.EXCLUIDOS 23/05/2007 22:57:53
#218016
O Objeto Printer se nao estou enganado utiliza o tamanho de folha padrao da impressora. Pode ser por isso ocorra esses "pulos" entre a impressao. Se vc estiver imprimindo em uma folha em branco recomendo imprimir direto pra impressora utilizando o comando "print #1", ele imprimi continuamente até vc mandar parar.
ZULLIM 23/05/2007 23:06:39
#218017
Dim Tamanhofolha As Integer

Tamanhofolha = Printer.ScaleHeight - 2000

while SuaCondicao
If (Printer.CurrentY >= Tamanhofolha) Then
Printer.NewPage
Call Cabecalho
End If
'Aqui vai o que você vai imprimir
Wend
Tópico encerrado , respostas não são mais permitidas