ARRUMAR MARGEM DA DIREITA

NOWLIGHTS 25/08/2017 18:04:38
#476028
Boa tarde galera, desenvolvi um sisteminha bem básico pra quebra um galho (uso próprio)

E no sistema montei um esquema para imprimir um cupom não fiscal, a duvida é a seguinte, como faço pra que os valores dos produtos fique na margem da direita alinhado e que cresça para esquerda;




Código que eu uso;

    [ô]Variaveis das linhas
Dim LinhasPorPagina As Single = 0
Dim PosicaoDaLinha As Single = 0
Dim LinhaAtual As Integer = 0

[ô]Variaveis das margens
Dim MargemEsquerda As Single = 0 [ô]e.MarginBounds.Left
Dim MargemSuperior As Single = e.MarginBounds.Top + 130
Dim MargemDireita As Single = e.MarginBounds.Right - 370
Dim MargemInferior As Single = e.MarginBounds.Bottom
Dim CanetaDaImpressora As Pen = New Pen(Color.Black, 1)
Dim codigo As Integer
Dim nome As String

[ô]Variaveis das fontes
Dim FonteNegrito As Font
Dim FonteTitulo As Font
Dim FonteSubTitulo As Font
Dim FonteRodape As Font
Dim FonteNormal As Font

[ô]define efeitos em fontes
FonteNegrito = New Font([Ô]Courier New[Ô], 9, FontStyle.Bold)
FonteTitulo = New Font([Ô]Courier New[Ô], 13)
FonteSubTitulo = New Font([Ô]Courier New[Ô], 13, FontStyle.Bold)
FonteRodape = New Font([Ô]Courier New[Ô], 7)
FonteNormal = New Font([Ô]Courier New[Ô], 11)

[ô]define valores para linha atual e para linha da impressao
LinhaAtual = 0
Dim L As Integer = 0


[ô]nome da empresa
e.Graphics.DrawString([Ô]FERNANDO ROUPAS E ACESSORIOS.[Ô], FonteTitulo, Brushes.Black, MargemEsquerda + 0, 7, New StringFormat())

[ô]Imagem e descrição da empresa
e.Graphics.DrawString([Ô]R Aleatoria de ramdon, 79[Ô], FonteNormal, Brushes.Black, MargemEsquerda + 0, 25, New StringFormat())
e.Graphics.DrawString([Ô]Randomizado, São Paulo-SP[Ô], FonteNormal, Brushes.Black, MargemEsquerda + 0, 38, New StringFormat())
[ô]e.Graphics.DrawString([Ô]São Paulo / SP[Ô], FonteNormal, Brushes.Black, MargemDireita - 188, 38, New StringFormat())
e.Graphics.DrawString([Ô]Tel (33) 3333-3333 / (33) 99999-9999[Ô], FonteNormal, Brushes.Black, MargemEsquerda + 0, 52, New StringFormat())



e.Graphics.DrawString([Ô]-------------------------------------[Ô], FonteNormal, Brushes.Black, MargemEsquerda + 0, 63, New StringFormat())
e.Graphics.DrawString([Ô]C U P O M N Ã O F I S C A L[Ô], FonteNormal, Brushes.Black, MargemEsquerda + 30, 76, New StringFormat())
e.Graphics.DrawString([Ô]-------------------------------------[Ô], FonteNormal, Brushes.Black, MargemEsquerda + 0, 89, New StringFormat())
e.Graphics.DrawString([Ô]COD.VENDA: 51357 [Ô] & System.DateTime.Now, FonteNormal, Brushes.Black, MargemEsquerda + 0, 102, New StringFormat())
e.Graphics.DrawString([Ô]-------------------------------------[Ô], FonteNormal, Brushes.Black, MargemEsquerda + 0, 115, New StringFormat())



[ô]Dados do cliente
e.Graphics.DrawString([Ô]Cliente: [Ô] & VARUS_System.gp1_cliente.Text, FonteNormal, Brushes.Black, MargemEsquerda + 0, 128, New StringFormat())
e.Graphics.DrawString([Ô]R sem nome, 1250[Ô], FonteNormal, Brushes.Black, MargemEsquerda + 0, 141, New StringFormat())
e.Graphics.DrawString([Ô]Jardim sem nome, São Paulo-SP[Ô], FonteNormal, Brushes.Black, MargemEsquerda + 0, 154, New StringFormat())
e.Graphics.DrawString([Ô]Tel (33) 3333-3333 / (33) 99999-9999[Ô], FonteNormal, Brushes.Black, MargemEsquerda + 0, 167, New StringFormat())


[ô]Produtos
e.Graphics.DrawString([Ô]=======(RELAÇÃO DOS PRODUTOS)========[Ô], FonteNormal, Brushes.Black, MargemEsquerda + 0, 184, New StringFormat())


[ô]campos a serem impressos: Codigo e Nome
e.Graphics.DrawString([Ô]código descrição do produto [Ô], FonteNormal, Brushes.Black, MargemEsquerda + 0, 199, New StringFormat())
e.Graphics.DrawString([Ô]qtd vl/unit vl/total[Ô], FonteNormal, Brushes.Black, MargemEsquerda + 0, 209, New StringFormat())
e.Graphics.DrawString([Ô]-------------------------------------[Ô], FonteNormal, Brushes.Black, MargemEsquerda + 0, 222, New StringFormat())


LinhasPorPagina = CInt(e.MarginBounds.Height / FonteNormal.GetHeight(e.Graphics) - 9)

For i = 0 To VARUS_System.grid_venda.Rows.Count - 1
Dim c = i
PosicaoDaLinha = MargemSuperior + (LinhaAtual * FonteNormal.GetHeight(e.Graphics))

[ô]Cod-Descrição produto
e.Graphics.DrawString(VARUS_System.grid_venda.Item(VARUS_System.grid_codigo_produto.Name, c).Value.ToString & [Ô] - [Ô] & VARUS_System.grid_venda.Item(VARUS_System.grid_produto_produto.Name, c).Value.ToString,
FonteNormal, Brushes.Black, MargemEsquerda + 0, PosicaoDaLinha, New StringFormat())

LinhaAtual += 1

[ô]qtd valor unidade
e.Graphics.DrawString(VARUS_System.grid_venda.Item(VARUS_System.grid_unidades_produto.Name, c).Value.ToString & [Ô] Un [Ô] & FormatNumber(VARUS_System.grid_venda.Item(VARUS_System.grid_valor_unit_produto.Name, c).Value.ToString, 2),
FonteNormal, Brushes.Black, MargemEsquerda + 0, PosicaoDaLinha + 18, New StringFormat())

[ô]total
e.Graphics.DrawString(FormatNumber(VARUS_System.grid_venda.Item(VARUS_System.grid_total_produto.Name, c).Value.ToString, 2),
FonteNormal, Brushes.Black, MargemEsquerda + 300, PosicaoDaLinha + 18, New StringFormat())

LinhaAtual += 1
Next

e.Graphics.DrawString([Ô]-------------------------------------[Ô], FonteNormal, Brushes.Black, MargemEsquerda + 0, PosicaoDaLinha + 28, New StringFormat())

[ô]Finalização

e.Graphics.DrawString([Ô]SUB-TOTAL R$ [Ô] & FormatNumber(VARUS_System.final_subtotal_produtos.Text, 2), FonteNormal, Brushes.Black, MargemEsquerda, PosicaoDaLinha + 41, New StringFormat())
e.Graphics.DrawString([Ô]DESCONTO R$ [Ô] & FormatNumber(VARUS_System.final_desc_produto.Text, 2), FonteNormal, Brushes.Black, MargemEsquerda, PosicaoDaLinha + 54, New StringFormat())
e.Graphics.DrawString([Ô]V A L O R T O T A L R$ [Ô] & FormatNumber(VARUS_System.final_Valortotal_produtos.Text, 2), FonteNormal, Brushes.Black, MargemEsquerda, PosicaoDaLinha + 67, New StringFormat())


e.Graphics.DrawString([Ô]=====================================[Ô], FonteNormal, Brushes.Black, MargemEsquerda + 0, PosicaoDaLinha + 80, New StringFormat())

e.Graphics.DrawString([Ô]Forma de Pgto: [Ô] & VARUS_System.final_form_pgt_produto.Text, FonteNormal, Brushes.Black, MargemEsquerda + 0, PosicaoDaLinha + 93, New StringFormat())
e.Graphics.DrawString([Ô]Vendedor: [Ô] & VARUS_System.gp1_vendedor.Text, FonteNormal, Brushes.Black, MargemEsquerda + 0, PosicaoDaLinha + 106, New StringFormat())

e.Graphics.DrawString([Ô]-------------------------------------[Ô], FonteNormal, Brushes.Black, MargemEsquerda + 0, PosicaoDaLinha + 119, New StringFormat())


LinhaAtual += CInt(FonteNormal.GetHeight(e.Graphics))
LinhaAtual += 1

NOWLIGHTS 26/08/2017 12:50:11
#476036
Descobri, é so entender o código...

Dim sf As New StringFormat()

sf.Alignment = StringAlignment.Far


  e.Graphics.DrawString(textoASerAlinhadoADireita,suaFonte, Brushes.Black, New RectangleF(posicaoInicialDaColuna, y, tamanhoDaColuna, suaFonte.Height), sf) 
Tópico encerrado , respostas não são mais permitidas