PDA

View Full Version : تعریف نام چاپگر به برنامه



ehsanocx
یک شنبه 06 آذر 1390, 17:12 عصر
دوستان من چطوری می تونم اسم یک چاپگر رو از طریق کد نویسی توی یک دکمه تعریف کنم که وقتی روی دکمه کلیک کردم چاپگر شروع به چاپ کنه؟

************************************************** ********
و یک سوال دیگه
چطوری از طریق کد می تونم تعریف کنم برای برنامه که اطلاعات رو توی یک برگه با عرض 8 سانتیمتر و با فاصله 1 سانتیمتر از چپ و یک سانتیمتر از راست اطلاعات رو چاپ کنه؟

اسم چاپگر
BIXOLON SRP-350plus
کاغذ عرض 8 سانتیمتر می گیره

kitcat_m18
یک شنبه 06 آذر 1390, 20:25 عصر
با چه ريپورتي داري کار مي کني؟؟؟ :متفکر:
Active report
Crystal Reports
Data Reports
...
همه اين تنظيماتي که گفتي تو خود ريپورت قابل اجراست.
موفق باشي :لبخندساده:

mahmood_s
یک شنبه 06 آذر 1390, 23:09 عصر
For i = 0 To Printers.Count - 1
Combo1.AddItem Printers(i).DeviceName
Next i

ehsanocx
دوشنبه 07 آذر 1390, 19:08 عصر
با datareport کار کردم

ehsanocx
دوشنبه 07 آذر 1390, 19:14 عصر
با این دستور اسم چاپگر ها توی combo میاد اما چطوری بگم با فلان چاپگر چاپ بگیره ؟ می خوام از توی کمبو باکس اسم چاپگر رو انتخاب کردم روی دکمه چاپ زدم چاپ بگیره باید چیکار کنم؟

ehsanocx
دوشنبه 07 آذر 1390, 19:14 عصر
For i = 0 To Printers.Count - 1
Combo1.AddItem Printers(i).DeviceName
Next i
با این دستور اسم چاپگر ها توی combo میاد اما چطوری بگم با فلان چاپگر چاپ بگیره ؟ می خوام از توی کمبو باکس اسم چاپگر رو انتخاب کردم روی دکمه چاپ زدم چاپ بگیره باید چیکار کنم؟

ehsanocx
پنج شنبه 10 آذر 1390, 10:10 صبح
دوستان لطفا کمک کنید و راهنماییم کنید. ممنون میشم

ehsanocx
پنج شنبه 10 آذر 1390, 11:08 صبح
دوستان چطوری میشه اسم یک چاپگر رو از طریق کد نویسی انتخاب کرد؟

ehsanocx
پنج شنبه 10 آذر 1390, 11:08 صبح
مثلا چاپگر 1 رو چطوری انتخاب کنم؟

M.T.P
پنج شنبه 10 آذر 1390, 11:46 صبح
با این کد چاپگرها رو لیست می کنید:


Dim Prt As Printer
For Each Prt In Printers
Combo1.AddItem Prt.DeviceName
Next Prt

برای چاپ با چاپگر دلخواه هم از این کد استفاده کنید:


For Each Prt In Printers
If Prt.DeviceName = Combo1.Text Then
Set Printer = Prt
Exit For
End If
Next Prt
MsgBox Printer.DeviceName

ehsanocx
پنج شنبه 10 آذر 1390, 13:50 عصر
با این کد چاپگرها رو لیست می کنید:


Dim Prt As Printer
For Each Prt In Printers
Combo1.AddItem Prt.DeviceName
Next Prt

برای چاپ با چاپگر دلخواه هم از این کد استفاده کنید:


For Each Prt In Printers
If Prt.DeviceName = Combo1.Text Then
Set Printer = Prt
Exit For
End If
Next Prt
MsgBox Printer.DeviceName


دوست من
من اسم datareport رو کجا بنویسم تا چاپ بگیره؟ توی این کد؟
For Each Prt In Printers
If Prt.DeviceName = Combo1.Text Then
Set Printer = Prt
Exit For
End If
Next Prt
MsgBox Printer.DeviceName

ehsanocx
پنج شنبه 10 آذر 1390, 13:55 عصر
من مشکلم اینجاست که می خوام از چاپگر حرارتی BIXOLON SRP-350plus استفاده کنم
این چاپگر رو به عنوان defult ست می کنم پیغام می ده
report whith is larhger then the paper whith
و چاپ نمی گیره
اما به صورت defult نمیزارم و به صورت دستی اسم چاپگر رو انتخاب می کنم برای چاپ راحت چاپ می گیره. گیر کار کجاست؟
چاپگر BIXOLON SRP-350plus کاغذ با عرض 8 سانتیمتر قبول می کنه . حرارتی. چرا دستی انتخاب می کنی چاپ می گیره اما به صورت defult میزاری چاپ نمی گیره؟
باید چیکار کنم دوستان؟

M.T.P
پنج شنبه 10 آذر 1390, 17:46 عصر
ببینید شی ء Printer بصورت پیش فرض با چاپگر Default چاپ می کنه ، کدی که من گذاشتم شی ء Printer رو متوجه چاپگر موردنظرتون می کنه.

M.T.P
پنج شنبه 10 آذر 1390, 18:34 عصر
شما بعد از این کد دستور چاپ رو ارسال کنید و نتیجه رو گزارش کنید:



For Each Prt In Printers
If Prt.DeviceName = Combo1.Text Then
Set Printer = Prt
Exit For
End If
Next Prt

ehsanocx
پنج شنبه 10 آذر 1390, 19:23 عصر
For Each Prt In Printers
If Prt.DeviceName = Combo2.Text Then
Set Printer = Prt
Exit For
End If
Next Prt

Set ReportPrint.DataSource = Adodc1
ReportPrint.PrintReport


اسم چاپگر رو از توی combobox انتخاب می کنم و روی دکمه کلیک می کنم بازم این پیغام رو میده.
report whith is larhger then the paper whith

ehsanocx
پنج شنبه 10 آذر 1390, 19:24 عصر
من مشکلم اینجاست که می خوام از چاپگر حرارتی BIXOLON SRP-350plus استفاده کنم
این چاپگر رو به عنوان defult ست می کنم پیغام می ده
report whith is larhger then the paper whith
و چاپ نمی گیره
اما به صورت defult نمیزارم و به صورت دستی اسم چاپگر رو انتخاب می کنم برای چاپ راحت چاپ می گیره. گیر کار کجاست؟
چاپگر BIXOLON SRP-350plus کاغذ با عرض 8 سانتیمتر قبول می کنه . حرارتی. چرا دستی انتخاب می کنی چاپ می گیره اما به صورت defult میزاری چاپ نمی گیره؟
باید چیکار کنم دوستان؟

M.T.P
پنج شنبه 10 آذر 1390, 19:48 عصر
با این سایز بزن ببین چطوره !


For Each Prt In Printers
If Prt.DeviceName = Combo1.Text Then
Set Printer = Prt
Exit For
End If
Next Prt
Printer.PaperSize = vbPRPSEnv9

ehsanocx
پنج شنبه 10 آذر 1390, 19:55 عصر
Private Sub Command1_Click()
For Each Prt In Printers
If Prt.DeviceName = Combo1.Text Then
Set Printer = Prt
Exit For
End If
Next Prt
Printer.PaperSize = vbPRPSEnv9

Set ReportPrint.DataSource = Adodc1
ReportPrint.PrintReport

'MsgBox Printer.DeviceName
End Sub


من چاپگر BIXOLON SRP-350plus رو از توی combobox انتخاب کردم.
و روی دکمه زدم این پیغام رو میده.

invalid property value

ehsanocx
پنج شنبه 10 آذر 1390, 20:03 عصر
آقا نمیشه سایز کاغذ رو با کد تعریف کرد؟
با ScaleWidth , scale mode نمیشه ؟

M.T.P
پنج شنبه 10 آذر 1390, 20:32 عصر
اما به صورت defult نمیزارم و به صورت دستی اسم چاپگر رو انتخاب می کنم برای چاپ راحت چاپ می گیره.
مگه نمیگین ارور میده پس چطوری چاپ میشه! :متفکر:

ehsanocx
شنبه 12 آذر 1390, 10:32 صبح
مشکل هم همین جاست که به صورت دستی اسم چاپگر رو انتخاب می کنم چاپ میگیره گزارشو اما چاپگر رو defult انتخاب می کنم و میگم به صورت اتوماتیک چاپ بگیره پیغام خطا میده.
با این دستور هم چاپ میفرستم برای چاپگر
Set ReportPrint.DataSource = Adodc1
ReportPrint.PrintReport

ehsanocx
شنبه 12 آذر 1390, 10:32 صبح
report whith is larhger then the paper whith
نمیشه این پیغام رو دور زد ؟ حتی این پیغام رو بده هم چاپ بگیره؟

vbhamed
شنبه 12 آذر 1390, 13:47 عصر
سلام

براي اينكه اين پيام نياد بايد توجه كنيد كه عرض كاغذ (تعريف شده در تنظيمات چاپگر) رو منهاي حاشيه چپ و راست اون كنيد و گزارشتون رو به اون اندازه طراحي كنيد، مثلا اگر عرض كاغذ 8 سانتي متر هست و هر طرف 1 سانتي متر حاشيه، گزارش شما بايد 6 سانتيمتر يا كمتر باشه

حاشيه چپ و راست كاغذ با خاصيت LeftMargin, RightMargin مربوط به DataReport و عرض كل كاغذ با خاصيت ReportWidth تعريف ميشه كه البته واحد اون twips هست كه مي‌تونيد تست كنيد ببينيد معادل سانتي متر اونها چقدر ميشه رو پرينتر

ehsanocx
شنبه 12 آذر 1390, 20:02 عصر
سلام

براي اينكه اين پيام نياد بايد توجه كنيد كه عرض كاغذ (تعريف شده در تنظيمات چاپگر) رو منهاي حاشيه چپ و راست اون كنيد و گزارشتون رو به اون اندازه طراحي كنيد، مثلا اگر عرض كاغذ 8 سانتي متر هست و هر طرف 1 سانتي متر حاشيه، گزارش شما بايد 6 سانتيمتر يا كمتر باشه

حاشيه چپ و راست كاغذ با خاصيت LeftMargin, RightMargin مربوط به DataReport و عرض كل كاغذ با خاصيت ReportWidth تعريف ميشه كه البته واحد اون twips هست كه مي‌تونيد تست كنيد ببينيد معادل سانتي متر اونها چقدر ميشه رو پرينتر

دوست من میشه کد تنظیم کل کاغذ به عرض 8 سانتیمتر و با حاشیه 1 سانت از چپ و راست فاصله رو بنویسی برام؟
و تنظیمات سایز کاغذ چاپگر رو از کجا می تونم ببینم ؟

vbhamed
یک شنبه 13 آذر 1390, 10:35 صبح
سلام

اگر پست رو دقيق بخونيد نوشتم اين خاصيت ها مربوط به DataReport هست، ديتا ريپورت تون رو باز كنيد و تو پنجره خاصيتها اونها رو ببينيد و تغييرش بديد

ehsanocx
یک شنبه 13 آذر 1390, 11:15 صبح
LeftMargin, RightMargin
رو من هر دوتاشو 0 کردم این کار اشتباهه؟

ehsanocx
یک شنبه 13 آذر 1390, 11:27 صبح
هر سانتيمتر برابر با 566.9 تويپ هستش درسته؟

vbhamed
چهارشنبه 14 دی 1390, 10:05 صبح
سلام

كاري كه تو پست قبلي گفتيد 26 گفتيد اشتباه نيست ولي كمتر چاپگري هست كه لب به لب كاغذ رو چاپ كنه خصوصا ليزري ها، پس بهتره حداقل 7 ميلي متر حاشيه بزاريد، در مورد پست 27 هم درسته اما اگر براي تنظيم پرينتر مي‌خواين ابتدا ScaleMode پرينتر رو روي ميليمتر بزاريد و بعد با واحد ميلي متر تنظيم كنيد تا كارتون راحت بشه