Hi,
I am stuck at a fork in the road. Note that I am trying to print out a report with a database from Access. I have considered two options. Just to format the printpreviewcontrol using printdocument and loop the data from the table in the report or to fill the data in a datagridview and just print that. The problem I'm having with both of these options is for one I need a little help on how to load the data onto the report from the database and two If I were to just print the datagridview how print the whole datagrid and not a small part? Sorry I'm a beginner. Thanks
Here is my code so far.
This is the code of the printing form which displays the printpreview. I commented out the database code, just to use option one but yes the data does show up on the grid if I remove it.
That displays this but I dont know how to further load the data from the table onto the report.
Attachment 97457
But If I use the datagridview I only get a portion on the screen. Where am I going wrong?
Attachment 97459
I am stuck at a fork in the road. Note that I am trying to print out a report with a database from Access. I have considered two options. Just to format the printpreviewcontrol using printdocument and loop the data from the table in the report or to fill the data in a datagridview and just print that. The problem I'm having with both of these options is for one I need a little help on how to load the data onto the report from the database and two If I were to just print the datagridview how print the whole datagrid and not a small part? Sorry I'm a beginner. Thanks
Here is my code so far.
This is the code of the printing form which displays the printpreview. I commented out the database code, just to use option one but yes the data does show up on the grid if I remove it.
Code:
Public Class frmPrint
Private Sub PrintDocument1_PrintPage(sender As System.Object, e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
'Dim bm As New Bitmap(Me.DataGridView1.Width, Me.DataGridView1.Height)
'DataGridView1.DrawToBitmap(bm, New Rectangle(100, 100, Me.DataGridView1.Width, Me.DataGridView1.Height))
'e.Graphics.DrawImage(bm, 100, 200)
Dim HeaderFont As Font = New Drawing.Font("Times New Roman", 30, FontStyle.Bold)
Dim Header2Font As Font = New Drawing.Font("Times New Roman", 25, FontStyle.Bold)
Dim BodyFont As Font = New Drawing.Font("Calibri", 16, FontStyle.Bold)
Dim point1 As New Point(100, 200)
Dim point2 As New Point(750, 200)
Dim pointA As New Point(100, 230)
Dim pointB As New Point(750, 230)
e.Graphics.DrawString("Contact List", HeaderFont, Brushes.Black, 310, 100)
e.Graphics.DrawString("Report", HeaderFont, Brushes.Black, 350, 150)
e.Graphics.DrawRectangle(Pens.Black, e.MarginBounds)
e.Graphics.DrawLine(Pens.Black, point1, point2)
e.Graphics.DrawLine(Pens.Black, pointA, pointB)
e.Graphics.DrawString("FirstName", BodyFont, Brushes.Black, 100, 200)
e.Graphics.DrawString("LastName", BodyFont, Brushes.Black, 250, 200)
e.Graphics.DrawString("City", BodyFont, Brushes.Black, 400, 200)
e.Graphics.DrawString("State", BodyFont, Brushes.Black, 530, 200)
e.Graphics.DrawString("Email", BodyFont, Brushes.Black, 670, 200)
End Sub
Private Sub frmPrint_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'Dim con As New clsInfo
'con.Connectionstring = mdlGlobal.strConnection
'con.SQL = "SELECT ID, LastName, FirstName, Address, City, State, ZipCode, Telephone, Cellphone, Email, Birthdate FROM tblContactInfo" _
'& " ORDER BY LastName, FirstName"
'con.da.Fill(con.ds, "MyTable")
'DataGridView1.DataSource = con.ds.Tables("MyTable").DefaultView
PrintPreviewControl1.Document = PrintDocument1
End Sub
End Class
Attachment 97457
But If I use the datagridview I only get a portion on the screen. Where am I going wrong?
Attachment 97459