تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] في الطباعة على الطابعة الافتراضية للبرنامج
#1
Question 
Smile السلام عليكم و رحمة الله Smile

Blush امل المساعده Blush

في الطباعة على الطابعة الافتراضية للبرنامج

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

تم التعديل عليه مسبقا من العضو VB_Coder و كل الشكر و العرفان له

المطلوب Big GrinBig Grin

طابعة الداتا ربورت رقم 1 بشكل مباشر دون عرضه على الطابعة الافتراضية للبرنامج

ليس الطابعة الافتراضية لنظام التشغيل لكون يوجد اكثر من طابعة متصله بالجهاز


Blush امل المساعده Blush


الملفات المرفقة
.rar   الطابعة الافتراضية للبرنامج.rar (الحجم : 48.92 ك ب / التحميلات : 274)
الرد }}}
تم الشكر بواسطة:
#2
.....

مشكلة DataReport أنه لا يملك خاصية تحديد طابعة مختلفة عن الطابعة الافتراضية لنظام التشغيل (ولا يصلح استخدام الطابعة الافتراضية للبرنامج)
إلا من خلال عرض التقرير (وهذا ما لا تريده كما في سؤالك) لذا.....
هناك حيلة تغيير الطابعة الافتراضية لنظام التشغيل مؤقتاً باستخدام دالة API
لحين إصدار أمر طباعة التقرير بدون عرضه ثم إعادة الطابعة الإفتراضية لنظام التشغيل كما كانت.
غير اسم الطابعة الموجود في الكود ("Test Printer") إلى اسم الطابعة التي تريدها.
كود :
Private Declare Function SetDefaultPrinter Lib "winspool.drv" Alias "SetDefaultPrinterA" (ByVal pszPrinter As String) As Long
Private Declare Function GetDefaultPrinter Lib "winspool.drv" Alias "GetDefaultPrinterA" (ByVal sPrinterName As String, lPrinterNameBufferSize As Long) As Long


Private Sub Command1_Click()
    ' الاحتفاظ باسم الطابعة الافتراضية الخاصة بالنظام
    Dim SysDefPrinter As String: SysDefPrinter = Space$(255)
    If GetDefaultPrinter(ByVal SysDefPrinter, 255) <> 0 Then SysDefPrinter = Left(SysDefPrinter, 255 - 1)
    Dim PrtIndex As Printer: For Each PrtIndex In Printers
        If PrtIndex.DeviceName = SysDefPrinter Then SysDefPrinter = PrtIndex.DeviceName
    Next
    
    
    
    ' تغيير الطابعة الافتراضية للنظام - مؤقتاً - إلى طابعة محددة من البرنامج
    SetDefaultPrinter "Test Printer"
    
    
    ' إصدار أمر الطباعة للتقرير إلى الطابعة مباشرة بدون عرض التقرير
    DataReport1.PrintReport False
    
    
    
    ' إعادة الطابعة الافتراضية الخاصة بالنظام التي احتفظنا باسمها في البداية
    SetDefaultPrinter SysDefPrinter
End Sub

.....
الرد }}}
تم الشكر بواسطة: allayl , VB_Coder , alhoor
#3
شكرآ اخي بارك الله فيك و زادك في علمك من واسع فضله
الرد }}}
تم الشكر بواسطة:
#4
شكرآ اخي بارك الله فيك و زادك في علمك من واسع فضله
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  البرنامج بيهنج(AppCrash) عند الطباعة عبدالله الصافي 6 896 26-09-22, 07:25 PM
آخر رد: عبدالله الصافي
  استفسار بخصوص الطباعة lkjnfg 10 1,787 11-11-21, 01:49 PM
آخر رد: lkjnfg
  [vb6.0] تعديل كود الطباعة من منفذ com1 الى طابعة معينة او منفذ usb. Abd elraof 1 1,163 07-06-21, 02:23 PM
آخر رد: السيد الغالي
  اخونى الاحباب ارجو المساعدة فى موضوع الطباعة المباشرة mhareek 3 1,595 28-11-20, 11:04 PM
آخر رد: sendbad100
  سؤال حول الطباعة abde6726 2 1,385 16-11-20, 11:17 PM
آخر رد: abde6726
  ماذا يعني ظهور رسالة ( st6unst.exe) عند عمل setup للبرنامج؟ gonm64 0 1,151 11-08-20, 02:43 PM
آخر رد: gonm64
  السلام عليكم احبابى فى الله بالنسبة لامر الطباعة mhareek 1 1,242 30-07-20, 07:01 PM
آخر رد: aenisVB
  ماهو كود ارسال ملف الوورد الى الطابعة في نفس وقت تصديره للورد؟ gonm64 1 1,177 08-03-20, 09:24 AM
آخر رد: gonm64
  هل توجد طريقة لتعبئة combobox من المستخدم للبرنامج؟ gonm64 4 1,880 23-11-19, 03:16 PM
آخر رد: gonm64
  هل يمكن ان نغير خصائص الطباعة princeofislam 2 1,642 15-09-19, 02:10 PM
آخر رد: princeofislam

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم