PDA

View Full Version : چطور کاغذ را a5 تعریف کنم ؟



mrtzxxx
شنبه 28 اردیبهشت 1387, 21:28 عصر
چطوری می شه در دیتا ریپورتر کاغذ رو a5 تعریف کرد ؟

UpgradeVB6Code
شنبه 28 اردیبهشت 1387, 22:49 عصر
منم همين سوالو دارم ...

AmirAmiri
شنبه 28 اردیبهشت 1387, 23:10 عصر
فکر نکنم بشه چنین کاری کرد. اگه یه نگاه به پراپرتی هاش بکنید میبینید که چنین چیزی نداره. حداقل من که ندیدم.
د ضمن یه سوال: مگه پرینتر میتونه به غیر از A4 کاغذ دیگه ای هم مثلا A3 چاپ کنه؟ اگه نتونه اینکارو بکنه کاملا منطقیه که DataReport هم چنین پراپرتی نداشته باشه ولی اگه پرینتر بتونه اینکارو بکنه پس میشه گفت این یک ضعفه VB هست.

vbhamed
یک شنبه 29 اردیبهشت 1387, 00:16 صبح
سلام

با خاصيت ReportWidth ميشه عرض كاغذ رو تعريف كرد
ضمنا فكر مي كنم اگر قبل از چاپ با دستوري مثل Printer.PaperSize = vbPRPSA5 كاغذ رو براي چاپگر تعريف كنيم روي ديتا ريپورت هم اثر ميزاره

ali_habibi1384
یک شنبه 29 اردیبهشت 1387, 00:23 صبح
فکر نکنم بشه چنین کاری کرد. اگه یه نگاه به پراپرتی هاش بکنید میبینید که چنین چیزی نداره. حداقل من که ندیدم.
د ضمن یه سوال: مگه پرینتر میتونه به غیر از A4 کاغذ دیگه ای هم مثلا A3 چاپ کنه؟ اگه نتونه اینکارو بکنه کاملا منطقیه که DataReport هم چنین پراپرتی نداشته باشه ولی اگه پرینتر بتونه اینکارو بکنه پس میشه گفت این یک ضعفه VB هست.به سوال توجه کنید گفتند A5 نه A3 که a5 رو هم توی تنظیمات پرینتر داره.

UpgradeVB6Code
یک شنبه 29 اردیبهشت 1387, 10:41 صبح
سلام

با خاصيت ReportWidth ميشه عرض كاغذ رو تعريف كرد
ضمنا فكر مي كنم اگر قبل از چاپ با دستوري مثل Printer.PaperSize = vbPRPSA5 كاغذ رو براي چاپگر تعريف كنيم روي ديتا ريپورت هم اثر ميزاره


من نميدونم چرا وقتي اين كد رو اجرا ميكنم سايز كاعذ رو تغيير نميده

Printer.PaperSize = vbPRPSA5
من با پرينتر مجازي "FinePrint pdfFactory Pro" دارم كار ميكنم
بايد حتما از منوي Start > Printers And Fax > FinePrint pdfFactory Pro رو انتخاب كنم بعد از منوي Printer بعد زير منوي Printer Performance سايز كاغذ رو دستي تغيير بدم يعني اون كد كه اجرا ميشه بعد ميرم نگاه ميكن ميبينم سايز كاغذ A5 نشده ؟؟؟ :عصبانی++:

ali_habibi1384
یک شنبه 29 اردیبهشت 1387, 11:16 صبح
از فرمان printer.width و printer.higth استفاده کنید .
البته من بعد از استفاده از این روش برای چاپ گزارش از printer.print استفاده کردم و جواب داده . شما باید سایز کاغذ A5 رو دستی وارد کنید.

UpgradeVB6Code
یک شنبه 29 اردیبهشت 1387, 11:54 صبح
سلام
مگه با اين دستور نبايد اندازه كاغذ پرينتر پيش فرض من تفيير كنه


Private Sub Command1_Click()

Printer.ScaleMode = vbMillimeters
Printer.Width = 148
Printer.Height = 210

End Sub

اما من اينو اجرا ميكنم ميرم نگاه ميكنم ميبينم كه تغيير نكرده :عصبانی++:
شايد يه دستوري بايد بنويسم كه اين تغييرات رو Set كنه ؟؟؟
البته من با "FinePrint pdfFactory Pro" دارم تست ميكم ربطي نداره ؟

UpgradeVB6Code
یک شنبه 29 اردیبهشت 1387, 14:35 عصر
سلام
مگه با اين دستور نبايد اندازه كاغذ پرينتر پيش فرض من تفيير كنه


Private Sub Command1_Click()

Printer.ScaleMode = vbMillimeters
Printer.Width = 148
Printer.Height = 210

End Sub

اما من اينو اجرا ميكنم ميرم نگاه ميكنم ميبينم كه تغيير نكرده :عصبانی++:
شايد يه دستوري بايد بنويسم كه اين تغييرات رو Set كنه ؟؟؟
البته من با "FinePrint pdfFactory Pro" دارم تست ميكم ربطي نداره ؟
اين كدها كه ما مينويسيم هيچ كدوم Set نميشند
كسي نميدونه اون دستوري كه اينا رو Set ميكنه چيه ؟

ali_habibi1384
یک شنبه 29 اردیبهشت 1387, 14:45 عصر
شما برو توی قسمت controlpanel ویندوز و پرینتر پیش فرضت رو microsoft office image انتخاب کن و کارهایی رو که میکردی تکرار کن. قطعا درست میشه.درضمن گزینه printer.enddoc رو هم نذاشتی.

UpgradeVB6Code
یک شنبه 29 اردیبهشت 1387, 21:12 عصر
سلام
من اين 3 تا پرينتر رو دارم



بعد اين كد رو اجرا ميكنم


Private Sub Command1_Click()
Printer.ScaleMode = vbMillimeters
Printer.PaperSize = vbPRPSA5
Printer.Orientation = vbPRORLandscape
Printer.EndDoc
End Sub

انتظار دارم وقتي اون صفحه رو ميارم به اون شكلي كه نشون دادم باشه اما نميشه




من اين تست رو روي هر سه تا پرينتر انجام دادم اما نشد :ناراحت:

ميشه شما اگر پرينتر داريد تست كنيد ببينيد اين كدها روي پرينتر شما اين تغييرات رو اعمال ميكنه يا نه ؟؟؟

ali_habibi1384
دوشنبه 30 اردیبهشت 1387, 03:37 صبح
نه آفیس رو نصب کن و سپس پرینتر پیش فرض رو image office انتخاب کن
http://barnamenevis.org/forum/attachment.php?attachmentid=17928&stc=1&d=1211153796

vbhamed
دوشنبه 30 اردیبهشت 1387, 10:02 صبح
سلام

وقتي شما دستور تنظيم صفحه رو به چاپگرت مي دي، فقط براي برنامه خودت تنظيم ميشه پس نيازي نيست اون پنجره تغيير كنه
ضمنا دستور Enddoc وقتي لازمه كه چيزي واسه چاپ فرستاده باشي
دستورات زير رو ببين



Printer.PaperSize = vbPRPSA5
Printer.Print "This is a test"
Printer.EndDoc



با نوشتن اين دستورات جمله This is a test روي يك صفحه A5 چاپ ميشه، چاپگرش هم مهم نيست چي باشه، با همون چاپگر پيش فرض ويندوز چاپ مي كنه كه البته مي توني با چاپگر ديگه هم بهش بگي چاپ كنه

ali_habibi1384
دوشنبه 30 اردیبهشت 1387, 12:27 عصر
ابتدا پرینتر پیش فرض رو تنظیم کن همونطوری که گفتم و سپس کد زیر رو اجرا کن تا اندازه صفحه A5 رو ببینی در پیش نمایش


Private Sub CmdPrint_Click()
Printer.Height = 12000
Printer.Width = 8000
Printer.CurrentX = 1000
Printer.CurrentY = 1000
Printer.Print "Hello UpgradeVB6Code"
Printer.EndDoc
End Sub

UpgradeVB6Code
دوشنبه 30 اردیبهشت 1387, 19:22 عصر
اين كدها درست كار ميكنند يعني اندازه كاغذ رو براي برنامه ميكنند A5 اما مشكل اينه كه با ديتا ريپورت چه طوري اين كارو بكنم
يعني من اين كدهاي شما رو كه وارد ميكنم بعد

Printer.Print "Hello UpgradeVB6Code"
رو ميزنم اندازه كاغذ A5 هست اما وقتي

DataReport2.PrintReport

رو ميزنم باز اندازه كاغذ همون اندازه هاي پيش فرض هست و به انداره A5 تغيير نكرده مگر اين كه دستي برم اندازه پيش فرض رو A5 بذارم
اما ميخوام اين كارو برنامه خودش انجام بده

ali_habibi1384
سه شنبه 31 اردیبهشت 1387, 00:43 صبح
اگه شما بخوای از شئ دیتا ریپورت استفاده بکنی اجازه تعریف نوع کاغذ رو نداری و فقط روی A4 می تونی چاپ کنی . بهر حال برای هر کاری راه حلی هست . شما میتونی از کریستال ریپورت استفاده کنی و یا از شئ پرینتر با هزاران قابلیت . کاری که من با کد بالا برات سایز کاغذ A5 رو ساختم.

flooden
پنج شنبه 16 خرداد 1387, 12:52 عصر
من قبول ندارم كه نشه اينكار رو انجام داد !!!
upgradevb6code من هم همان مشكل شما رو دارم
تغيير سايز كاغذ از طريق كد در هنگام كار با ديتا رپورت

UpgradeVB6Code
پنج شنبه 16 خرداد 1387, 13:30 عصر
من قبول ندارم كه نشه اينكار رو انجام داد !!!
upgradevb6code من هم همان مشكل شما رو دارم
تغيير سايز كاغذ از طريق كد در هنگام كار با ديتا رپورت

من تحقیق کردم دیتا ریپورت این امکان رو نداره که بتونی سایز کاغذ رو تغییر بدی
اما انگار توی SP6 امکان تغییر جهت کاغذ هست
فکر کنم آپدیت به sp6 رو از مایکروسافت بتونی بگیری