PDA

View Full Version : چاپ از گردویو با ریپورتویو



goodarziasl
جمعه 09 تیر 1391, 12:30 عصر
با سلام
من میخوام از اطلاعات دیتا گردویو پرینت بگیرم ریپورتویو را توی فرم گذاشتم ریپورت راهم اضافه کردم حالا توی رویداد دکمه میخوام که خاصیت دیتاست را به دیتاسورس ریپورتویو بدم نمیشه یعنی اصلا خاصیت دیتاسورس برای ریپورتویو وجود نداره. برنامه را لطف کنید نگاهی بندازید و راهنمایی کنید
88924

IMANAZADI
شنبه 10 تیر 1391, 08:16 صبح
دوستان این سوال منم هست لطف کنید جواب بدید

veniz2008
شنبه 10 تیر 1391, 09:06 صبح
سلام،شما باید از خاصیت SetDataSource استفاده کنید. شما بعد از اینکه دیتاتیبل( dt ) خودتون رو پر کردید ، از کدهای زیر استفاده کنید:

ReportDocument rd = new ReportDocument();
rd.Load("CrystalReport1.rpt");
rd.SetDataSource(dt);
crystalReportViewer1.ReportSource = rd;
crystalReportViewer1.Show();

goodarziasl
شنبه 10 تیر 1391, 15:50 عصر
ممنون از پاسختون ولی من از کریستال ریپورت نمیخوام استفاده کنم از خود ریپورتویو vs2010 میخوام استفاده کنم

IMANAZADI
شنبه 10 تیر 1391, 16:41 عصر
اینم شده یه سوال واسه ما چرا تو هر تاپیک انجمنی میگیم از ریپورت خود ویژوال استادیو بازم میان راجه به کریستال ریپورت توضیح میدن

goodarziasl
شنبه 10 تیر 1391, 19:01 عصر
خدا عالمه.هر چی کلنجار باهاش میرم نمیشه جان من کمکی بکنید.از کریستال ریپورت نمیخواما .سایت codeporojectهم رفتم چیزایی بود ولی مشکل من حل نشد

sobijoon
شنبه 10 تیر 1391, 19:14 عصر
چرا تو هر تاپیک انجمنی میگیم از ریپورت خود ویژوال استادیو بازم میان راجه به کریستال ریپورت توضیح میدن
شاید لازمه CR رو یاد بگیری:چشمک:

سلام،شما باید از خاصیت SetDataSource استفاده کنید. شما بعد از اینکه دیتاتیبل( dt ) خودتون رو پر کردید ، از کدهای زیر استفاده کنید:
1
2
3
4
5
ReportDocument rd = new ReportDocument();
rd.Load("CrystalReport1.rpt");
rd.SetDataSource(dt);
crystalReportViewer1.ReportSource = rd;
crystalReportViewer1.Show();


شما راهی جز استفاده از این روش ندارید!

IMANAZADI
شنبه 10 تیر 1391, 21:19 عصر
خوب اینی که شما میگید و نوشتید کریستال ریپورته
ای خدااااااا ریپرورت نه کریستال





ReportDocument rd = new ReportDocument();
rd.Load("CrystalReport1.rpt");
rd.SetDataSource(dt);
crystalReportViewer1.ReportSource = rd;
crystalReportViewer1.Show();

goodarziasl
شنبه 10 تیر 1391, 23:14 عصر
آقا کسی نیست بفریاد ما برسه من با کامپونت های print این کار را میتونم انجام بدم ولی چیزی که من میخوام استفاده از reportviewer هست چ.ن هم میخوام یاد بگیرم و فکر میکنم به اندازه ی کامپوننت های printنیاز به کد نویسی نداره .....ممنون میشم کسی کمک کنه والا ثواب داره

علی فتحی
پنج شنبه 13 تیر 1392, 23:03 عصر
مشکل منم هست

khokhan
جمعه 14 تیر 1392, 01:42 صبح
آقا کسی نیست بفریاد ما برسه من با کامپونت های print این کار را میتونم انجام بدم ولی چیزی که من میخوام استفاده از reportviewer هست چ.ن هم میخوام یاد بگیرم و فکر میکنم به اندازه ی کامپوننت های printنیاز به کد نویسی نداره .....ممنون میشم کسی کمک کنه والا ثواب داره

درود بر شما

عزیز چیزی که دنبالشی rdlc گفته می شه نه report viewer

دیوما نمونه شما راست وریست شد و فکر کنم همونیه که می خوای

هم می تونی کل محتوای گرید رو در گزارش داشته باشی وهم اینکه اگه شماره بخصوصی مد نظرتون بود ابتدا فیلتر می کنی بعد گزارش می گیری و تنها مشخصات فرد مورد نظر به گزارش ارسال می شه
دیتابیس ضمیمه پروژه هست ونیازی به اتک نداره

mahtab.kamali
جمعه 14 تیر 1392, 23:58 عصر
درود بر شما

عزیز چیزی که دنبالشی rdlc گفته می شه نه report viewer

دیوما نمونه شما راست وریست شد و فکر کنم همونیه که می خوای

هم می تونی کل محتوای گرید رو در گزارش داشته باشی وهم اینکه اگه شماره بخصوصی مد نظرتون بود ابتدا فیلتر می کنی بعد گزارش می گیری و تنها مشخصات فرد مورد نظر به گزارش ارسال می شه
دیتابیس ضمیمه پروژه هست ونیازی به اتک نداره
لطفا اگه ممکنه بگین منظور از tell1BindingSource در این تکه کدی که نوشتین چیه ؟


try
{
Form2 f = new Form2();

SqlConnection con = new SqlConnection(connect);
SqlDataAdapter da = new SqlDataAdapter("Select * from tell1 where phone LIKE '" + textBox4.Text + "%'", con);
DataSet ds = new DataSet();
da.Fill(ds);
ds.Tables[0].TableName = "tell1";
f.tell1BindingSource.DataSource = ds;
f.reportViewer1.RefreshReport();
f.ShowDialog();


}
catch { };

cisco ++
شنبه 15 تیر 1392, 18:17 عصر
سلام
فکر میکنم منظورشون مقید کردن(Binding) اطلاعات دیتاست مربوط به جدول Tell1 به فرم هست( برای اینکه در فرم نشون داده بشه)

mahtab.kamali
یک شنبه 16 تیر 1392, 21:52 عصر
واقعا چیزی از این نمونه فهمیدین ؟؟؟؟؟؟؟؟؟:اشتباه:

وقتی از کسی سوالی می پرسند یک بار برای همیشه جواب می ده دیگه ادامه نمی دند چرااااااااااااا؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟؟؟؟

علی فتحی
دوشنبه 17 تیر 1392, 02:51 صبح
واقعا جوابتون به درد من خورد اقای خوخان خیلی ممنون.

cisco ++
دوشنبه 17 تیر 1392, 22:19 عصر
ممنون خوخان جان !
یه تیکه از کدهاتون به دردم خورد ولی یه سوال دیگه برام پیش آورد که : اگه بخوام بجای table از view استفاده کنم و داده های ویو رو بفرستم چاپ چطور اعمال کنم ؟
ممنون میشم جواب بدید

khokhan
دوشنبه 17 تیر 1392, 22:21 عصر
ممنون خوخان جان !
یه تیکه از کدهاتون به دردم خورد ولی یه سوال دیگه برام پیش آورد که : اگه بخوام بجای table از view استفاده کنم و داده های ویو رو بفرستم چاپ چطور اعمال کنم ؟
ممنون میشم جواب بدید
می شه بیشتر توضیح بدین ؟

علی فتحی
دوشنبه 17 تیر 1392, 23:31 عصر
اگر امکان داره همین گزارشو با LINQهم انجام بدید یا کدشو اینجا بگزاری ممنون میشم اقای خوخان عزیز

cisco ++
سه شنبه 18 تیر 1392, 09:16 صبح
می شه بیشتر توضیح بدین ؟

من 2 تا جدول دارم که ازشون یه view ساخته ام و بعضی از فیلدهای هر دو جدول رو در ویو اعمال کرده ام و برای چاپ فقط اطلاعات اون ویو رو میخوام . خوب؟ حالا بجای استفاده از تیکه کد مربوط به دکمه چاپ( که در ابتدای پست گذاشته شده) چی باید بنویسم؟
منظورم کد مربوط به دکمه چاپ در windowsfo.sln هست
(
ds.table[0].tablename="tell1"
f.tell1bindingsource.datasource=ds

منظورم تو این دو خط بجای جدول چطور ویو رو تعریف کنم؟

khokhan
سه شنبه 18 تیر 1392, 10:21 صبح
من 2 تا جدول دارم که ازشون یه view ساخته ام و بعضی از فیلدهای هر دو جدول رو در ویو اعمال کرده ام و برای چاپ فقط اطلاعات اون ویو رو میخوام . خوب؟ حالا بجای استفاده از تیکه کد مربوط به دکمه چاپ( که در ابتدای پست گذاشته شده) چی باید بنویسم؟
منظورم کد مربوط به دکمه چاپ در windowsfo.sln هست
(
ds.table[0].tablename="tell1"
f.tell1bindingsource.datasource=ds

منظورم تو این دو خط بجای جدول چطور ویو رو تعریف کنم؟
3تا کار خیلی کوچولو انجام می دی :

ابتدا می آیی جدولی رو که در گزارش انتخاب وبه عنوان پیش فرض توی گزارش گذاشته بودیم حذف می کنی و view رو که در بانک ایجاد کردی در فایل گزارش تعریف می کنی و فیلدهایی رو که قراره در گزارش نشون داده بشه بهش اضافه می کنی

بعد نوبت می رسه به اینکه کوئری رو که نوشتیم عوض کنی و به عوض نام جدول نامی رو که برای view گذاشتین قرار می دین و فیلدهای موجود در اون رو در کوئری می نویسین

ودر نهایت همون دو خطی رو که در پست بالا قرار دادین به جای نام جدول نام view رو قرار می دین

اگه موفق نشدین بگین نمونه بدم

cisco ++
سه شنبه 18 تیر 1392, 10:53 صبح
3تا کار خیلی کوچولو انجام می دی :

ابتدا می آیی جدولی رو که در گزارش انتخاب وبه عنوان پیش فرض توی گزارش گذاشته بودیم حذف می کنی و view رو که در بانک ایجاد کردی در فایل گزارش تعریف می کنی و فیلدهایی رو که قراره در گزارش نشون داده بشه بهش اضافه می کنی

بعد نوبت می رسه به اینکه کوئری رو که نوشتیم عوض کنی و به عوض نام جدول نامی رو که برای view گذاشتین قرار می دین و فیلدهای موجود در اون رو در کوئری می نویسین

ودر نهایت همون دو خطی رو که در پست بالا قرار دادین به جای نام جدول نام view رو قرار می دین

اگه موفق نشدین بگین نمونه بدم

ممنون از لطفتون ، اون موارد رو اضافه کردم ولی
آخه وقتی در کوئری مینویسم ds.tables[0].tablename بجای table و tablename باید نام view رو خودش بیاره که نمیاره !
به نظرتون ایراد کار کجاست؟

cisco ++
سه شنبه 18 تیر 1392, 12:17 عصر
از دوستان کسی نیست به این مورد اخیر برخورده باشه؟
این کدی هست که من برای دریافت اطلاعات از یک view نوشته ام ولی
هیچ گزارشی نشون نمیده با این کد

private void button2_Click(object sender, EventArgs e)
{

try
{
Gabz gabzFrm = new Gabz();
objcon.Open();
SqlDataAdapter objda = new SqlDataAdapter("select * from VIEW-DrGPsahm where BimarLName LIKe'" + textBox5 .Text + "%'",objcon );
DataSet ds = new DataSet();
objda.Fill(ds);
ds.Tables[0].TableName = "VIEW-DrGPsahm";
gabzFrm.VIEW_DrGPsahmBindingSource .DataSource = ds;
gabzFrm.reportViewer1.RefreshReport();
gabzFrm.ShowDialog();
}
catch
{
}
}

علی فتحی
سه شنبه 18 تیر 1392, 23:03 عصر
حتما با LINQهم توضیح دهید.

khokhan
چهارشنبه 19 تیر 1392, 01:20 صبح
از دوستان کسی نیست به این مورد اخیر برخورده باشه؟
این کدی هست که من برای دریافت اطلاعات از یک view نوشته ام ولی
هیچ گزارشی نشون نمیده با این کد

در نمونه حاضر من یه view داخل بانک ایجاد کرده ام حالاچون هدف نشان دادن ارتباط گزارش با viewبود کاری نداریم که درسته یانه :لبخند: خلاصه اینکه مخلوطی از فیلدهای دوتا جدولو نشون می ده :لبخند:

بعد اینکه همون نمونه قبلیه با یه view به نام dana
در ضمن دوست خوبم آقای فتحی یادم نرفته با linq هم چشم همراه یه نمونه توضیح می دم :لبخند:

شاد باشین

cisco ++
چهارشنبه 19 تیر 1392, 09:05 صبح
در نمونه حاضر من یه view داخل بانک ایجاد کرده ام حالاچون هدف نشان دادن ارتباط گزارش با viewبود کاری نداریم که درسته یانه :لبخند: خلاصه اینکه مخلوطی از فیلدهای دوتا جدولو نشون می ده :لبخند:

بعد اینکه همون نمونه قبلیه با یه view به نام dana
در ضمن دوست خوبم آقای فتحی یادم نرفته با linq هم چشم همراه یه نمونه توضیح می دم :لبخند:



شاد باشین



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

khokhan
چهارشنبه 19 تیر 1392, 10:38 صبح
ممنون از لطفتون
شما خودتون جواب گرفتید از کدی که نوشتین؟ چون مراحل اتصال ویو به گزارش مثل مال منه ولی من جواب نمیگیرم و متاسفانه نمیدونم مشکل از کجاس؟:گریه:
:متفکر:
جواب گرفتم که...:متعجب: !!!!! من نمی دونم منظورشما از جواب چیه !!!!!:متعجب: من براتون نمونه گزاشتم اجرا کنین ببینین دیگه!!!!! سورسش هم هست

اگه می تونی یه نمونه از کارخودتونو ارسال کنین یه نگاه بندازیم

cisco ++
چهارشنبه 19 تیر 1392, 10:50 صبح
جواب گرفتم که...:متعجب: !!!!! من نمی دونم منظورشما از جواب چیه !!!!!:متعجب: من براتون نمونه گزاشتم اجرا کنین ببینین دیگه!!!!! سورسش هم هست

اگه می تونی یه نمونه از کارخودتونو ارسال کنین یه نگاه بندازیم


آخه این ویو که من ساخته ام تو sql و در قسمت preview مربوط به دیتاآداپتور و دیتاست داده های مربوط به پاسخ دستور select رو نشون میده ولی موقع اجرا چیزی نشون نمیده. خط به خط که اجرا میکنم وقتی به خط da.fill (ds) میرسه هیچ کاری نمیکنه یعنی داده ها رو نشون نمیده