• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

overcloked

[VB 2005] Criar uma pagina para impressão

3 mensagens neste tópico

Boas ppl,

O que quero fazer é gerar uma pagina para depois imprimi-la, ora pelo que tive a ler ontem numa pagina do msdn que ja n me lembro do link, é necessario desenha-la toda atrvez de codigo, a minha pergunta é se não haverá maneira mais facil?  :D

O codigo que tenho é este:

    Private Sub mDoc_PrintPage(ByVal sender As Object, _
    ByVal e As System.Drawing.Printing.PrintPageEventArgs) _
    Handles mDoc.PrintPage


        conn.ConnectionString = "data source=vmwareserver;initial catalog=MercoFarma;persist security info=False;user id=admin;password=admin"
        cmd.CommandText = "SELECT Tab.ProdEncomenda.ProdutoNome, TabProdEncomenda.Quantidade, TabProdEncomenda.PrecoTotal FROM TabProdEncomenda WHERE (TabProdEncomenda.ID_Encomenda = " & IdSelectedEncomenda & ")"
        cmd.Connection = conn

        Dim ProdutoNome As String
        Dim ProdutoPrecoTotal, EncomendaPreco As Double
        Dim Quantidade As Int32


        Dim xPos As Single = e.MarginBounds.Left
        Dim yPos As Single = e.MarginBounds.Top
        Dim lineHeight As Single = mFont.GetHeight(e.Graphics)
        Dim reader As DbDataReader = Nothing
        Try
            conn.Open()
            reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)


            'percorre os dados do datareader
            Do While reader.Read

                ProdutoNome = reader.GetString(0)
                Quantidade = reader.GetInt32(1)
                ProdutoPrecoTotal = reader.GetValue(2)


                With e.Graphics

                    'TODO Acabar de desenhar a pagina de impressão

                    .DrawString(ProdutoNome, _
                      mFont, Brushes.Black, xPos, yPos)

                    xPos += .MeasureString(ProdutoNome, mFont).Width

                    .DrawString("Qnt: " & Quantidade, _
                      mFont, Brushes.Black, xPos, yPos)

                    xPos += .MeasureString("Qnt: " & Quantidade, mFont).Width

                    .DrawString("Preço: " & ProdutoPrecoTotal & "€", _
                      mFont, Brushes.Black, xPos, yPos)

                    yPos += lineHeight

                End With

            Loop

        Catch ex As Exception
        Finally
            reader.Close()
            conn.Close()
        End Try

    End Sub

Com este codigo consigo ir buscar os valores à BD e imprimi-los numa folha cada um numa linha diferente, mas queria por umas linhas género tabela uma imagem com o logotipo no canto sup esquerdo.

Alguem me pode ajudar a fazer isto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tá optmo watt bom link, vai ajudar... mas tal como pensei isto dá cabo da cabeça a qq um :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora