ورود

نسخه کامل مشاهده نسخه کامل : مشکل از کجاست؟



f_naderi
15-09-2009, 12:11
سلام
من می خوام با زدن دکمه ی صورتحساب از چندین جدول اطلاعات لازم استخراج بشه و در کریستال ریپورت نمایش داده بشن(داده ها با توجه به کدی که در textbox12 وارد میشه فیلتر میشن)، من وقتی که این دکمه رو میزنم در datagridveiw اطلاعات رو بدرستی نمایش میده ولی موقع باز کردن ریپورت این خطا رو میده.
cannot determine the queries necessary to get data for this report. faild to open a rowset.


DataTable dt = newDataTable();
CrystalReport1 rpt = newCrystalReport1();
int code = Convert.ToInt32(textBox12.Text);
string strsql = "select moshtari.codemoshtari,moshtari.name,bedehkari,kala .name,forosh.date,sefaresh.tedadkala from sefaresh,moshtari,kala,forosh where kala.codekala=sefaresh.codekala and sefaresh.shomarehsefaresh=forosh.shomarehsefaresh and forosh.codemoshtari=moshtari.codemoshtari and moshtari.codemoshtari=" + code;
oleDbConnection1.Open();
da1 = newOleDbDataAdapter(strsql, oleDbConnection1);
da1.Fill(dt);
oleDbConnection1.Close();
dataGridView1.DataSource = dt;
Form2 re = newForm2();
rpt.SetDataSource(dt);
re.crystalReportViewer1.ReportSource = rpt;
re.ShowDialog();

این کدها رو زیر دکمه صورتحساب می نویسم به نظر شما مشکلش چیه؟

f_naderi
21-09-2009, 19:35
سلام اگه ممکنه راهنمایی کنید
فکر کنم که مشکلش این باشه که من وقتی دستور select رو می نویسم ، با این کار یک جدول میانی درست میشه ، ولی من داخل کریستال ریپورتم اومدم فیلدهای جداولی رو که نیاز دارم که نشون داده بشن رو قرار دادم(همون فیلدهایی که داخل دستور select نوشتم) ، پس به این دلیل نمی تونه اون فیلدها رو داخل کریستال نشون بده چون پیداشون نمی کنه، حالا من باید چیکار کنم که این مشکل حل بشه؟(من اگه به جای دیتا تیبل بنویسم دیتا ست اطلاعات رو درست استخراج میکنه و نشون میده ولی اطلاعات خرید همه ی افراد رو نشون میده)