Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alissong

Quebra um linha automaticamento

Recommended Posts

Pessoal, Tenho um sistema que controla o patrimônio do meu setor, mas queria saber como faço para quebrar um linha automaticamento no objeto printer, pois o campo discriminacao excede o tamanho do campo.Exemplo:DiscriminaçãoXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - FimXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxVeja o código:

Private Sub imprime_dados() Dim tamanhofolha As Integer Dim i As Integer Printer.Orientation = vbPRORLandscape Printer.FontName = "Arial" Printer.FontSize = "10" tamanhofolha = Printer.ScaleHeight - 1440 If adoRs.State = 1 Then Set adoRs = NothingadoRs.Open sql$, gconexao, adOpenKeyset, adLockPessimisticgconexao.Execute sql$adoRs.MoveFirst contapagina = 0 Call cabecalho Do While Not adoRs.EOF If Printer.CurrentY >= tamanhofolha Then Printer.NewPage Call cabecalho End If '------------------------------------------- Printer.Print Tab(0); adoRs("discriminacao"); Printer.Print Tab(115); adoRs("patrimonio"); Printer.Print Tab(132); adoRs("quantidade"); Printer.Print Tab(145); adoRs("setor"); Printer.Print Tab(160); adoRs("situacao") '-------------------------------------------- adoRs.MoveNextLoopPrinter.EndDocMsgBox "Os dados foram enviados para a impressora ... ! "End Sub

Alguém pode me ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique a quantidade máxima de caracteres que podem ser impressos sem que haja ultrapasse a borda. Ou para que seja algo mais genérico tem algumas propriedades que verificam essa questão, de posse disso, faça um método que realize a quebra, logo após concatene os caracteres Chr(10) mais o Chr(13), para saltar a linha e posicionar na primeira posição da próxima linha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Luiz Humberto,Não entendir, pode faz um exemplo. O número máximo caracter a ser impresso por linha no campo é 74.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alisong, Você está colocando na mesma linha varios atributos.Porém o ultimo atributo está excedendo o tamanho da página certo ?Faça o seguinte, antes de você colocar Printer.Print Tab(0); adoRs("discriminacao");verifique o tamanho maximo que ele pode ter, por exemplo, 30 caracteres ...Faça o seguinte, Printer.Print Tab(0); left(adoRs("discriminacao"),30) & vbcrlf & right(adoRs("discriminacao"),len(adoRs("discriminacao"))-30)Com isto ele fará uma quebra de pagina, porém você terá que fazer uma rotina que valide se a quebra foi em cima da palavra por exemplodiscriminação -> "Isto é um teste de rotina de quebrar a palavra"Na primeira linha ficaria: Isto é um teste de rotina de qna segunda linha:uebrar a palavratem que tratar esta quebra antes de mandar imprimir...Logo Crie uma função que retorne este valor ja tratado ....Ok ??Um abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

André,Tenho que criar um modulo que faça a quebra de linha antes da impressão. É isso..Seu Código sem a função está funcionando, mas imprime um linha final sem quebra.Vou tentar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso ai...Eu tenho uma rotina que quebra e alinha um texto de acordo com o numero de caracteres que você deseja ter em uma linha ....Vou procurar e depois eu posto para você ...OkUm abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.