18-11-13, 11:18 AM
18-11-13, 12:10 PM
متابع
18-11-13, 11:24 PM
ارجو الافادة
19-11-13, 02:11 AM
متابع نأمل الحل من اعضاء المنتدى
20-11-13, 07:17 PM
؟؟؟؟؟؟؟؟؟؟؟؟؟؟
22-11-13, 05:14 PM
لا يوجد حل لهذا الموضوع
23-11-13, 03:07 AM
بصراحة يا اخي لم اجرب هكذا فكرة
لكن ارى ان تظهر الطابعات والمستخدم يختار الطابعة المناسبة للطباعة
لكن ارى ان تظهر الطابعات والمستخدم يختار الطابعة المناسبة للطباعة
23-11-13, 06:17 AM
السلام عليكم
- هذا السؤال تم طرحه في المنتدى القديم ,و الذي رابطه في أعلى صفحة هذا المنتدى , هذا هو الكود لعمل ذلك :
- تحياتي .
- هذا السؤال تم طرحه في المنتدى القديم ,و الذي رابطه في أعلى صفحة هذا المنتدى , هذا هو الكود لعمل ذلك :
كود :
Private Declare Function SetDefaultPrinter Lib "winspool.drv" Alias "SetDefaultPrinterA" (ByVal pszPrinter As String) As Long
Private Sub Command1_Click()
Dim Prt As Printer
Dim Def_PrinterName As String
'تخزين إسم الطابعة الحالية في هذا المتغير
Def_PrinterName = Printer.DeviceName
DoEvents
Set DataReport1.DataSource = Adodc1
DoEvents
For Each Prt In Printers
If Prt.DeviceName = "EPSON LQ-300+II ESC/P2" Or Prt.DeviceName = "Canon MF4320-4350" Then
SetDefaultPrinter Prt.DeviceName
DoEvents
DataReport1.PrintReport False
DoEvents
End If
Next
'إستعادة الطابعة الإفتراضية
SetDefaultPrinter Def_PrinterName
DoEvents
End Sub- تحياتي .
26-11-13, 05:20 PM
مشكور اخوي
طيب اذا اردنا ان تكون اسم الطابعة محدده في التكست بوكس ماهو الكود بدل هذا
If Prt.DeviceName = "HP" Then
طيب اذا اردنا ان تكون اسم الطابعة محدده في التكست بوكس ماهو الكود بدل هذا
If Prt.DeviceName = "HP" Then
26-11-13, 06:48 PM
السلام عليكم...
بالإضافة إلى ما تقدم به أخونا VB_Coder مشكوراً فإنه يمكن استعمال الكائنين Printer و Printers لضبط الطابعة الافتراضية للتطبيق دون تغيير الطابعة الافتراضية للنظام (لاحظ أننا نستعمل الخاصية DeviceName التي تعطي الاسم الصحيح الكامل للطابعة):
و تبديل الطابعات حسب الحاجة:
* ملاحظة: بدل تكرار كود البحث عن الطابعتين كلما أردت الطباعة، يمكنك جعل المتغيرين Printer1 و Printer2 عامين (Public) في Module و ضبطهما عند بداية تشغيل البرنامج ثم استعمالهما حسب الحاجة (كما في الأسطر الأربعة الأخيرة في الكود السابق).
أخيراً، و للحصول على قائمة بأسماء الطابعات (في ListBox مثلاً):
نرجو الاستفادة و السلام.
بالإضافة إلى ما تقدم به أخونا VB_Coder مشكوراً فإنه يمكن استعمال الكائنين Printer و Printers لضبط الطابعة الافتراضية للتطبيق دون تغيير الطابعة الافتراضية للنظام (لاحظ أننا نستعمل الخاصية DeviceName التي تعطي الاسم الصحيح الكامل للطابعة):
كود :
Dim Prn As Printer
For Each Prn In Printers
If UCase$(Prn.DeviceName) = UCase$("hp LaserJet 1010") Then
Set Printer = Prn ' اضبط الطابعة الافتراضية
Exit For ' اخرج من الحلقة
End If
Nextو تبديل الطابعات حسب الحاجة:
كود :
Dim Prn As Printer
Dim Printer1 As Printer ' الطابعة الأولى
Dim Printer2 As Printer ' الطابعة الثانية
For Each Prn In Printers
If UCase$(Prn.DeviceName) = UCase$("hp LaserJet 1010") Then
Set Printer1 = Prn
ElseIf UCase$(Prn.DeviceName) = UCase$("hp psc 1310 series") Then
Set Printer2 = Prn
End If
Next
Set Printer = Printer1 ' اختر الطابعة الأولى
DataReport1.PrintReport False ' اطبع التقرير الأول
Set Printer = Printer2 ' اختر الطابعة الثانية
DataReport2.PrintReport False ' اطبع التقرير الثاني* ملاحظة: بدل تكرار كود البحث عن الطابعتين كلما أردت الطباعة، يمكنك جعل المتغيرين Printer1 و Printer2 عامين (Public) في Module و ضبطهما عند بداية تشغيل البرنامج ثم استعمالهما حسب الحاجة (كما في الأسطر الأربعة الأخيرة في الكود السابق).
أخيراً، و للحصول على قائمة بأسماء الطابعات (في ListBox مثلاً):
كود :
Dim Prn As Printer
For Each Prn In Printers
List1.AddItem Prn.DeviceName
Nextنرجو الاستفادة و السلام.