PDA

نسخه کامل مشاهده نسخه کامل : تغییر سایز کریستال بعد از تغییر پرینتر



Payman_62
20-09-2011, 12:42
سلام.
تو یه پروژه #C برای گزارش گیری از کریستال ریپورت استفاده کردم.

تو یه قسمت گزارش بر اساس کاغذ a4 هست.

تو یه قسمت دیگه برای صدور فاکتور از کریستال استفاده کردم که بر اساس کاغذ 8 سانتی متری پرینتر حرارتی هست.

حالا وقتی پرینتر دیفالت تغییر میکنه سایز کریستال های من هم تغییر میکنه.
یعنی اگه بره رو پرینتر حرارتی گزارش ها هم از کاغذ a4 به کاغذ 8 سانتی تغییر میکنن و بیشتر از نصف گزارش حذف میشه.
اگرم بره رو پرینتر معمولی سایز کریستال صدور فاکتور تبدیل میشه به کاغذ a4.

راه حل این مشکل چیه؟

نظرتون رو هم در مورد استفاده از کریستال برای صدور فاکتور توسط پرینتر حرارتی بگین.

_H2_
20-09-2011, 13:43
سلام
با چاپگرهای کوچک رولی کار کرده ام ...
البته من از کریستال استفاده نکرده بودم، ولی نباید مشکلی داشته باشد ...

چیزی که مشخص است آن است که طبیعتاً گزارش شما باید برای آن ابعاد طراحی شده باشد.
به شرطی که گزارش طراحی شده شما از همان ابتدا در کریستال سایز صحیحی داشته باشد.
بحرحال شما گزارش A4 بسازید و به کاغذ A5 هم بدهید، چیز درستی تحویل نمیگیرد چه برسد به ابعاد دو الی سه اینچ.

یعنی در خود کریستال کاغذ را کوچک کنید و گزارشی مخصوص ابعاد کوچک طراحی کنید.
(یک جورهایی آدم را یاد سایت هایی میاندازد که سایت عادی با سایت موبایلی شان فرق دارد ...)

یعنی یک گزارش مستقل برای چاپگرهای عادی و سایز A4 طراحی کنید و یک گزارش مستقل دیگر با ابعاد مدنظرتان کوچک مدنظرتان.

دو گزارش مستقل، حال میتوانید دو دکمه پرینت مستقل هم داشته باشید یا خود برنامه هوشمندانه بسته به مشخصات پرینتر و سایز کاغذ ان، گزارش مطلوب را انتخاب کند.

Payman_62
20-09-2011, 16:36
سلام.
h2 جان گزارش های من مستقل طراحی شدن و جدا از هم بر اساس کاغذ a4 هستن. صدور فاکتور هم همین طور جدا بر اساس کاغذ 8 سانتی طراحی شده.

اما مشکل اصلا از داخل برنامه نیست که من بخوام کنترلش کنم. اگه به تنظیمات پرینتر داخل کنترل پنل برم و پرینتر پیش فرض ویندوز رو روی پرینتر حرارتی 8 سانتی بذارم داخل برنامه همه گزارش ها که قبلا بر اساس a4 طراحی شده بودن خود به خود تغییر سایز میدن و کوچیک میشن. در واقع بیشتر از نصف گزارش حذف میشه. یه عکس ازش قرار دادم.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

_H2_
22-09-2011, 18:54
سلام

اما مشکل اصلا از داخل برنامه نیست که من بخوام کنترلش کنم. اگه به تنظیمات پرینتر داخل کنترل پنل برم و پرینتر پیش فرض ویندوز رو روی پرینتر حرارتی 8 سانتی بذارم داخل برنامه همه گزارش ها که قبلا بر اساس a4 طراحی شده بودن خود به خود تغییر سایز میدن و کوچیک میشن.

اجازه دهید ببینیم اصلاً درست متوجه شدم یا خیر ...
منظور شما آن است که در ذات هم میتوانید پرینت A4 بگیرید و هم 8 سانیتی؟
ولی مشکل آنجااست که انتخاب بین این دو دست شما نیست و وابسته به تعریف چاپگر پیشفرض ویندوز است؟
یعنی اگر چاپگر پیشفرض ویندوز عوض شود، اصلاً همان پرینت های A4 عادی قبلی هم دچار مشکل میشود؟
درست متوجه شدم؟
یعنی این مشکل در زمان Preview هم پیش می آید؟؟؟؟!!!!!


یک سمپل از قدیم داشتم که الآن هر بلایی تنظیمات چاپگر و همچنین سر کد آوردم نتواستم مشکل شما را در رایانه خودم شبیه سازی کنم.
یعنی Print Preview همواره صحیح نشان میداد.

راستی با چه نسخه ای کار میکنید؟

علی الحساب پیشنهاد میکنیم حداقل در زمان طراحی گزارش کریستال درون برنامه گزینه های زیر را فعال کنید:
(گرچه احتمالاً مشکلتان حل نخواهد شد!)
RightClick->Design->Printer Setup->No Printer
RightClick->Report->Report Options->Preview Pages Start With:Full Size

در اخر اگر میتوانید همین پک نمونه را هم یک امتحان کنید و ببینید آیاد با تغییر تنظیمات چاپگر پیشفرض Print Preview این هم دچار نمایش اشتباه میشود یا خیر.
(همین بود که برای شبیه سازی مشکل شما امتحانش کردم)
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

Payman_62
23-09-2011, 16:11
سلام.


سلام

اجازه دهید ببینیم اصلاً درست متوجه شدم یا خیر ...
منظور شما آن است که در ذات هم میتوانید پرینت A4 بگیرید و هم 8 سانیتی؟
ولی مشکل آنجااست که انتخاب بین این دو دست شما نیست و وابسته به تعریف چاپگر پیشفرض ویندوز است؟
یعنی اگر چاپگر پیشفرض ویندوز عوض شود، اصلاً همان پرینت های A4 عادی قبلی هم دچار مشکل میشود؟
درست متوجه شدم؟
یعنی این مشکل در زمان Preview هم پیش می آید؟؟؟؟!!!!!



بله مشکل همینه و در پریویو هم با تغییر پرینتر پیش فرض اندازه پریویو تغییر میکنه.





راستی با چه نسخه ای کار میکنید؟



2008




علی الحساب پیشنهاد میکنیم حداقل در زمان طراحی گزارش کریستال درون برنامه گزینه های زیر را فعال کنید:
(گرچه احتمالاً مشکلتان حل نخواهد شد!)
RightClick->Design->Printer Setup->No Printer



تو پروژه از 16 تا کریستال برای تولید گزارش و 1 کریستال برای صدور فاکتور استفاده کردم که کریستال صدور فاکتور به کاربر نشون داده نمیشه و فقط برای طراحی و چاپ فاکتور ازش استفاده شده.
گزینه No Printer مشکل گزارش هارو حل میکنه.

اما کریستال فاکتور باز مشکلش باقی میمونه. چون بعد از زدن noprinter بین سایز کاغذهایی که میتونیم انتخاب کنیم کاغذ 8 سانتی نداریم و فقط a4 و a5 و ... داریم. دستی هم که نمیتونیم width کریستال رو مقدار بدیم.
پس سایز کریستال فاکتور درست تنظیم نمیشه. ولی همان طور که گفتم این کریستال به کریستال ویور وصل نمیشه تا کاربر محتویاتش رو ببینه. پس میشه از این قسمت صرف نظر کرد و هنگام چاپ فاکتور تنظیمش کرد.
یه انتخاب برای نمایش print dialog گذاشتم تا اگه کاربر خواست پرینتر رو انتخاب کنه. در صورت پیش فرض نبودن پرینتر حرارتی میتونه هنگام چاپ فاکتور پرینتر حرارتی رو انتخاب کنه تا فاکتور در سایز مناسب چاپ بشه.



در اخر اگر میتوانید همین پک نمونه را هم یک امتحان کنید و ببینید آیاد با تغییر تنظیمات چاپگر پیشفرض Print Preview این هم دچار نمایش اشتباه میشود یا خیر.
(همین بود که برای شبیه سازی مشکل شما امتحانش کردم)


شما پرینتر حرارتی رو سیستمتون نصبه؟ شاید پرینتر هایی که روشون تست کردی همه a4 بودن.
خیلی دلم میخواست برنامه شما رو تست کنم. اما پرینتر حرارتی الآن دم دستم نیست.

_H2_
23-09-2011, 22:11
سلام

شما پرینتر حرارتی رو سیستمتون نصبه؟
خیر چاپگر حرارتی و کلاً کوچک ندارم.
در واقع همانطورکه گفتم برای شبیه سازی مشکل شما، فقط سایز کاغذ را در همان چاپگر عادی تغییر دادم تا اصلاً خود چاپگر سایز کوچکتر بگیرید که باز هم مشکلی در Preview پیش نیامد. (البته حالا چیزی به ذهنم رسید که اگر در تنظیماتم انجام دهم احتمالاً مشکل شما در رایانه من هم دیده میشود ... دیگر خیلی مهم نیست)

همیشه گزینه No Printer را در کریستال فعال میکردم بدلیل اینکه ذاتاً بنظرم مشکل داشت چون ما که نام و مدل و آدرس چاپگر رایانه ای که برنامه مان روی ان نصب میشود را نداریم! پس اصلاً معنی ندارد این اطلاعات در گذارش کریستال ذخیره شود.

ولی جالب بود، تاحالا هم به همچین مشکلی در Preview نخورده بودم، تجربه ای است.


اما کریستال فاکتور باز مشکلش باقی میمونه. چون بعد از زدن noprinter بین سایز کاغذهایی که میتونیم انتخاب کنیم کاغذ 8 سانتی نداریم و فقط a4 و a5 و ... داریم. دستی هم که نمیتونیم width کریستال رو مقدار بدیم.
در خصوص مشکل ابعاد، همان انتخاب چاپگری که گذاشتید بسیار کار آمد است و باید مشکل را مرتفع کند.
احتمالاً با انتخاب چاپگر مناسب توسط کاربر باید گزارش صحیح چاپ شود.

اگر هم شما خودتان در زمان طراحی گزارش در کریستال کاغذ بزرگتری انتخاب کرده ولی سمت راست اضافی گزارش را کلاً خالی رها کنید، با کدهایی شبیه این میتوانید ابعاد کاغذ را دستی در زمان اجرا اصلاح کنید:
لازم بذکر است تمام گزینه های کامل Combox ابعاد کاغذ در زمان طراحی در اینجا در دسترس است.
کد زیر عرض کاغذ را حدود 9 سانتیمتر میکند.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خصیصه PageContentWidth هم وجود دارد که ابعاد کاغذ را بدقت برمیگرداند ولی متاسفانه این خصیصه ReadOnly است.

شب خوش.

Payman_62
24-09-2011, 03:41
سلام.
برنامه شما رو هم با پرینتر حرارتی چک کردم. همون مشکل من رو داشت.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

تغییر runtime عرض گزارش میتونه برای زمانی که قصد نمایشش رو داریم مفید باشه.

_H2_
24-09-2011, 11:08
سلام

تغییر runtime عرض گزارش میتونه برای زمانی که قصد نمایشش رو داریم مفید باشه
پس اگر درست متوجه شده باشم، مشکل فعلاً حل شد و نیازی به تحقیق و جواب خاصی دیگری ندارد.

Payman_62
24-09-2011, 13:38
سلام.
نه دیگه ممنون از لطفت. مشکل حل شد.

Armin62
08-03-2015, 01:57
خب مشكلتون حل ميشه بگين تا ديگران هم اگه به اين مشكل برخورد كردن مشكلشون حل بشه

Payman_62
13-03-2015, 18:51
خب مشكلتون حل ميشه بگين تا ديگران هم اگه به اين مشكل برخورد كردن مشكلشون حل بشه

تغییر runtime عرض گزارش میتونه برای زمانی که قصد نمایشش رو داریم مفید باشه