PDA

View Full Version : آموزش: آموزش ساده وکاربردی انتقال اطلاعات از فرم (هر چی که باشه مثلا دیتاگرید) به فرم گزارش(مثلا کریستال)



svhasvha
یک شنبه 24 شهریور 1392, 16:34 عصر
سلام دیدم بچه ها خیلی راجب انتقال اطلاعات از دیتا گرید و...... به فرم های گزارش سوال میپرسن و کلا مشکل با گزارش گیری دارن
خواستم یه توضیحات وآموزش ساده وکوچیکی بدم شاید تونستم کمکی کرده باشم
فقط بچه ها خداوکیلی بچه سوال نپرسید هر برنامه ممکنه هزار تا حالت مختلف تو ذهن منو شما ایجاد کنه قرار نیست که همه چیز رو ببپرسید راهش اینه که خودتون دست به کار بشید, ونسبت به این آموزش دید کلی داشته باشید البته سعی میکنم با یه مثال کار بردی بگم
حالا طبق چیزای که از سوالات بچه ها فهمیدم من فرض میکنم
مثلا
1 تو فرمم یه دیتا گرید دارم(یا هر چیز دیگه ای)
2 نمیخوام برای گزارش گیری به بانک وصل بشم(به خاطر مشکلات ودردسر ستاپ سازی و.....)
3 از کریستال استفاده میکنم(یا ریپورت خود ویژوال یا.....)
4 رو فرم یه کلید برای گزارش گیری دارم
خوب تو رویداد کلیک کلید
وارد کنید


DataSet ds = new DataSet();

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

حالا در ادامه کد زیر رو وارد کنید
DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(Int16)); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("family", typeof(string));
این چی بود؟؟
یه جدول که مثلا سه تا فیلد ای دی و نام ونام خانوادگی رو که اولی جنسش عدد صحیح ودوتای دیگه رشته
نکته: به تعداد فیلد های که تو دیتا گرید دارید تو جدولتون فیلد بسازید!!!!

حالا باید دونه دونه سلول های دیتا گرید رو بریزیم تو جدولمون
چطوری؟
با یه دستور فور یا فور ایچ یا هر روشی که بلدین مثلا

foreach (DataGridViewRow dgv in DataGridView1.Rows) { dt.Rows.Add(dgv.Cells[0].Value, dgv.Cells[1].Value, dgv.Cells[2]); }
خوب حالا یک سوال ؟؟؟
این دیتا ست به صورت کد درست شده تو کریستال نمیاااااااااااااااااااددد دد:عصبانی++:(به صورت فیزیکی نمیشه باهاش کار کرد)
حالا چیکار کنیم؟؟؟؟
خوب به ادامه کد ها این کد رو اضافه کنید
ds.Tables.Add(dt); ds.WriteXmlSchema("Sample.xml");
این کد اول جدولی رو که ساختین به دیتا ستتون اضافه میکنه وبعد از دیتا ست یه فایل Xml میسازه(حالا میگم چرا!!!!!)
حالا
یه صفحه کریستال یا ریپورت خود ویژوال به پروژه اضافه کنید
http://www.codeproject.com/KB/grid/599943/b.jpg
بعد
http://www.codeproject.com/KB/grid/599943/c.JPG
بعدشم
http://www.codeproject.com/KB/grid/599943/d.JPG
حالا گزینه
ADO.NET(Xml).
بعد
http://www.codeproject.com/KB/grid/599943/e.JPG
حالا بروز رو بزنید و برید به آدرسی که پروژه زخیره شده
و برید تو پوشه
bin
بعدش
debug
و اونجا دنبال فایل
Sample
چی؟؟؟؟
نیست؟؟؟؟
شوخی نکن
بزا ببینم
اهااااااااااا!!!!!!
یه بار برنامه رو اجرا کنید و رو کلید چاپ , همون کلیدی که تو رویداد کلیلکش کد نوشتیم
کلیک کنید بعد برنامه رو ببندید ودوباره برید تو همون پوشه که گفتم
هست؟؟؟؟
دیدی!!!
خوب چرا؟
به خاطر اینکه با یه بار اجرا کردن یه فایل XML درست شد همون خط که گفتم چرا شو میگم
حالا هر بار که کلید رو بزنید اون فایل آپدیت میشه ازاین طرف هم شما میتونی به صورت فیزیکی تو کریستال با جدولت کار کنی
و مرتبشون کنی میگی نه نگاه کن
مراحل رو انجام بده و فایل رو انتخاب کن تا
http://www.codeproject.com/KB/grid/599943/x.JPG
حالا
http://www.codeproject.com/KB/grid/599943/x.JPG
http://www.codeproject.com/KB/grid/599943/y.JPG
دیدی!!!!!
خوب حالا فرم گزارشتو هر طور که میخوای مرتب کن والباقی کارا

تو رویداد لود ریپورتر یا تو رویداد کلیک کلیدی که ریپورتر و لود میکنه یا....
از این کد استفاده کن


CrystalReport1 cr = new CrystalReport1(); cr.SetDataSource(ds); crystalReportViewer1.ReportSource = cr;
نکته:
این اموزش کلی بود
دیگه همش بستگی به خلاقیت خودتون داره
مثلا میتونید به جای دیتا گرید جدولتون رو باهر چیز دیگه ای که خودتون دوست داری پر کنید
چه میدونم تکس باکس ......
اگر هم از ریپورتر دیگه ای دارید استفاده میکنید حالت کلیش همینه
و . . . . . .

به دردتون خورد؟؟؟
یاعلی موفق باشید

Saeed-CANcel
یک شنبه 24 شهریور 1392, 16:36 عصر
:چشمک: کارت 20ته استاد:تشویق:

svhasvha
یک شنبه 24 شهریور 1392, 16:42 عصر
قربون تو دادا منم شاگرددم

Saeed-CANcel
یک شنبه 24 شهریور 1392, 16:47 عصر
قربون تو دادا منم شاگرددم

آقایی...
دادا سری تو این تاپیکِ بزن ببین میتونی راهنمایی کنی...مرسی
http://barnamenevis.org/showthread.php?419441-%D8%B3%D8%A7%D8%AE%D8%AA-setup-%D8%A8%D8%A7-microsoft-Visual-Stadio

svhasvha
یک شنبه 24 شهریور 1392, 17:01 عصر
آقایی...
دادا سری تو این تاپیکِ بزن ببین میتونی راهنمایی کنی...مرسی
http://barnamenevis.org/showthread.php?419441-%D8%B3%D8%A7%D8%AE%D8%AA-setup-%D8%A8%D8%A7-microsoft-Visual-Stadio
یه سرچ کن زیاده من خوم راجبش چنتا مطلب گذاشتم البته بچه ها استقبال نکردن ادامه ندادم دیگه

sg.programmer
یک شنبه 31 شهریور 1392, 15:23 عصر
سلام دوست عزیز
من از این روش رفتم - وقتی ریپورت لود میشه خالی نشون میده
در ضمن تمام فیلدها ساخته شده و تو ریپورت لود میشه فقط دیتا نداره - احتمالا در اتصالش مشکل هسه اگه ممکنه راهنمایی کنید؟

svhasvha
دوشنبه 01 مهر 1392, 17:59 عصر
سلام دوست عزیز
من از این روش رفتم - وقتی ریپورت لود میشه خالی نشون میده
در ضمن تمام فیلدها ساخته شده و تو ریپورت لود میشه فقط دیتا نداره - احتمالا در اتصالش مشکل هسه اگه ممکنه راهنمایی کنید؟
سلام
تو رویداد لود ریپورتر یا تو رویداد کلیک کلیدی که ریپورتر و لود میکنه یا....
از این کد استفاده کن

CrystalReport1 cr = new CrystalReport1(); cr.SetDataSource(ds); crystalReportViewer1.ReportSource = cr;

svhasvha
دوشنبه 01 مهر 1392, 18:04 عصر
تو رویداد لود ریپورتر یا تو رویداد کلیک کلیدی که ریپورتر و لود میکنه یا....
از این کد استفاده کن

CrystalReport1 cr = new CrystalReport1(); cr.SetDataSource(ds); crystalReportViewer1.ReportSource = cr;

svhasvha
یک شنبه 01 دی 1392, 15:04 عصر
سلام بچه ها این مطلب به درد خورد؟
کسی میتونه راجبش یه ایده بده
مشکلی داره
کسی فهمیده نقص داره یا نه؟؟

forogh12
شنبه 07 دی 1392, 18:54 عصر
سلام همه کارایی که گفته بودید رو درست انجام دادم ولی این ارور رو می ده114549

svhasvha
سه شنبه 17 دی 1392, 09:31 صبح
سلام دوست گلم
مشکل شما از کریستال ریپورته
از چه ورژن ویژوال استدیو استفاده میکنی؟
از نصب صحیح کریستال مطعن شو

mehdiomnia
سه شنبه 17 دی 1392, 09:50 صبح
استاد چون ساده آموزش دادید میپرسم
این قسمت که نوشتید

این چی بود؟؟
یه جدول که مثلا سه تا فیلد ای دی و نام ونام خانوادگی رو که اولی جنسش عدد صحیح ودوتای دیگه رشته
نکته: به تعداد فیلد های که تو دیتا گرید دارید تو جدولتون فیلد بسازید!!!!این کدارو هم در همون رویداد دکمه ای که اول کار تعریف کردیم باید بذاریم دیگه ؟
ضمنا مسیر خوده ریپورت خود ویژوال کجاس ؟ من خیلی مبتدی هستم ببخشید میدونم فرمودید سوال نپرسم

sagggad
سه شنبه 17 دی 1392, 11:56 صبح
سلام.
من یه مشکل دارم...
همونطور که میدونید ویژوال استودیو 2012 کریستال ریپورت نداره...
حالا خواستم ببینم باید چیکار کنم؟؟
توبازار هست؟