اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الردود الموصى بها

قام بنشر (معدل)
11 ساعات مضت, احمد الحسيني said:

اخوتي الاعزاء... ماهي اعدادات تقرير فاتورة لطابعة حرارية

1. إعداد التقرير (Report) في Access

أ. إنشاء التقرير:

  1. افتح قاعدة البيانات في Access.

  2. انتقل إلى تبويب Create > Report Design.

  3. صمم التقرير يدويًا أو استخدم Report Wizard لإنشاء فاتورة بسيطة.

ب. تخصيص التقرير للطباعة الحرارية:

  • العرض (Width):

    • للطابعات الحرارية (عرض 58 مم أو 80 مم)، اضبط عرض التقرير في Property Sheet (وحدة القياس: سنتمترات أو بوصة😞

      • 58 مم ≈ 2.28 بوصة.

      • 80 مم ≈ 3.15 بوصة.

    • مثال:

      ' لضبط العرض في كود VBA
      Reports("InvoiceReport").Width = 3.15 * 1440 ' (البوصة إلى Twips)

      المحتوى:                                                                                                                                                                           

      أضف عناصر التقرير (مربعات النص) للبيانات الأساسية:                                                                                                                   

      • اسم المتجر، التاريخ، رقم الفاتورة، العناصر، الإجمالي.                                                                                                                        

      استخدم خطوطًا بسيطة مثل Arial أو Courier New بحجم مناسب (مثال: 8-10pt للتفاصيل، 12pt للعناوين).                                            

      2. إعدادات الطباعة عبر VBA

      أ. تحديد الطابعة الحرارية:

      Sub SetThermalPrinter()
          Dim prt As Printer
          For Each prt In Application.Printers
              If prt.DeviceName Like "*Thermal*" Then ' استبدل بـاسم طابعتك
                  Set Application.Printer = prt
                  Exit For
              End If
          Next prt
      End Sub

      ب. ضبط إعدادات الطباعة:

      Sub PrintInvoiceReport()
          ' تعيين الطابعة الحرارية
          Call SetThermalPrinter
      
          ' ضبط إعدادات التقرير قبل الطباعة
          With Reports("InvoiceReport")
              .Printer.Orientation = acPortrait ' أو acLandscape إذا needed
              .Printer.PaperSize = acPRPSUser ' حجم ورقة مخصص
              .Printer.PaperWidth = 3.15 ' لبوصة (لـ 80 مم)
              .Printer.PaperHeight = 0 ' طول غير محدود (لفة ورق)
          End With
      
          ' طباعة التقرير
          DoCmd.OpenReport "InvoiceReport", acViewNormal
          DoCmd.PrintOut acPrintAll
      End Sub

       

      3. تنسيق المحتوى للطباعة الحرارية

      أ. محاذاة النص:

      اضبط خاصية Text Align في مربعات النص إلى:

      • Right للنصوص العربية.

      • Left للأرقام.

      مثال لإضافة باركود:

      ب. إضافة باركود أو QR (اختياري):

      إذا كانت الطابعة تدعم الباركود، استخدم مكتبة خارجية مثل IDAutomation أو أنشئ صورة باركود في التقرير.

      ' إدراج صورة باركود في التقرير
      Me.ImageControl.Picture = "C:\Barcode\INV123.png"

      4. قص الورق تلقائيًا (إذا كانت الطابعة تدعمه)

      بعض الطابعات تقص الورق بأمر ESC/POS. يمكن إرساله عبر VBA إذا كان هناك اتصال مباشر:

      Sub SendCutCommand()
          Dim prt As Object
          Set prt = CreateObject("WinSpool.WinPrinter")
          prt.DeviceName = "اسم الطابعة الحرارية"
          prt.Open
          prt.Write Chr$(29) & Chr$(86) & Chr$(0) ' أمر قص الورق
          prt.Close
      End Sub

      5. نصائح مهمة

       

      اختبار الطباعة:

      • استخدم Print Preview في Access قبل الطباعة الفعلية.

      • تأكد من عدم قطع النصوص عند الحواف.

      الخطوط العربية:

      • إذا ظهرت النصوص العربية كرموز غير مقروءة، استخدم خطوطًا تدعم Unicode مثل Arial أو Times New Arabic.

      البيانات الديناميكية:

      • استخدم استعلام (Query) كمصدر بيانات للتقرير لملء الفاتورة تلقائيًا.

      مثال كامل لفاتورة بسيطة

       

      ' إنشاء فاتورة ديناميكية
      Sub GenerateInvoice()
          Dim report As Report
          Set report = CreateReport()
      
          ' إضافة عناصر إلى التقرير
          With report
              ' عنوان الفاتورة
              Dim lblTitle As Label
              Set lblTitle = CreateControl("InvoiceReport", acLabel)
              lblTitle.Caption = "فاتورة شراء"
              lblTitle.Top = 100
              lblTitle.Left = 500
              lblTitle.FontSize = 14
              lblTitle.FontBold = True
      
              ' تفاصيل الفاتورة
              Dim txtDetails As TextBox
              Set txtDetails = CreateControl("InvoiceReport", acTextBox)
              txtDetails.ControlSource = "SELECT ProductName, Quantity, Price FROM InvoiceDetails"
          End With
      
          ' طباعة الفاتورة
          DoCmd.OpenReport "InvoiceReport", acViewPreview
      End Sub

      باستخدام هذه الإعدادات، يمكنك طباعة فواتير واضحة ومنظمة على الطابعة الحرارية مباشرة من Access VBA.

       
       
تم تعديل بواسطه kkhalifa1960
التنسيق
  • Like 2
قام بنشر

وعليكم السلام

 

اهم شيء في موضوع هذه الطابعات هو ان يكون عندك برنامج تنصيب الطابعة من الشركة ، ولا تعتمد على تعريف الوندوز ، لأنه بعد التنصيب ، يجب عليك عمل بعض التعديلات على اعدادات الطابعة.

1. من صفحة الطابعات ، اختار خصائص الطابعة:

1.jpg.9630f8d5c2e20e19fc4315f6d305723b.jpg

.

2. وهنا سأعرض التخصيصات لطابعات مختلفة ، رجاء ملاحظة اسماء الطابعات:

2.jpg.78155f2ebd1799da6255a4fe9fc08a05.jpg

.

هنا يجب ملاحظة ان بعض الطابعات تقطع الورقة حسب الاعدادات: بعد المستند او بعد كل ورقة

image.jpeg.73907cc53e8e7bcf3dd178a40cdf90a4.jpeg

.

image.jpeg.8e446e90838d72d64a2c83098969ab0f.jpeg

.

 

 

وبما ان الطابعات الحرارية لا تحتاج الى مسافات/هامش لسحب الورقة ، فالافضل عمل هذا برمجيا :

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
On Error GoTo err_Detail_Format

    'set the default printer margins
    With Application.Printers(0)
        .TopMargin = 0
        .BottomMargin = 0
        .LeftMargin = 0
        .RightMargin = 0
    End With

.

 

في التقرير ، وفي وضع التصميم ، اختار الطابعة (سواء بعرض 80مم او 58 مم) ،

عليه تستطيع تصميم التقرير/الحقول بالطريقة العادية ، مع مراعاة عرض التقرير (ولا يهم الطول) ، وبالتجربة تستطيع تضبيط التقرير.

التقارير بالبوصة (لاحظ العرض)

image.png.5198834ecd7240d46d49981d27ac69ab.png

 

 

ولا تنسى ان الطابعة تطبع باللون الاسود فقط (او اطياف اللون الرمادي) ، فتأكد من اختيار لون النص وحجمه ، وان الشعار يكون ابيض واسود (واما اذا كان ملون ، فسيتم طباعته باطياف اللون الرمادي).

 

  • Like 1
  • Thanks 1
قام بنشر
1 ساعه مضت, jjafferr said:

وعليكم السلام

اهم شيء في موضوع هذه الطابعات هو ان يكون عندك برنامج تنصيب الطابعة من الشركة ، ولا تعتمد على تعريف الوندوز ، لأنه بعد التنصيب ، يجب عليك عمل بعض التعديلات على اعدادات الطابعة.

 

مرجع مهم لكل طالب معرفة

بالضبط هذا ماكنت اعمله .. الا ان الهوامش ابقيها ثابتة .. اجعلها صفرا من خصائص التقرير نفسه 

  • Like 1
قام بنشر
10 ساعات مضت, kkhalifa1960 said:

1. إعداد التقرير (Report) في Access

أ. إنشاء التقرير:

  1. افتح قاعدة البيانات في Access.

  2. انتقل إلى تبويب Create > Report Design.

  3. صمم التقرير يدويًا أو استخدم Report Wizard لإنشاء فاتورة بسيطة.

ب. تخصيص التقرير للطباعة الحرارية:

  • العرض (Width):

    • للطابعات الحرارية (عرض 58 مم أو 80 مم)، اضبط عرض التقرير في Property Sheet (وحدة القياس: سنتمترات أو بوصة😞

      • 58 مم ≈ 2.28 بوصة.

      • 80 مم ≈ 3.15 بوصة.

    • مثال:

      ' لضبط العرض في كود VBA
      Reports("InvoiceReport").Width = 3.15 * 1440 ' (البوصة إلى Twips)

      المحتوى:                                                                                                                                                                           

      أضف عناصر التقرير (مربعات النص) للبيانات الأساسية:                                                                                                                   

      • اسم المتجر، التاريخ، رقم الفاتورة، العناصر، الإجمالي.                                                                                                                        

      استخدم خطوطًا بسيطة مثل Arial أو Courier New بحجم مناسب (مثال: 8-10pt للتفاصيل، 12pt للعناوين).                                            

      2. إعدادات الطباعة عبر VBA

      أ. تحديد الطابعة الحرارية:

      Sub SetThermalPrinter()
          Dim prt As Printer
          For Each prt In Application.Printers
              If prt.DeviceName Like "*Thermal*" Then ' استبدل بـاسم طابعتك
                  Set Application.Printer = prt
                  Exit For
              End If
          Next prt
      End Sub

      ب. ضبط إعدادات الطباعة:

      Sub PrintInvoiceReport()
          ' تعيين الطابعة الحرارية
          Call SetThermalPrinter
      
          ' ضبط إعدادات التقرير قبل الطباعة
          With Reports("InvoiceReport")
              .Printer.Orientation = acPortrait ' أو acLandscape إذا needed
              .Printer.PaperSize = acPRPSUser ' حجم ورقة مخصص
              .Printer.PaperWidth = 3.15 ' لبوصة (لـ 80 مم)
              .Printer.PaperHeight = 0 ' طول غير محدود (لفة ورق)
          End With
      
          ' طباعة التقرير
          DoCmd.OpenReport "InvoiceReport", acViewNormal
          DoCmd.PrintOut acPrintAll
      End Sub

       

      3. تنسيق المحتوى للطباعة الحرارية

      أ. محاذاة النص:

      اضبط خاصية Text Align في مربعات النص إلى:

      • Right للنصوص العربية.

      • Left للأرقام.

      مثال لإضافة باركود:

      ب. إضافة باركود أو QR (اختياري):

      إذا كانت الطابعة تدعم الباركود، استخدم مكتبة خارجية مثل IDAutomation أو أنشئ صورة باركود في التقرير.

      ' إدراج صورة باركود في التقرير
      Me.ImageControl.Picture = "C:\Barcode\INV123.png"

      4. قص الورق تلقائيًا (إذا كانت الطابعة تدعمه)

      بعض الطابعات تقص الورق بأمر ESC/POS. يمكن إرساله عبر VBA إذا كان هناك اتصال مباشر:

      Sub SendCutCommand()
          Dim prt As Object
          Set prt = CreateObject("WinSpool.WinPrinter")
          prt.DeviceName = "اسم الطابعة الحرارية"
          prt.Open
          prt.Write Chr$(29) & Chr$(86) & Chr$(0) ' أمر قص الورق
          prt.Close
      End Sub

      5. نصائح مهمة

       

      اختبار الطباعة:

      • استخدم Print Preview في Access قبل الطباعة الفعلية.

      • تأكد من عدم قطع النصوص عند الحواف.

      الخطوط العربية:

      • إذا ظهرت النصوص العربية كرموز غير مقروءة، استخدم خطوطًا تدعم Unicode مثل Arial أو Times New Arabic.

      البيانات الديناميكية:

      • استخدم استعلام (Query) كمصدر بيانات للتقرير لملء الفاتورة تلقائيًا.

      مثال كامل لفاتورة بسيطة

       

      ' إنشاء فاتورة ديناميكية
      Sub GenerateInvoice()
          Dim report As Report
          Set report = CreateReport()
      
          ' إضافة عناصر إلى التقرير
          With report
              ' عنوان الفاتورة
              Dim lblTitle As Label
              Set lblTitle = CreateControl("InvoiceReport", acLabel)
              lblTitle.Caption = "فاتورة شراء"
              lblTitle.Top = 100
              lblTitle.Left = 500
              lblTitle.FontSize = 14
              lblTitle.FontBold = True
      
              ' تفاصيل الفاتورة
              Dim txtDetails As TextBox
              Set txtDetails = CreateControl("InvoiceReport", acTextBox)
              txtDetails.ControlSource = "SELECT ProductName, Quantity, Price FROM InvoiceDetails"
          End With
      
          ' طباعة الفاتورة
          DoCmd.OpenReport "InvoiceReport", acViewPreview
      End Sub

      باستخدام هذه الإعدادات، يمكنك طباعة فواتير واضحة ومنظمة على الطابعة الحرارية مباشرة من Access VBA.

       
       

 

شكرا جزيلا استاذ... جزاك الله كل الخير

منذ ساعه, ابوخليل said:

مرجع مهم لكل طالب معرفة

بالضبط هذا ماكنت اعمله .. الا ان الهوامش ابقيها ثابتة .. اجعلها صفرا من خصائص التقرير نفسه 

شكرا جزيلا استاذ... جزاك الله كل الخير

قام بنشر
1 ساعه مضت, ابوخليل said:

بالضبط هذا ماكنت اعمله .. الا ان الهوامش ابقيها ثابتة .. اجعلها صفرا من خصائص التقرير نفسه

هي كذلك الهوامش ابقيها ثابتة .. اجعلها صفرا من خصائص التقرير نفسه ، ولكني اذكر واجعتني مشكلة فاضطررت الى كتابتها في الكود كذلك ،

وفي تقرير آخر ، مع ان اسم الخط تم اختياره من خصائص واعدادات التقرير ، إلا انه في الطباعة كان يظهر الخط الافتراضي ، فكتبت اسمه في الكود ، وتم حل المشكلة 🙂

  • Like 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information