PDA

View Full Version : سوال: تغییر ارتفاع کاغذ در Stimul Report توسط کد



yazdi84
شنبه 20 تیر 1394, 15:31 عصر
سلام دوستان، می خوام در STIMUL REPORT ارتفاع کاغذ چاپ را متغیر در نظر بگیرم. برای فاکتور فروش می خوام. و کاغذ رول 80 میلی متری، پس بنا به تعداد کالاها ارتفاع کاغذم کم و زیاد می شه...
کالاها در datatable به اسم dt می باشد. پس کدی که نوشتم این گونه است


report.RegData(dt);
int pageNewHeight = ((dt.Rows.Count)*4) + 10;
report.Pages[0].Height = pageNewHeight;


باز هم کار نمی کند. میشه راهنمایی کنید.

Mahmoud Zaad
شنبه 20 تیر 1394, 16:52 عصر
سلام
نیازی به تغییر ارتفاع نیست، فقط یک گزارش با عرض 8 نیاز دارید یعنی از سمت بالا و چپ شروع به طراحی گزارش کنید. فیلدهای مربوط به کالاها هم که در بخش Data قرار می گیره. از اونجا که خودتون هم گفتید کاغذ رول هست هر چقدر که گزارش شما طولانی باشه کاغذ پرینت شده هم طولانی خواهد بود و بعدش دستگاه کاغذ رو برش میزنه.

yazdi84
شنبه 20 تیر 1394, 17:04 عصر
سلام
نیازی به تغییر ارتفاع نیست، فقط یک گزارش با عرض 8 نیاز دارید یعنی از سمت بالا و چپ شروع به طراحی گزارش کنید. فیلدهای مربوط به کالاها هم که در بخش Data قرار می گیره. از اونجا که خودتون هم گفتید کاغذ رول هست هر چقدر که گزارش شما طولانی باشه کاغذ پرینت شده هم طولانی خواهد بود و بعدش دستگاه کاغذ رو برش میزنه.

سلام، ممنون از جوابتون
من از یک قالب mrt دارم استفاده می کنم. اتفاقی که می افته اینه که وقتی که کالاهای من از 4 تا بیشتر می شه، یک کاغذ دیگه از قالب ایجاد می کنه با همون header... در نتیجه طول کاغذ ثابت هست و دو تا کاغذ ایجاد می شه نه اینکه یک کاغذ طولانی تر داشته باشم.

Mahmoud Zaad
شنبه 20 تیر 1394, 17:57 عصر
سلام، ممنون از جوابتون
من از یک قالب mrt دارم استفاده می کنم. اتفاقی که می افته اینه که وقتی که کالاهای من از 4 تا بیشتر می شه، یک کاغذ دیگه از قالب ایجاد می کنه با همون header... در نتیجه طول کاغذ ثابت هست و دو تا کاغذ ایجاد می شه نه اینکه یک کاغذ طولانی تر داشته باشم.
خب احتمالاً طراحی این قالب مشکل داره، شما باید اطلاعات مربوط به کالاها (مثل نام، تعداد، قیمت و ...) رو در قسمت Data گزارش قرار بدید، به طور کلی headerها و footerها یکبار تکرار میشن ولی Data به تعداد رکوردهای بانک اطلاعاتی شما، تکرار میشن. احتمالاً توی این فایلی mrt این اطلاعات رو در قسمتی مثل هدر یا فوتر و ... قرار دادن یا محدودیتی برای تعداد در نظر گرفتن. اگه کار با stimul soft Report رو بلد باشید طراحیش هم مثل سایر گزارش هاست نیازی به قالب خاصی نداره.

yazdi84
یک شنبه 21 تیر 1394, 07:30 صبح
خب احتمالاً طراحی این قالب مشکل داره، شما باید اطلاعات مربوط به کالاها (مثل نام، تعداد، قیمت و ...) رو در قسمت Data گزارش قرار بدید، به طور کلی headerها و footerها یکبار تکرار میشن ولی Data به تعداد رکوردهای بانک اطلاعاتی شما، تکرار میشن. احتمالاً توی این فایلی mrt این اطلاعات رو در قسمتی مثل هدر یا فوتر و ... قرار دادن یا محدودیتی برای تعداد در نظر گرفتن. اگه کار با stimul soft Report رو بلد باشید طراحیش هم مثل سایر گزارش هاست نیازی به قالب خاصی نداره.

جناب آقای زاد
اصلا header و footer رو فراموش کنید. یک Datatable داریم و کاغذی که در mrt تعریف کرده ام طولش 10 سانتی متر است. وقتی که تعداد خط های جدول از 12 عدد بیشتر می شود به کاغذ جدید می رود. در حالی که می خواهم طول کاغذ بیشتر شود.

yazdi84
یک شنبه 21 تیر 1394, 07:31 صبح
مشکل حل شد:

ابتدا باید طول کاغذ را تعیین کرد، بعد compile کرد. یعنی ترتیب کد به این شکل است:




dataGridView1.DataSource = dataTable;

StiReport report = new StiReport();
report.Load("c:/s80.mrt");


report.RegData(dataTable);
int pageNewHeight = (dataTable.Rows.Count * 4) + 17;
report.Pages[0].Height = pageNewHeight;
report.Compile();