PDA

View Full Version : landscape کردن کاغذ



mehdikk
پنج شنبه 25 بهمن 1386, 18:41 عصر
با سلام من درحال نوشتن یه پروژه هستم که با مشکل landscape کردن کاغذ برخورد کردم ، لطفاً راهنمای کنید ، متشکر

perfeshnal
پنج شنبه 25 بهمن 1386, 22:15 عصر
فکر کنم هزار بار این سوال در سایت پرسیده شده و همشون هم به جواب رسیده
لطفا قبل از زدن تاپیک در سایت جستجو کنید.

اوبالیت به بو
جمعه 26 بهمن 1386, 00:17 صبح
Printer یه خاصیت داره با اسم VbProRportiar که چاپ رو به صورت طولی انجام می ده و VbProRlandscape که چاپ رو به صورت عمودی انجام میده.

Mbt925
جمعه 26 بهمن 1386, 00:49 صبح
Const PORTRAIT = 1
Const LANDSCAPE = 2

Printer.Orientation = PORTRAIT or LANDSCAPE

mehdikk
جمعه 26 بهمن 1386, 07:50 صبح
با سلام کل تایپک ها رو که گشتم هیچ ، کلی سایت رو هم گشتم ولی مشکلم حل نشد.
همه اکتیوایکس ها رو برداشتم ، عالی بود ، متشکرم ، ولی دستو شما هم خطاداره اگه ممکنه بیشتر راهنمایی کنید.
عدد (1) را قبول میکنه ولی عدد(2) را خطا می دهد.
باتشکر کربلایی

اوبالیت به بو
جمعه 26 بهمن 1386, 11:09 صبح
بستگی به کارت داره شما که نباید جفتش رو کد نویسی بکنی باید یکیشو انتخاب کنی.

mehdikk
جمعه 26 بهمن 1386, 11:18 صبح
ببین من این کد را می نویسم ولی خطا میده
2=Printer.Orientation
invalid property value

حسین علوی
جمعه 26 بهمن 1386, 15:44 عصر
دوست عزیز از این کد استفاده کن ببین بازم ایراد میگیره

Printer.EndDoc
Printer.Orientation = vbPRORLandscape
Form1.PrintForm

mehdikk
جمعه 26 بهمن 1386, 19:39 عصر
باز هم همان خطا دیگه وقت ندارم چون دارم پایان نامه می نویسم اگه میشه یجوری کمکم کنید .

حسین علوی
جمعه 26 بهمن 1386, 22:24 عصر
از چه پرینتری استفاده میکنی ؟ (با پرینتر wordنمیتونی این کا رو انجام بدی)

mehdikk
شنبه 27 بهمن 1386, 07:03 صبح
از microsoft office document imaging استفاده میکنم در اصل خودم پرینتر ندارم.

حسین علوی
شنبه 27 بهمن 1386, 16:19 عصر
اشکال کارت همین جاست این پرینتر کاغذ افقی رو قبول نمیکنه اگه دسترسی به پرینتر نداری یکی از پرینتر های موجود در ویندوز را فعلا نصب کن واونو پیشفرض قرار بده مشکلت حل میشه.

mehdikk
یک شنبه 28 بهمن 1386, 07:46 صبح
یعنی چی با پرینتر word نمیشه استفاده کرد.

alicomputer
یک شنبه 28 بهمن 1386, 12:24 عصر
اگر تعداد فیلدهای که قرار است در صفحه گزارش dataReport نمایش دهید ، زیاد باشد مسلما فضای کافی برای آن پیدا نمی کنید، چنانچه بخواهید آنها را گروه بندی کنید .... تنها را آن هم بزرگتر کردن صفحه است اما اگر سایز صفحه را از حد معمول بیشتر کنیم با پیغام خطای report width is longer than paper width مواجه می شویم اما راه حل چیست ؟

در زیر سه راه حل آورده شده است :

1) به صورت دستی تنظیمات پرینتر را Landscape کنید ، برای این کار به Control panel سپس Printers and Faxes و بعد به پنجره مشخصات پرینتر خود بروید اکنون از تب Advanced دکمه printing Defualts را کلیک کنید از پنجره باز شده ، landscape را انتخاب نمایید .

2) استفاده از دستور DataReport1.Orientation = rptOrientLandscape اما باید توجه داشته باشید که برای اجرای این دستور باید سرویس پک چهار به بعد ویژوال بیسیک روی کامپیوتر شما نصب شده باشد برای دریافت سرویس پک شش ویژوال بیسیک به آدرس زیر مراجعه کنید :
وب سایت مایکروسافت

3) روش بعدی این است که به وب سایت http://support.microsoft.com/default.aspx?scid=kb;EN-US;198901 مراجعه و فایل Pageset.dll را دانلود کنید( البته سورس این Dll نیز در دسترس است)
برای استفاده از این Dll از دستورات زیر استفاده کنید :

Dim obj As PageSet.PrinterControl

Private Sub Command1_Click()
On Error GoTo errorhandler:
Set obj = New PageSet.PrinterControl
obj.ChngOrientationLandscape
dateport1.Show
dateport1.PrintReport False, rptRangeFromTo, 1, 1

Exit Sub

errorhandler:
' MsgBox Err.Description
obj.ReSetOrientation

End Sub

مبین رنجبر
یک شنبه 28 بهمن 1386, 12:34 عصر
بهترین کار برای حل تمامی این مشکلات استفاده از کریستال ریپورت برای گزارش گیری هست که هم بسیاز قوی تره و هم محدودیت های DataReport رو نداره