PDA

View Full Version : سوال: سوال از کسایی که reportviewer Csharp رو بلدن



liliamator
شنبه 12 فروردین 1391, 02:30 صبح
با سلام و عذرخواهی
اول بگم که کسی از crystallreport و چیزای دیگه جواب نذاره چون اینقده اطلاعات من داغونه که سر در نمیارم

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

حالا شرح ماجرا:
SqlConnection1
SqlCommand1
SqlDataAdapter1
DataSet1
DataGridView1
رو دارم ،بر اساس فیلدهای مختلف جستجو انجام میدم و داده ها رو میریزم داخل DataGridView1 این کارها را تو فرم1 و روی کلید جستجو انجام میدم
SqlDataAdapter1.SelectCommand = new SqlCommand();
SqlDataAdapter1.SelectCommand.Connection = SqlConnection1;
SqlDataAdapter1.SelectCommand.CommandText = "SELECT * FROM Table1 where شرط";
SqlDataAdapter1.SelectCommand.CommandType = CommandType.Text;
SqlConnection1.Open();
SqlDataAdapter1.Fill(DataSet1, "Table1");
SqlConnection1.Close();
DataGridView1..AutoGenerateColumns = true;
DataGridView1.DataSource = DataSet1;
DataGridView1.DataMember = "Table1";
تا اینجا همه چیز گل وبلبل است اما من یه کلید دارم به نام پرینت که میخام اطلاعات نمایش داده شده رو بفرسته به فرم2 reportViewer1 اینجاست که منو کلافه کرده،بیچارم کرده و دارم دیوانه میشم:عصبانی:

یه کارایی تو فرم2 انجام میدم اما درست نمیشه
لطفا بگید چه اشیایی بذارم و تو لود فرم2 چی بنویسم
راستی یک Report1.rdlc هم ساختم و یه Tablix1 هم تنظیم کردم
لطفا کمکم کنید -- ممنون --

B.I.O.H.A.Z.A.R.D
شنبه 12 فروردین 1391, 12:27 عصر
خب نمیتونید reportviewer رو توی همون فرم 1 داشته باشید؟ اگه نمیتونید که همون کوئری که توی فرم 1 اجرا کردید رو باید در لود فرم 2 هم بنویسید. و در آخر reportViewer خودتون رو که رفرش کنید. مشکلی برای نمایش Report ندارید؟ اگه دارید بگید یه مثال بذارم

liliamator
شنبه 12 فروردین 1391, 18:12 عصر
با سلام وتشکر از پاسختون
در فرم1 کاربر میتونه روی فیلدهای مختلف جستجو انجام بده
من میتونم دستور CommandText رو بفرستم به فرم2 اما نمیدونم چطوری استفاده کنم
ضمنا به صورت ویزارد که همه اشیا رو میارم ، فقط یه کوئری یا جدول رو نشون میده و کاری به فرم1 من نداره
حالا به صورت ویزارد یا کد نویسی من چیکار کنم که فرم2 درست نمایش بده؟

B.I.O.H.A.Z.A.R.D
شنبه 12 فروردین 1391, 19:20 عصر
نحوه ساخت Report شما چطوریه؟ من با ویزارد میسازم، و reportViewer رو وصل میکنم به یه جدول از دیتابیسم. بعد فقط BindingSource اون رو مقدار دهی میکنم و در نهایت یه رفرش تا محتویاتی که میخوام رو نشون بده.

یه نمونه کوچیک ساختم. اینو ببینید شاید مشکلتون حل شد.(فقط ConnectionString اونو تغییر بدید.از دیتابیس Northwind استفاده کردم) اگر نشد که برنامتون رو بذارید تا بهتر بتونم راهنمایی کنم.

liliamator
شنبه 12 فروردین 1391, 21:57 عصر
باسلام و احترام
تشکر از لطفتون ، فایلی که گذاشته بودید رو دانلود کردم باید برم تست کنم ببینم اشکال کارم کجا بوده
ایشا.. که با این حل میشه
بازم ممنون

liliamator
دوشنبه 14 فروردین 1391, 20:38 عصر
هرچی فکر میکنم میبینم مایه شرم جامعه برنامه نویسی ام

بعد از اینکه هرچی راه بود رو تست کردم ،حالا فهمیدم اشکال کار از دستور زیر بوده و فهمیدم که ما اینجا نمیتونیم از این ساختار استفاده کنیم
SELECT field1 as 'f1' ,... FROM Table1

با تشکر فراوان از B.I.O.H.A.Z.A.R.D

به نظر میرسه با این روش اگر در هر بار بخواهیم از جدول متفاوت اطلاعات چاپ کنیم(مثلا 6جدول مختلف)باید برای هرکدام Report1.rdlc و BindingSource و... متفاوت تعریف کنیم که خیلی زیاد میشه
نمیدونم راهی هست که بشه تغییرات کمتری داشت

B.I.O.H.A.Z.A.R.D
چهارشنبه 16 فروردین 1391, 20:33 عصر
هرچی فکر میکنم میبینم مایه شرم جامعه برنامه نویسی ام

بعد از اینکه هرچی راه بود رو تست کردم ،حالا فهمیدم اشکال کار از دستور زیر بوده و فهمیدم که ما اینجا نمیتونیم از این ساختار استفاده کنیم
SELECT field1 as 'f1' ,... FROM Table1

با تشکر فراوان از B.I.O.H.A.Z.A.R.D

به نظر میرسه با این روش اگر در هر بار بخواهیم از جدول متفاوت اطلاعات چاپ کنیم(مثلا 6جدول مختلف)باید برای هرکدام Report1.rdlc و BindingSource و... متفاوت تعریف کنیم که خیلی زیاد میشه
نمیدونم راهی هست که بشه تغییرات کمتری داشت

خواهش میکنم.

اون مدل کوئری رو تست نکردم، نمیدونم شاید اونم مشکلی نداشته باشه، شاید فقط یه تغییر کوچولو لازم داشته باشه.

بله 6 ریپورت باید بسازید، BindingSource ها که بصورت اتوماتیک اضافه میشوند.

liliamator
یک شنبه 20 فروردین 1391, 14:15 عصر
با سلام
یه مطلب دیگه ای که وجود داره اینه که توی چاپ همیشه 1 صفحه خالی به آخر اضافه میشه و هر کاری انجام بدید نمیشه حذفش کرد !؟
من تو این مورد خیلی جستجو کردم اما چیز به درد بخوری پیدا نکردم

B.I.O.H.A.Z.A.R.D
یک شنبه 20 فروردین 1391, 23:49 عصر
اگر موقع تبدیل به pdf منظورتونه، بخاطر نرم افزار pdf ساز شماست. nitro PDF رو اگه نصب کنید این مشکل بوجود نمیاد.

اگه پرینت روی کاغذ انجام میدین، دیگه نظری ندارم :)

liliamator
سه شنبه 22 فروردین 1391, 15:09 عصر
با سلام
پرینت روی کاغذ رو تست نکردم
با xps و Onenote هم صفحه اضافی رو داره