طباعة محتويات شبكة البيانات DataGridView مباشرة بدون عمل تقرير

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

طباعة محتويات شبكة البيانات DataGridView مباشرة بدون عمل تقرير

مُساهمة من طرف المبرمج الطموح في السبت نوفمبر 30, 2013 11:23 am

بسم الله الرحمن الرحيم 
 DataGridView هى شبكة بيانات تخصص لعرض البيانات فى الفجوال بيسك دوت نت و له العديد من الخصائص و الطرق و الاساليب التى تستطيع استخدمها لتظهر البيانات بشكل حيوى ومع ذلك لا تتوافر فى تلك الشكبة خاصية طباعة المحتويات مباشرة ....لكننا سنقوم بغستخدام طريقة ظريفة لفعل ذلك وهى إنشاء كائن صورة نقطية ورسم شبكة البيانات إلى كائن صورة نقطية ....وذلك من خلال الخطوات البيسطة التالية :

_ فى البداية ومن صندوق الادوات قم بسحب عنصر تحكم PrintDocument على النموذج الخاص بك كما فى الشكل التالى :

_ نقوم بكتابة كود التالى لتعبئة  DataGridView  بالبيانات المطوب عرضها فيه على النحو التالى :
الرمز:
Imports System.Data.SqlClient
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim connectionString As String = "Data Source=.;Initial Catalog=pubs;Integrated Security=True"
        Dim sql As String = "SELECT * FROM Authors"
        Dim connection As New SqlConnection(connectionString)
        Dim dataadapter As New SqlDataAdapter(sql, connection)
        Dim ds As New DataSet()
        connection.Open()
        dataadapter.Fill(ds, "Authors_table")
        connection.Close()
        DataGridView1.DataSource = ds
        DataGridView1.DataMember = "Authors_table"
    End Sub
_نقوم بإنشاء كائن صورة نقطية ورسم شبكة البيانات إلى كائن صورة نقطية كما يلى :

الرمز:
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal 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(0, 0, Me.DataGridView1.Width, Me.DataGridView1.Height))
        e.Graphics.DrawImage(bm, 0, 0)
    End Sub
_ فى زر الامر الخاص بطباعة شبكة البيانات نكتب الكود التالى لتتم عملية الطباعة

الرمز:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        PrintDocument1.Print()
    End Sub

_ الكود الكامل على النحو التالى :
الرمز:
Imports System.Data.SqlClient

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim connectionString As String = "Data Source=.;Initial Catalog=pubs;Integrated Security=True"

        Dim sql As String = "SELECT * FROM Authors"

        Dim connection As New SqlConnection(connectionString)

        Dim dataadapter As New SqlDataAdapter(sql, connection)

        Dim ds As New DataSet()

        connection.Open()

        dataadapter.Fill(ds, "Authors_table")

        connection.Close()

        DataGridView1.DataSource = ds

        DataGridView1.DataMember = "Authors_table"

    End Sub



    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        PrintDocument1.Print()

    End Sub



    Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal 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(0, 0, Me.DataGridView1.Width, Me.DataGridView1.Height))

        e.Graphics.DrawImage(bm, 0, 0)

    End Sub

End Class

المبرمج الطموح
الاشراف
الاشراف

تاريخ التسجيل : 18/02/2011
المساهمات : 117
النقاط : 213
التقيم : 6
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: طباعة محتويات شبكة البيانات DataGridView مباشرة بدون عمل تقرير

مُساهمة من طرف المبرمج الطموح في السبت سبتمبر 20, 2014 2:31 pm

للرفع

المبرمج الطموح
الاشراف
الاشراف

تاريخ التسجيل : 18/02/2011
المساهمات : 117
النقاط : 213
التقيم : 6
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى