PDA

View Full Version : ارسال گروه داده ها جهت چاپ در صفحات مجزا



میلاد قاضی پور
پنج شنبه 07 مرداد 1389, 02:45 صبح
سلام. من یه گزارش طراحی کردم که مربوط به مشخصات دانشجویان هست. میخوام هر کد دانشجویی که انتخاب میشه اطلاعات مربوط بهش از دیتابیس خونده شده و بیاد توی ریپورت ویوور به صورت گزارشات جدا جدا نمایش داده بشه. در واقع میخوام یک گزارش رو چندین بار جدا جدا از اطلاعات پر کنم ولی توی ریپورت ویوور یه جا همشو نمایش بدم . برای اینکار چیکارکنم و چه تنظیماتی باید انجام بدم.

حجتی نیا
پنج شنبه 07 مرداد 1389, 08:23 صبح
طلاعات مربوط بهش از دیتابیس خونده شده و بیاد توی ریپورت ویوور به صورت گزارشات جدا جدا نمایش داده بشه. در واقع میخوام یک گزارش رو چندین بار جدا جدا از اطلاعات پر کنم ولی توی ریپورت ویوور یه جا همشو نمایش بدم .بالاخره جداجدا یا همه با هم ؟؟؟
اونجوری که من فهمیدم اینه که reportviewer شما درهمون فرمتون هست که اطلاعات دانشجویان هست..
1- اگه اینطوریه که میتونی اول یه دیتاست به گزارش اضافه کنی و فیلداشو بکشی تو گزارش..بعد داخل برنامه هروقت رو یه دانشجو کلیک کردی اطلاعاتش رو بریز تو دیتاست و دیتاسورس گزارش رو همون دیتاست قرار بده و در reportviewer نمایش بده و همزمان با این کار،اطلاعات همین دانشجو رو وارد یه دیتاتیبل با دیتاست بکن.. در انتها واسه دیدن اطلاعات کل میتونی ابتدا اطلاعات دیتاست یا دیتاتیبل دومی رو تو اولی(دیتاست که در گزارش قرار دادی) بریزی و دیتاسورس گزارش رو اون قرار بدی و باقی داستان.....(این روش مثه اینه که لقمه رو دور سرت بچرخونی)
روش اول خیلی ممکنه کند بشه
2 - داخل فرم نمایش اطلاعات دوتا کلید بزار (چاپ - پیش نمایش - چاپ همه) اگه طرف چاپ رو زد اطلاعات رو میخونه و مستقیم چاپ میکنه .. اگه پیش نمایش رو زد اطلاعات رو میخونه و در یه reportveiwer نمایش میده .. اکه چاپ همه رو زد که اطلاعات همه رو میخونه و واسه چاپ میفرسته

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

میلاد قاضی پور
پنج شنبه 07 مرداد 1389, 13:27 عصر
ببینید. من میخوایم برای ریپورت ویوورم پیج برک بذارم . وقتی کاربر از دیتا گریدویو مواردی رو جهت چاپ تیک زد ، همه ی موارد بیاد توی ریپورت ویوور به ازای هر دانشجو یه صفحه ازون گزارشی که ساختم توی ریپورت ویوورم نمایش داده بشه . گزارش رو ساختم اما نمیدونم چطوری دسته ای اطلاعات رو بفرستم جهت چاپ و نمیدونم پیج برک خودش ایجاد میشه یا باید خودمون تنظیمات انجام بدیم برای اینکار نخطه




private void button4_print_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Cells[0].Value=true)
{

}
}

}

میلاد قاضی پور
پنج شنبه 07 مرداد 1389, 13:31 عصر
ضمنا من میخوام دیتا ست رو با کد ایجاد کنم و فیلدها رو هم با کد نسبت بدم به گزارش راهی جز درگ کردن نیست ؟

حجتی نیا
پنج شنبه 07 مرداد 1389, 16:20 عصر
تو کدتون میتونی بزاری : به ازای هر سطر که تیک خورده،اونو به یه دیتاتیبل اضافه کن و در انتها بعد از اتمام حلقه اون دیتاتیبل رو داخل دیتاست قرار بده ..حالا دیتاسورس گزارش رو همون دیتاست قرار بده..

ضمنا من میخوام دیتا ست رو با کد ایجاد کنم و فیلدها رو هم با کد نسبت بدم به گزارش راهی جز درگ کردن نیست ؟ اگه داخل گزارش درگ کنی بنظر من خیلی بهتره،کار راحت تره ..

من میخوایم برای ریپورت ویوورم پیج برک بذارماگه درست فهمیده باشم میخواین اطلاعات هرفرد داخل یه صفحه چاپ بشه... باید تو طراحی گزارش، 1)سایز بخش detail رو به اندازه طول کاغذ قرار بدین تا هنگام چاپ در هرصفحه فقط یه دانشجو بیاد یا 2) کل اطلاعات رو در بخش pageheader یا pagefooter قرار بدین تا اطلاعات هربار فقط دریه صفحه چاپ بشه

میلاد قاضی پور
پنج شنبه 07 مرداد 1389, 18:24 عصر
دوست عزیز ببین من نمیتونم سایز دیتیلز رو به اندازه کل کاغذ تغییر بدم چون بخش دیتیلز مقادیر مربوط به دروس و نمرات اختصاصی رو در خودش نگه میداره. یعنی اون نمرات متعلق به یک دانشجو هست . میخوام با زدن کلید نکست یا صفحه دو اطلاعات مربوط به دانشجوی دوم رو نشون بده . در واقع میخوام پارامتر ها چندین مقدار رو در خودشون نگه دارن که در هر صفحه یکی از مقادیر باشه .

http://sites.google.com/site/myuploadedimages/home/barna-1/reportpages/p.JPG?attredirects=0

حجتی نیا
پنج شنبه 07 مرداد 1389, 18:46 عصر
ر واقع میخوام پارامتر ها چندین مقدار رو در خودشون نگه دارن که در هر صفحه یکی از مقادیر باشهدوست گرامی وقتی شما دیتاست رو با اطلاعات دانشجوهای انتخاب شده پرش میکنی، همین کارو داره انجام میدی .. زمانی که دیتاست رو بعنوان دیتاسورس گزارش قرار میدی،گزارش به ازای هر دانشجو یبار اطلاعات فرمتو پر میکنه و اگه طراحی فرمت بگونه ای باشه که اطلاعات هربار در یه صفحه بیاد،با زدن کلید next میره صفحه بعدی و اتومات اطلاعات نفربعدی رو نشون میده
حالا اگه اطلاعات داخل detail (اندازه طول) از سایز کاغذ کمتر باشه، در گزارش، اطلاعات چندتا دانشجو در داخل یه صفحه میاد،واسه همین میگم سایز detail رو به اندازه کاغذت بکن درضمن اینکار به اطلاعاتت کاری نداره چون طول detail رو داره از انتها اضافه میکنی..
اگه یه عکس از فرم برنامه و گزارش رو بزاری،خیلی راحت تر میشه روش صحبت کرد..
این برنامه رو نگاه کن بدردتون میخوره یا نه؟؟
http://www.4shared.com/file/7O1svdxW/WindowsFormsApplication2.html

میلاد قاضی پور
پنج شنبه 07 مرداد 1389, 19:12 عصر
عکس که گذاشتم که ...
خب یواش یواش داره مسأله حل میشه با فرمایشات شما فقط موند اینکه چجوری دیتا سورس گزارش رو برابر دیتا ستم قرار بدم و چجوری دیتا ستم رو با دیتا تیبل پر کنم . یه کوچولو دست بگیر که پرونده این یکی رو هم ببندیم بره (کد میخوام). مرسی

حجتی نیا
پنج شنبه 07 مرداد 1389, 23:54 عصر
عکس که گذاشتم که ...من که نمی بینم ..

چجوری دیتا سورس گزارش رو برابر دیتا ستم قرار بدمتو برنامه که گذاشتم هست..

چجوری دیتا ستم رو با دیتا تیبل پر کنمیه راهه ولی تنها راه نیست

DataRow dr;

foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Cells[0].Value=true)
{
//create a row

dr = ds.tablename.NewRow();

//add columns

dr.tablename.Columns.Add("feildname1");

dr.tablename.Columns.Add("feildname2");
.
.


dr[0] = row.cells[0].value;

dr[1] = row.cells[1].value;
.
.


//add the row to the ds

ds.tablename.Rows.Add(dr);

}
}** ds همون دیتاست که در برنامه داری و درگزارش اضافه کردی
**tablenameهمون جدولی که در دیتاستی که قبلا تعریف و در گزارش اضافه کردی
** ترتیب تعریف فیلدها به همون ترتیب جدول در دیتاست باشه

میلاد قاضی پور
پنج شنبه 14 مرداد 1389, 17:27 عصر
من اطلاعات رو به دیتاست میفرستم ولی فقط گزارش یکی از دانشجو هارو نشون میده . و صفحه بندی صورت نمیگیره.

حجتی نیا
پنج شنبه 14 مرداد 1389, 17:29 عصر
من اطلاعات رو به دیتاست میفرستم ولی فقط گزارش یکی از دانشجو هارو نشون میده . و صفحه بندی صورت نمیگیره.
یه breakpoint تو برنامه بزارین ببین چندتا رکورد توش میریزه؟؟

میلاد قاضی پور
پنج شنبه 14 مرداد 1389, 17:53 عصر
معذرت میخوام من تازه کارم نمیدونم کجا نشون میده. یعنی روی دیتاست که میبرم موس رو و اکسپندش میکنم اطلاعات توی دیتا ست رو نمیدونم کجا باید ببینم . فقط اطلاعات فیلدها رو نشون میده .

حجتی نیا
جمعه 15 مرداد 1389, 09:33 صبح
تو count به تعداد دانشجوهات هست یا نه؟؟

میلاد قاضی پور
شنبه 16 مرداد 1389, 00:28 صبح
ضمن تشکر از اینکه زحمت میکشید و پیگیر مسائل پیشامده هستید باید عرض کنم اونطوری که گفتید بررسی کردم همه موارد طبق پیش بینی 3 تا سطر داره. یعنی روبروی کانت نوشته 3 . من متوجه شدم باید تیک گزینه نیو پیج افتر رو هم در قسمت سکشن نمیدونم چی چی بزنم که اینکارو کردم ولی بارزم اطلاعات کامل نمایش داده نمیشن و فقط یکیش دیده میشه .

حجتی نیا
شنبه 16 مرداد 1389, 00:41 صبح
دیتاستی که توش اطلاعات میریزی همون دیتاستیه که داخل گزارش اضافه کردی؟؟ (دیتاست رو با کد ایجاد میکنی یا به برنامه اضافه کردی)
در جدول خاصی از دیتاست اطلاعات رو اضافه میکنی؟؟

میلاد قاضی پور
شنبه 16 مرداد 1389, 01:46 صبح
بله . طبق پیشنهاد شما اضافه کردم ولی ازش نمونه گرفتم . بله در سه جدول . من الان یعک تصویر گووویاااا میذارم که توی ذهن همه رعد برق بزنه .

میلاد قاضی پور
شنبه 16 مرداد 1389, 02:04 صبح
https://sites.google.com/site/myuploadedimages/home/barna-1/reportpreview/1.JPG?attredirects=0



https://sites.google.com/site/myuploadedimages/home/barna-1/reportpreview/2.JPG?attredirects=0

میلاد قاضی پور
شنبه 16 مرداد 1389, 18:53 عصر
اوکی اوری بادی ...گرفتم مشکل از چی بود . مسأله مربوط میشه به نحوه ریلیشن ها . با جابجا کردن لینکها در دیتابیس اکسپرت و همچنین تغییر چند تا از پارامتر ها مسأله حل شد .