بتـــــاريخ : 11/6/2008 8:00:24 PM
الفــــــــئة
  • الحـــــــــــاسب
  • التعليقات المشاهدات التقييمات
    0 762 0

    موضوعات متعلقة

    الطباعة دون تقرير SQL

    الطباعة دون تقرير

    الناقل : mahmoud | العمر :35 | المصدر : www.a3j.com

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

    الطباعة دون تقرير



    أخذنا في الدرس الماضي طباعة قاعدة البيانات عن طريق التقرير . والأن سوف نتحدث عن كيفية الطباعة دون أي تقرير أو أدوات أخرى.

    عملية الطباعة هذه تعتمد على حلقة الدوران في كل مرة يتم طباعة سجل وإعادة الحلقة على السجل الذي بعده .

    باستخدام كائن الطباعة Printer Object

    أولاً إفتح المشروع الذي كنت تعمل به في الدروس السابقة


    ونحن نعرف أن قاعدة البيانات التي نعمل بها من ثلاث حقول وهي:

    tell : رقم الهاتف

    name : الإسم

    adr : العنوان



    والجدول DBGrid1 يتكون من

    أعمدة Column وتختصر Col

    صفوف Row



    والأن سوف نطبع كل عمود وصف عن طريق حلقة التكرار و كائن الطباعة Printer Object



    ضع الكود التالي في قسم التصريحات العامة General

    Private Sub PrintFont(sFontName As String, _
    nFontSize As Integer, _
    bFontBold As Boolean, _
    bFontItalic As Boolean, _
    bFontUnderline As Boolean)
    Printer.FontName = sFontName
    Printer.FontSize = nFontSize
    Printer.FontBold = bFontBold
    Printer.FontItalic = bFontItalic
    Printer.FontUnderline = bFontUnderline
    End Sub

    وهو تحديد خصائص الخط الذي سف يظهر على الطابعة.



    بعد ذلك ضع الكود التالي : إتجاه الطباعة

    Private Sub PrintText(fXCoordinate As Single, _
    fYCoordinate As Single, _
    sText As String)
    Dim lStart As Long
    Dim lIndex As Long

    Printer.CurrentX = fXCoordinate
    Printer.CurrentY = fYCoordinate

    lStart = 1
    lIndex = InStr(lStart, sText, vbCrLf)
    Do While lIndex <> 0
    Mid$(sText, lIndex, 2) = ' '
    lStart = lStart + lIndex
    lIndex = InStr(lStart, sText, vbCrLf)
    Loop
    Printer.Print sText
    End Sub

    وبعد ذلك ضع الكود التالي :

    Private Sub ResultsPrint()
    Dim nLoopCtr As Integer
    Dim sOutput(2) As String
    Dim nScaleMode As Integer
    nScaleMode = Printer.ScaleMode
    Printer.ScaleMode = vbInches

    'عليك أن تضيف بنفس الطريقة التالية حسب عدد الأعمدة
    DBGrid1.Row = 0
    DBGrid1.Col = 0
    sOutput(0) = DBGrid1.Text
    DBGrid1.Col = 1
    sOutput(1) = DBGrid1.Text
    DBGrid1.Col = 2
    sOutput(2) = DBGrid1.Text


    'نوع الخط الذي سوف يطبع
    PrintFont 'Arial', 16, True, True, False

    'العنوان
    PrintText 0, 0, 'Print - ' & Me.Caption
    PrintFont 'Arial', 12, True, True, False
    PrintText 0, 0.5, 'Date: ' & Date$
    PrintFont 'Arial', 12, True, False, True

    'عليك أن تضيف مثل السطور التالية حسب عدد الأعمدة
    PrintText 0, 1, sOutput(0)
    PrintText 1, 1, sOutput(1)
    PrintText 2, 1, sOutput(2)

    PrintFont 'Arial', 12, False, False, False

    For nLoopCtr = 1 To mnCurrentRow - 1
    DBGrid1.Row = nLoopCtr

    'عليك أن تضيف مثل السطور التالية حسب عدد الأعمدة لديك
    DBGrid1.Col = 0
    sOutput(0) = DBGrid1.Text
    DBGrid1.Col = 1
    sOutput(1) = DBGrid1.Text
    DBGrid1.Col = 2
    sOutput(2) = DBGrid1.Text


    'عليك أن تضيف مثل السطور التالية حسب عدد الأعمدة لديك
    PrintText 0, 1 + (nLoopCtr * 0.25), sOutput(0)
    PrintText 1, 1 + (nLoopCtr * 0.25), sOutput(1)
    PrintText 2, 1 + (nLoopCtr * 0.25), sOutput(2)
    Next nLoopCtr

    Printer.EndDoc
    Printer.ScaleMode = nScaleMode
    End Sub

    وفي زر الطباعة ضع الكود التالي:

    Call ResultsPrint

    بهذا نكون قد أنهينا عملية الطباعة . إنها أفضل من التقرير لقواعد البيانات الكبيرة.



    بنهاية هذا الدرس نكون قد أنهينا دروس التعامل مع قواعد البيانات. آمل أن أكون قد حققت الفائدة لكل مستخدم.

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

    تعليقات الزوار ()