PDA

View Full Version : كار با ديتا ريپورت در vb



emm_it
دوشنبه 28 اردیبهشت 1388, 23:47 عصر
سلام
چطوري مي شه صفحه ديتاريپورت رو به صورت افقي طراحي كرد كه خطاي
(report width is larger then the paper width) رو نده !!!

vbhamed
سه شنبه 29 اردیبهشت 1388, 00:15 صبح
سلام

مهم افقي يا عمودي بودن نيست

اين خطا وقتي داده ميشه كه عرض گزارش يعني ReportWidth + خاصيتهاي LeftMargine و RightMargine از عرض كاغذ چاپگر كه در كنترل پنل ويندوز تعريف شده، بيشتر شده باشه

براي اينكه بتونيد اينها رو حساب كنيد فرض كنيد قراره روي يك كاغذ A4 كه عرض 21 سانتي متر داره، گزارشي طراحي كنيم كه از چپ و راست 1 سانتي متر حاشيه داشته باشه يعني در كل 2 سانتي متر حاشيه و 19 سانتي متر عرض چاپ


ReportWidth = 19 * 566
LeftMargine = 1 * 566
RightMargine = 1 * 566

واحد پيشفرض اينچ هست و بنا به محاسبات انجام شده شما بايد عدد سانتي مترتون رو در 566 ضرب كنيد

اگر هم بخواهيم روي A4 بدون حاشيه چاپ كنيم مشخصات بايد اينطوري باشه


ReportWidth = 21 * 566
LeftMargine = 0
RightMargine = 0

emm_it
پنج شنبه 31 اردیبهشت 1388, 12:23 عصر
سلام
ممنون ولي اگر تنظيمات خود پرينتر رو افقي كنيم ديگه اين پيغام داده نمي شه ولي اين تنظيمات بيرون از برنامه است و توسط هر كاربري ممكنه دستكاري بشه.

vbhamed
پنج شنبه 31 اردیبهشت 1388, 13:58 عصر
سلام

اگر افقي كنيد پيام نميده چون در اين حالت عرض چاپ شما به جاي 21 سانتي متر 29.7 سانتي متر ميشه و باعث ميشه كم نياره

راهش هموني هست كه نوشتم
ضمنا حالت كاغذ رو مي تونيد با دستور Printer.Orientation تغيير بديد كه 1 عمودي و 0 افقي ميشه