eifore
عضو بفريق العمل مؤسس
عدد الرسائل : 523 العمر : 32 المزاج : Heureu رقم العضوية : 32 التقييم : الجنس : المهنة : الهواية : مزاجي : نقاط التميز : 780 : تاريخ التسجيل : 02/09/2008
| موضوع: (3) الطباعة دون تقرير SQL الأحد نوفمبر 09, 2008 5:17 am | |
| الطباعة دون تقريرأخذنا في الدرس الماضي طباعة قاعدة البيانات عن طريق التقرير . والأن سوف نتحدث عن كيفية الطباعة دون أي تقرير أو أدوات أخرى. عملية الطباعة هذه تعتمد على حلقة الدوران في كل مرة يتم طباعة سجل وإعادة الحلقة على السجل الذي بعده . باستخدام كائن الطباعة 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 |
وفي زر الطباعة ضع الكود التالي: بهذا نكون قد أنهينا عملية الطباعة . إنها أفضل من التقرير لقواعد البيانات الكبيرة. بنهاية هذا الدرس نكون قد أنهينا دروس التعامل مع قواعد البيانات. آمل أن أكون قد حققت الفائدة لكل مستخدم. والله ولي التوفيق | |
|
القناص •-«[ المدير العام ]»-•
عدد الرسائل : 701 رقم العضوية : 1 التقييم : الجنس : المهنة : الهواية : مزاجي : نقاط التميز : 380 : تاريخ التسجيل : 22/06/2008
| موضوع: رد: (3) الطباعة دون تقرير SQL الأحد نوفمبر 09, 2008 5:19 am | |
| بارك الله فيك موفق ان شاء الله واصل تميزك | |
|