|
![]() | رقم المشاركة : 1 (permalink) | ||
![]() السلام عليكم. حبيت اشاركم في مشكلة واجهتني عند طلب زبون لي خيار طباعة datagridview في برنامج كنت قد أعددته له بواسطة vb.net بإستخدام Visual Studio 2010 , وحلها. المشكلة هيا ان البرنامج ومعلومات ال datagridview بالعربية أي يجب الطبعة من اليمين ~اولا~ نحمل من هنا DataGridViewPrinter.cs أو عبر المرفقات. ونفك الضغط (لنفترض فكناه في :c) ~ثانيا~ نبحث عن الملف: csc.exe وهو compiler لل #C. الملف موجود عندي في: كود: C:\Windows\Microsoft.NET\Framework64\v4.0.30319 نفتح command prompt أو cmd كود: CTRL+R -> CMD.exe كود: cd "C:\Windows\Microsoft.NET\Framework64\v4.0.30319" نكتب الأمر التالي: كود: csc /t:library /out:C:/DataGridViewPrinter.dll C:\DataGridViewPrinter.cs ~خامسا~ في VisualStudio نضع مرجع كالاتى: كود: Right-Click on your Project Name-> Add Reference -> Browse -> c:\DatagridViewerPrinter.dll للتجربة: -وضع form جديد -وضع زيرين "Buttons" -وضع DataGridView -وضع برينتدكومنت (اسف هناك رقابة على كلمة دكومنت فالمنتدى) نضع في خصائص ال datagridview RightToLeft = True وفالكود (بعد برمجة كيفية تعبأة ال datagridview أكيد) نضع الكود التالي: (ايبدل ******** بـكلمة دكومنت بالإنجليزية) كود: Public Class Form1 'Create DataGridViewPrinter type variable Dim MyDataGridViewPrinter As DataGridViewPrinter Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If SetupThePrinting() Then Print********1.Print() End If End Sub 'The PrintPage action for the Print******** control Private Sub Print********1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles Print********1.PrintPage Dim more As Boolean = MyDataGridViewPrinter.DrawDataGridView(e.Graphics) If more = True Then e.HasMorePages = True End If End Sub 'The PrintView button Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If SetupThePrinting() Then Dim MyPrintPreviewDialog As PrintPreviewDialog = New PrintPreviewDialog() MyPrintPreviewDialog.******** = Print********1 MyPrintPreviewDialog.ShowDialog() End If End Sub Private Function SetupThePrinting() As Boolean Dim MyPrintDialog As PrintDialog = New PrintDialog() MyPrintDialog.AllowCurrentPage = False MyPrintDialog.AllowPrintToFile = False MyPrintDialog.AllowSelection = False MyPrintDialog.AllowSomePages = False MyPrintDialog.PrintToFile = False MyPrintDialog.ShowHelp = False MyPrintDialog.ShowNetwork = False If MyPrintDialog.ShowDialog() <> DialogResult.OK Then Return False End If Print********1.********Name = "Customers Report" Print********1.PrinterSettings = MyPrintDialog.PrinterSettings Print********1.DefaultPageSettings = MyPrintDialog.PrinterSettings.DefaultPageSettings Print********1.DefaultPageSettings.Margins = New Margins(40, 40, 40, 40) If MessageBox.Show("Do you want the report to be centered on the page", "InvoiceManager - Center on Page", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then MyDataGridViewPrinter = New DataGridViewPrinter(DataGridView1, Print********1, True, True, "Customers", New Font("Tahoma", 18, FontStyle.Bold, GraphicsUnit.Point), Color.Black, True) Else MyDataGridViewPrinter = New DataGridViewPrinter(DataGridView1, Print********1, False, True, "Customers", New Font("Tahoma", 18, FontStyle.Bold, GraphicsUnit.Point), Color.Black, True) End If Return True End Function كود: Tested on Windows 7 x32 VisualStudio 2010 Ultimate Microsoft.NET Framework 4 Client Profile 4.0.30319.1 Final والسلام عليكم ورحمة الله وبركاته اخوكم في الله: SpookWEB Sp00kY 'fhum DataGridView lk hgdldk VB>NET datagridview print vb>net
| |||
| ![]() |
مواقع النشر (المفضلة) |
الكلمات الدليلية (Tags) |
datagridview, print, vb.net |
|
|