f_naderi
سه شنبه 31 شهریور 1388, 09:46 صبح
سلام
من می خوام با زدن دکمه ی صورتحساب از چندین جدول اطلاعات لازم استخراج بشه و در کریستال ریپورت نمایش داده بشن(داده ها با توجه به کدی که در 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();
این کدها رو زیر دکمه صورتحساب می نویسم به نظر شما مشکلش چیه؟
البته فکر کنم که مشکل از این باشه که من در کد اسکیوالم دارم یک جدول میانی درست میکنم ولی داخل کریستال ریپورتم فیلدهای جداول بانکم رو اضافه میکنم (همون فیلدهایی که داخل دستور select نوشتم) پس به خاطر این نمی تونه مثلا moshtari.codemoshtari رو پیدا کنه، حالا باید چه تغییراتی رو اعمال کنم؟
من می خوام با زدن دکمه ی صورتحساب از چندین جدول اطلاعات لازم استخراج بشه و در کریستال ریپورت نمایش داده بشن(داده ها با توجه به کدی که در 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();
این کدها رو زیر دکمه صورتحساب می نویسم به نظر شما مشکلش چیه؟
البته فکر کنم که مشکل از این باشه که من در کد اسکیوالم دارم یک جدول میانی درست میکنم ولی داخل کریستال ریپورتم فیلدهای جداول بانکم رو اضافه میکنم (همون فیلدهایی که داخل دستور select نوشتم) پس به خاطر این نمی تونه مثلا moshtari.codemoshtari رو پیدا کنه، حالا باید چه تغییراتی رو اعمال کنم؟