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

Tiago fernando

Imprimir

3 mensagens neste tópico

Óla pessoal,

eu comecei agora a mexer em VB por isso ainda não sei quase nada :D.

Eu estou a fazer um catálogo dos meus cds, ou seja, filmes, jogos, etc. e eu queria criar um botão que imprimi-se, a lista dos cds com os dados que contem na base de dados. Como eu faço para imprimir os dados de uma base de dados ou da listview.

:P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas!

Tenho aqui algum código (VB 2008) que talvez te ajude a começar a imprimir... é dum post que tinha feito noutro topico... mas aqui fica mais adequado... pode ser que te ajude um pouco e pode ser que alguem nos ajude a ambos :D

dá tambem uma vista de olhos na secção de tuturiais e how to's... tem la um topico util acerca de impressão  :P

Eu consigo por o meu prog a imprimir e a previsualizar sem problemas

tenho uma DataGrid que recebe a info duma BD e imprimo os dados referentes à row activa. Até aqui tudo sem problemas

o problema é que o prog imprime sempre a mesma coisa...

vamos supor que mando imprimir o primeiro registo da datagrid... funciona na perfeição...

mas a partir daí sempre que mando imprimir outros registos o que é impresso é sempre o 1º que mandei imprimir :D

se fechar o prog e voltar a abrir... voltamos ao mesmo.. o 1º funciona... mas funciona pra sempre...

Private Sub B_imprimir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_imprimir.Click

Dim result As DialogResult = PrintDialog.ShowDialog()

Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\bd.mdb"
        Conn.Open()

        SQL = "SELECT * from registos where numero =" & Me.dataGrid.CurrentRow.Cells(0).Value
        Dim da As New OleDb.OleDbDataAdapter(SQL, Conn)
        da.Fill(ds, "registos")
        Conn.Close()


        stringToPrint = "Nº Processo: " & ds.Tables("registos").Rows(0).Item("numero") & Chr(0) & "Data de Abertura: " & ds.Tables("registos").Rows(0).Item("data_processo")


        If (result = Windows.Forms.DialogResult.OK) Then
            PrintDocument.DocumentName = "Processo nº  " & dataGrid.CurrentRow.Cells(0).Value
            PrintDocument.Print()
            PrintDocument.Dispose()
        End If
End Sub

Private Sub PrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument.PrintPage

        Dim charactersOnPage As Integer = 0
        Dim linesPerPage As Integer = 0

        ' Sets the value of charactersOnPage to the number of characters 
        ' of stringToPrint that will fit within the bounds of the page.
        e.Graphics.MeasureString(stringToPrint, Me.Font, e.MarginBounds.Size, _
            StringFormat.GenericTypographic, charactersOnPage, linesPerPage)

        ' Draws the string within the bounds of the page
        e.Graphics.DrawString(stringToPrint, Me.Font, Brushes.Black, _
            e.MarginBounds, StringFormat.GenericTypographic)

        ' Remove the portion of the string that has been printed.
        stringToPrint = stringToPrint.Substring(charactersOnPage)

        ' Check to see if more pages are to be printed.
        e.HasMorePages = stringToPrint.Length > 0

    End Sub

a função PrintDocument_PrintPage foi copiada da ajuda do VB

fazendo o Dispose depois do print não era suposto ele limpar a memória e cada ordem de impressão ser uma ordem nova?

alguem sabe como resolver isto?

estou a usar o VB express 2008

grato desde já pelas possíveis resposta

Rui Marques

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Alias aquilo que eu queria mesmo era imprimir os dados que aparecem na listview ou na textbox mas a picturebox.

O que aconte-se é o seguinte eu tenho uma listeview que joga os dados nas texbox e a imagem na picture box e eu criar imprimir esse dados.

Como faço?

Caso seja necessario posso colocar aqui o codigo

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