RE:Como imprimir un datagridview en visual basic 2
Publicado por
caroline (1 intervención) el 26/11/2010 22:37:49
Dim font As New Font("Microsoft Sans Serif", 10)
Dim intPrintAreaHeight, intPrintAreaWidth, marginLeft, marginTop As Int32
With PrintDocument1.DefaultPageSettings
' Inicialice variables locales que contengan los l¡mites del rect ngulo del
' rea de impresi¢n.
intPrintAreaHeight = .PaperSize.Height - .Margins.Top - .Margins.Bottom
intPrintAreaWidth = .PaperSize.Width - .Margins.Left - .Margins.Right
' Inicialice variables locales que contengan los valores de margen que servir n
' de coordenadas X e Y para la esquina superior izquierda del rect ngulo
' del rea de impresi¢n.
marginLeft = .Margins.Left ' Coordenada X
marginTop = .Margins.Top ' Coordenada Y
End With
If PrintDocument1.DefaultPageSettings.Landscape Then
Dim intTemp As Int32
intTemp = intPrintAreaHeight
intPrintAreaHeight = intPrintAreaWidth
intPrintAreaWidth = intTemp
End If
e.Graphics.DrawLine(Pens.Black, 43, 120, 1060, 120)
Dim ycord As Integer = 150
Dim xcord As Integer = 20
Dim contador As Integer = 0
Dim columna As Integer
Dim reglon As Integer
columna = 0
Dim cadena As String '= "Provider=SQLOLEDB.1;Data Source=VENTAS\SQLEXPRESS;Initial Catalog=master;Integrated Security=SSPI"
While (contador < 32 And reglon < conteofilas2)
'cadena = DataGridView1.Item(columna, reglon).Value.ToString
'e.Graphics.DrawString(cadena, font, Brushes.Black, 45, ycord)
While (columna < 6)
cadena = Detalle.Item(columna, reglon).FormattedValue
Select Case columna
Case 0
e.Graphics.DrawString(cadena, font, Brushes.Black, 45, ycord)
Case 1
e.Graphics.DrawString(cadena, font, Brushes.Black, 140, ycord)
Case 2
e.Graphics.DrawString(cadena, font, Brushes.Black, 207, ycord)
Case 3
e.Graphics.DrawString(cadena, font, Brushes.Black, 650, ycord)
Case 4
e.Graphics.DrawString(cadena, font, Brushes.Black, 613, ycord)
Case 5
e.Graphics.DrawString(cadena, font, Brushes.Black, 760, ycord)
Case 6
e.Graphics.DrawString(cadena, font, Brushes.Black, 890, ycord)
End Select
columna = columna + 1
End While
reglon = reglon + 1
ycord = ycord + 20
contador = contador + 1
columna = 0
End While
If (conteofilas >= 32) Then
e.HasMorePages = True
conteofilas = conteofilas - 32
Else
e.HasMorePages = False
reglon = 0
columna = 0
conteofilas = conteofilas2
End If
estooo es en el boton o opcion clic para imprimirr
ok
PrintDialog1.Document = PrintDocument1
If PrintDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
PrintDocument1.Print()
End If
conteofilas = Detalle.RowCount
conteofilas2 = conteofilas
si tienen dudas me pueden mandar un correo con gusto les aclaroo las dudas suert