طباعة محتويات DBGrid1 بدون تقارير باستخدام الكائن Printer Object
صفحة 1 من اصل 1 • شاطر
طباعة محتويات DBGrid1 بدون تقارير باستخدام الكائن Printer Object
أهلا بكم سوف نتحدث عن كيفية الطباعة دون أي تقرير أو أدوات أخرى....عملية الطباعة هذه تعتمد على حلقة الدوران في كل مرة يتم طباعة سجل وإعادة الحلقة على السجل الذي بعده و ذلك باستخدام كائن الطباعة Printer Object
نفترض أن جدول قاعدة البيانات التي نعمل بها من ثلاث حقول وهي:
وقمنا بستخدام شبكة البيانات DBGrid1 يتكون من أعمدة Column وتختصر Col صفوف Row لعرض حقول الجدول بها ...والأن سوف نطبع كل عمود وصف عن طريق حلقة التكرار و كائن الطباعة Printer Object
_ضع الكود التالي في قسم التصريحات العامة General
وهو تحديد خصائص الخط الذي سف يظهر على الطابعة.
بعد ذلك سنقوم بإنشاء الاجراء التالي لتحيد إتجاه الطباعة :
وبعد ذلك سنقوم بانشاء الاجراء التالى لاستخدام حلقة تكرار و طباعة محتويات DBGrid1 :
وفي زر الطباعة سنقوم باستدعاء الاجراء ResultsPrint لتتم عملية الطباعة كما يلى :
نفترض أن جدول قاعدة البيانات التي نعمل بها من ثلاث حقول وهي:
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
وبعد ذلك سنقوم بانشاء الاجراء التالى لاستخدام حلقة تكرار و طباعة محتويات DBGrid1 :
- الكود:
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
وفي زر الطباعة سنقوم باستدعاء الاجراء ResultsPrint لتتم عملية الطباعة كما يلى :
- الكود:
Call ResultsPrint
جورج صبحى- ......
- تاريخ التسجيل : 18/02/2011
المساهمات : 127
النقاط : 259
التقيم : 6
الجنس :
بنت البلد- .....
- تاريخ التسجيل : 18/02/2011
المساهمات : 85
النقاط : 160
التقيم : 11
الجنس :
رد: طباعة محتويات DBGrid1 بدون تقارير باستخدام الكائن Printer Object
شكرا يا جورج
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
| |
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
أمس في 8:56 pm من طرف moslema_r
» شركة مكافحة حشرات في راس الخيمة
أمس في 8:34 pm من طرف moslema_r
» تطبيقIncogniton لإدارة ملفات تعريف متعددة للمتصفح
الأربعاء أبريل 24, 2024 3:51 pm من طرف زاكااا
» افضل شركة مكافحة النمل الابيض بالرياض
الإثنين أبريل 22, 2024 9:41 pm من طرف moslema_r
» Exemplary Сasual Dating - Verified Women
الخميس أبريل 18, 2024 9:18 pm من طرف wdqwd
» رش الدفان بالرياض
الخميس أبريل 18, 2024 7:11 pm من طرف moslema_r
» شركة تنظيف خزانات الشارقة
الخميس أبريل 18, 2024 6:57 pm من طرف moslema_r
» شركة مكافحة الفئران بالرياض
الإثنين أبريل 15, 2024 8:23 pm من طرف moslema_r
» افضل شركة كشف تسربات المياه بالباحة
الخميس أبريل 04, 2024 7:02 am من طرف gmalnagy
» ساعدوني وفهموني help me
الجمعة مارس 29, 2024 8:37 am من طرف linesoft