IMPRESSAO DE CONTEUDO DE RICHTEXTBOX

SIDSIL 21/10/2013 15:38:38
#430217
Boa Tarde

Tenho a tela em anexo, onde eu tenho que preencher as 3 colunas com dados.Exibir oa dados na tela nao sera problema, porem eu preciso imprimi-los da mesma forma como aparecem na tela, ou seja,tudo o que estiver na primeira linha da primeira coluna, devera estar na primeira linha a ser impressa e assim por diante e o mesmo para as outras duas colunas.O que for impresso no papel, devera aparecer como aparece na tela.

Acontece que eu estou meio perdido de como fazer isso,pois o espaço a ser digitado em cada linha, na tela fica delimitado pela area que foi reservada no [Ô]RichTextBox[Ô], porem como e um controle para a digitacao de texto,quando eu for imprimir, o texto sera continuo, sem a quebra de linha que so existe na tela.

Pensei em usar varios [Ô]TextBoxes[Ô] mas seriam muitos que eu teria que usar para cada linha e existe um limite de controles por formulario no VB6.

Aceito sugestoes.

Obrigado e um Abraço

SIDSIL 23/10/2013 10:13:37
#430302
Bom Dia Amigos

E entao,alguem ja teve esse problema.


sds


Ventana
MARCELO.TREZE 23/10/2013 11:57:48
#430311
Resposta escolhida
Colega desculpe a pergunta mas porque vc não utiliza uma grid para fazer o que deseja (flexagrid, listview, dbgrid, etc)

ficaria mais fácil de fazer.
SIDSIL 23/10/2013 16:17:26
#430330
Boa Tarde Marcelo

Na verdade eu estou aberto a sugestoes.Nao utilizei nenhum desses 3 controles porque eu preciso digitar texto 3 nos mesmos.
Preciso de um campo texto que me permita digitar o que eu quiser e que me permita imprimir com as mesmas limitacoes que eu tenho na tela.

Caso eu nao consiga resolver isso, irei colocar cerca de 60 Textboxes, 20 para cada u. dos 3 campos.Eu ate faria isso sem problemas mas o problema aqui é que o meu formulario ja esta cheio de controles e existem alguns recursos como Activex que eu nao sei usar.

Talvez eu crie um segundo formulario, apenas para colocar esses 60 textbox..Nao acho isso muito bonito mas estou sem opções no momento.

Obrigado e um Abraço


MARCELO.TREZE 23/10/2013 17:02:49
#430336
bom colega vai uma dica legal então, coloque um flexgrid no seu projeto e configure conforme necessita.

no mesmo form coloque um textbox, veja bem um unico textbox com a propriedade visible=false, pode colocar em qualquer lugar do form.

agora no flexgrid você vai colar este código

Private Sub MSFlexGrid1_EnterCell()
Text1.Visible = True
Text1.Top = MSFlexGrid1.Top + MSFlexGrid1.CellTop
Text1.Left = MSFlexGrid1.Left + MSFlexGrid1.CellLeft
Text1.Width = MSFlexGrid1.CellWidth
Text1.Text = MSFlexGrid1.Text
Text1.SetFocus
End Sub


Private Sub MSFlexGrid1_LeaveCell()
Text1.Visible = False
MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, MSFlexGrid1.Col) = Text1.Text
End Sub


bom o que o código acima faz, ele simplesmente pega o textbox posiciona sobre a celula que vc selecionou, com exatamente o mesmo tamanho da célula, e o deixa visivel e pronto para ser editado, ao perder o foco da célula o texto do textbox vai para a mesma dando este efeito super legal, de grid editavel, e com uma vantagem sera o textbox que vc precisa.

depois para imprimirn fica mai fácil, pois vc vai fazer um loop no flex grid e imprimir o que deseja da maneira que deseja.

exemplo

For F = 1 To FlexGrid.Rows - 1
Printer.Print FlexGrid.TextMatrix(F, 0) & vbTab & FlexGrid.TextMatrix(F,1) & vbTab & FlexGrid.TextMatrix(F, 2)
Printer.EndDoc
Next F


que irá imprimir exatamente igual a tabela ou bem próximo do esperado necessitando de apenas alguns ajustes
EPISCOPAL 25/10/2013 20:26:10
#430409
Bom voce ainda quer imprimir pelo richtextbox?

Se voce usar a fonte Courier New vai ficar tudo certo, coluna com coluna ... Agora quanto imprimir 3 colunas, vai ter que user uma picture ...

Voce ainda quer imprimir pelo richtextbox?
SIDSIL 27/10/2013 12:37:29
#430424
Boa Tarde Amigos

Bem, estive alguns dias fora mas estou de volta com os mesmos problemas.

Be, WOLFFIRE, nao e que eu queira imprimir pelo RichBox, simplesmente ele e apenas uma alternativa.O que eu quero mesmo e resolver o meu problema.

Sua sugestao e interessante MARCELO-TREZE, acredito que quando eu passar para a linha de baixo o TextoBox, seja posicionado na nova linha para que eu continue digitando, ja que tenho varias linhas, o problema e que o TextBox nao foi para a proxima linha.Ficou sempre na mesma linha.

Obrigado e um abraço a todos
MARCELO.TREZE 29/10/2013 09:08:02
#430465
desculpe colega se você pretende passar para proxima linha com a tecla enter coloque no evento keypress do flexgrid o seguinte


Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)
If KeyAscii =13 Then
If MSFlexGrid1.Row < MSFlexGrid1.Rows - 1 Then
MSFlexGrid1.Row = MSFlexGrid1.Row + 1
MSFlexGrid1.Col = 1
End If
End If
End Sub


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