Jump to content

[VB 2005] Criar uma pagina para impressão


overcloked
 Share

Recommended Posts

overcloked

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?  😄

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?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.