PDA

View Full Version : سوال: مشکل کد نویسی در کریستال ریپورت



reza69
جمعه 23 فروردین 1392, 23:20 عصر
سلام
من این کد رو برای گزارش گیری با کریستال ریپورت نوشتم ولی بدون هیچ اروری جواب نمیده.

private SqlConnection con = new SqlConnection("data source=.;initial catalog=test;integrated security=true");
private void reportt_Load(object sender, EventArgs e)
{
testDataSet ds = new testDataSet();
string sql = string.Format("select * from mytable where id =" + label1.Text);
SqlDataAdapter da = new SqlDataAdapter(sql, con);
DataTable dt = new DataTable();
da.Fill(dt);

ReportDocument rd = new ReportDocument();
string strreportpath = "C:\\Users\\r_nba\\Documents\\Visual Studio 2008\\Projects\\mytest\\mytest\\CrystalReport1.rpt";
rd.Load(strreportpath);
rd.SetDataSource(ds);
crystalReportViewer1.ReportSource = rd;
}

farboud
شنبه 24 فروردین 1392, 01:25 صبح
سلام
کدت رو زیاد دقت نکردم ولی من خودم از این روش استفاده می کنم
اول از همه کلید اصلی های جدول رو گرفتم و توی یه string نگه داشتم بعد از کد زیر استفاده می کنم
فقط string cs1 آدرس دیتا بیس هستش


string cs1 = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\anbar.mdf;Integrated Security=True;Connect Timeout=0;User Instance=True";

private void crystalReportViewer1_Load(object sender, EventArgs e)
{

SqlConnection con = new SqlConnection(cs1);
con.Open();
SqlCommand cmd = new SqlCommand("select * FROM factor WHERE code_factor='" + Convert.ToString(code) + "'", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dss,"factor");
factor rpt = new factor();
rpt.SetDataSource(dss);
}
باز اگه سوالی بود بپرس

veniz2008
شنبه 24 فروردین 1392, 01:32 صبح
سلام.
به خط اخر کدهاتون این کد رو اضافه کنید:

crystalReportViewer1.Show();
موفق باشید.

reza69
شنبه 24 فروردین 1392, 10:23 صبح
ممنون از پاسختون
من کدمو عوض کردم وقتی داخل یک دکمه میذارم کار میکنه ولی در لود فرم کار نمیکنه دلیل چیه؟

SqlCommand com = new SqlCommand("select * from mytable where id = " + a, con);
SqlDataAdapter da = new SqlDataAdapter(com);
SqlCommandBuilder combldr = new SqlCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds, "mytable");
CrystalReport1 cr = new CrystalReport1();
cr.SetDataSource(ds);
crystalReportViewer1.ReportSource = cr;

reza69
شنبه 24 فروردین 1392, 10:53 صبح
فهمیدم مشکل از کجا بود
برای ارسال مقادیر در فرم اول صفحه رو show می کردم بعد مقدارو ارسال میکردم
تغییرش دادم درست شد.

armagram
سه شنبه 12 شهریور 1392, 11:12 صبح
سلام من یه برنامه نوشتم که اطاعات رو توی پایگاه داده ذخیره می کنه.و اونا با کریستال ریپورت نمایش می ده.اما مشکل اینجاست که من هر بار فقط همون گذارش اول رو علی رغم وارد کردن اطلاعات جدید می بینم.حالا می خوام این اطلاعاتو با کد نویسی توی کریستال روپورت نمایش بدم و هر بار هم یک سری رکورد جدید آماده پرینت بشه.اگه کسی می تونه یکم راه نمایی کنه؟

mafa12
یک شنبه 06 بهمن 1392, 11:30 صبح
سلام-کدت رو برای هر object که نوشتی بایستی تو همون هر دفعه بوسیله sqldataadapter یک دیتا ست رو پر کنی و بعدش گزارشت رو نمایش بدی . یعنی قبل از نمایش بوسیله یک دستور command بایستی اطلاعات جدید رو داخل دیتا ست بریزی بعدش در ادامه دیتا ست رو واسه کریستال بفرستی