PRINT DOCUMENT CONFIGURAR CAMPO DO TIPO MEMO

HELIOPASSOS 29/04/2015 13:19:26
#446227
Boa tarde, pessoal.
Estou desenvolvendo um programa, em vb.net e estou tentando usar o objeto printer, printdocument.
utilizo o seguinte comando: e.Graphics.DrawString(analise.ToString, FonteNormal, Brushes.Black, MargemEsquerda + 100, PosicaoDaLinha, New StringFormat())
os dados do campo analise é do tipo memorando e o meu problema é imprimi-lo no formulário pois ele ultrapassa a largura da página. Como posso configurar para imprimir em mais linhas?
Terei que usar mais 4 campos do tipo memorando, estou parado neste problema, pois se os dados que vierem deste campo for pouco, então não haveria problema. Se alguém puder me ajudar aqui? Obrigado.
ICHIHARA 29/04/2015 15:30:57
#446230
Ola Hélio,
Não sei qual a complexidade do seu relatório, mas pq vc não usa o report viewer? Ele quebra o texto automaticamente para vc...
HELIOPASSOS 29/04/2015 17:00:42
#446231
Oi Ichirara, obrigado. O relatório não é complexo, há apenas uma tabela, bd é access 2007. Eu até pensei em utilizar o report viewer, o problema estava em posicionar os campos no relatório também, rsrsrsrsrsr. Para mim parecia mais fácil o print repórter ... mas estou totalmente aberto a ideias. Obrigado.
HELIOPASSOS 04/05/2015 14:19:27
#446338
Alguém ai teria alguma ideia ou solução para este probleminha?
HELIOPASSOS 08/06/2015 14:53:10
#447515
Pessoal, me indicaram o MeasureString, então fiz assim:
Dim linhadeimpressao As New SizeF(670, FonteNormal.Height)
PosicaoDaLinha = PosicaoDaLinha + 25
e.Graphics.DrawString([Ô]Analise Situação:[Ô], FonteNegrito, Brushes.Black, MargemEsquerda, PosicaoDaLinha, New StringFormat())
PosicaoDaLinha = PosicaoDaLinha + 25
While analise.Length > 0
e.Graphics.MeasureString(analise, FonteNormal, linhadeimpressao, StringFormat.GenericDefault, caracteres, linhas)
e.Graphics.DrawString(analise.Substring(0, caracteres), FonteNormal, Brushes.Black, MargemEsquerda, PosicaoDaLinha, New StringFormat)
PosicaoDaLinha += FonteNormal.Height
If PosicaoDaLinha > e.MarginBounds.Height Then
Exit While
End If
analise = analise.Substring(caracteres)
LinhaAtual += 1
End While
[ô]PosicaoDaLinha = PosicaoDaLinha + 25
e.Graphics.DrawString(analise.ToString, FonteNormal, Brushes.Black, MargemEsquerda, PosicaoDaLinha, New StringFormat())
PosicaoDaLinha = PosicaoDaLinha + 30
consegui quebrar o texto, mas não estou conseguindo montar a palavra no final da frase. Por exemplo, [Ô]correspondente[Ô] no final da folha, esta colocando [Ô]c[Ô] e na próxima linha [Ô]orrespondente[Ô] , em diversas palavras esta ocorrendo isto.
Alguém ai teria uma solução ?
DAMASCENO.CESAR 08/06/2015 16:57:59
#447518

nAnalise = Analise.Substring(caracteres)
If Len(nAnalise) > 0 Then
Letra = nAnalise.Substring(0, 1)
Do While Not Letra = [Ô] [Ô] Or Letra = [Ô],[Ô] Or Letra = [Ô].[Ô]
caracteres -= 1
nAnalise= Analise.Substring(caracteres)
Letra = nAnalise.Substring(0, 1)
Loop
End If
HELIOPASSOS 14/07/2015 18:38:21
#448830
Oi Damasceno, boa tarde, Quando alterei a lógica pela sua dica, entrou em loop , e sem substituir do do while not letra ...., corta a palavra e joga o restante para a linha de baixo. Mas preciso estudar um pouco mais, pois quando imprimo mais registros, não está paginando corretamente. Tá um sufoco, rsrsrsrsrsr ( O texto é só abobrinha, para testar o tamanho mesmo).
HELIOPASSOS 17/08/2015 10:59:33
#450118
Pessoal,

Acabei utilizando o reportviewer mesmo. Estava fazendo o agrupamento errado. Mas tudo resolvido.

Obrigado.
Tópico encerrado , respostas não são mais permitidas