PDA

View Full Version : نمایش اطلاعات سطری با کدی خاص در کریستال رپورت



omidrayaneh.68
پنج شنبه 27 تیر 1392, 20:19 عصر
سلام من یه جدول دارم به نام فروش میخام وقتی تو تکس باکس شماره فاکتور را بزنم فقط اطلاعات همون شماره را تو کریستال ریپورت نمایش بده اینم نمونه ی کدم چه اصلاحاتی باید روش انجام بده مرسی اگه کمک کنید نمیخام از روش دیگه ای برم ممنون میشن راهنمایی بفرمائید
private void report_forosh_Load(object sender, EventArgs e)
{
{
try
{
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\system.mdf;integrated security=true;User Instance=True");
SqlCommand cmd = new SqlCommand("select * from [forosh]", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
SqlCommandBuilder cbd = new SqlCommandBuilder(da);
DataTable dt = new DataTable();
da.Fill(dt);


reportDocument1.Load(Application.StartupPath + "\\CrystalReport4.rpt");
reportDocument1.SetDataSource(dt);
crystalReportViewer1.ReportSource = reportDocument1;

}

catch
{
MessageBox.Show("اشکال در چاپ اطلاعات", "اخطادر", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

}
}

omidrayaneh.68
پنج شنبه 27 تیر 1392, 20:44 عصر
بچه ها یکی کمک کنه فوریه

omidrayaneh.68
پنج شنبه 27 تیر 1392, 21:36 عصر
مرسی از دوستان چه قدر کمک میکنید شما
یادمه چند سال پیش سورس یکی از برنامه ها مو گذاشتم تو سایت به یه دقیقه نکشید همه اومدند نظر دادند پیشنهاد انتقاد و... اما حالا یه سوال دارم هیچ کسی نیست یه راه حل جلو پای ما بذاره

omidrayaneh.68
پنج شنبه 27 تیر 1392, 21:42 عصر
حداقل یکی بیاد یه فوش بده
دوستان کسیییییییییییییی نیستتتتتتتتتتتتتتت

Mohammadm
پنج شنبه 27 تیر 1392, 22:00 عصر
سلام من یه جدول دارم به نام فروش میخام وقتی تو تکس باکس شماره فاکتور را بزنم فقط اطلاعات همون شماره را تو کریستال ریپورت نمایش بده اینم نمونه ی کدم چه اصلاحاتی باید روش انجام بده مرسی اگه کمک کنید نمیخام از روش دیگه ای برم ممنون میشن راهنمایی بفرمائید
private void report_forosh_Load(object sender, EventArgs e)
{
{
try
{
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\system.mdf;integrated security=true;User Instance=True");
SqlCommand cmd = new SqlCommand("select * from [forosh]", con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
SqlCommandBuilder cbd = new SqlCommandBuilder(da);
DataTable dt = new DataTable();
da.Fill(dt);


reportDocument1.Load(Application.StartupPath + "\\CrystalReport4.rpt");
reportDocument1.SetDataSource(dt);
crystalReportViewer1.ReportSource = reportDocument1;

}

catch
{
MessageBox.Show("اشکال در چاپ اطلاعات", "اخطادر", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

}
}

دستورات بالا اطلاعات رو از دیتابیس میخونه و داخل فرم گزارشتون نمایش میده
روشی که من برای ارسال داده ها از فرم به کریستال ریپورت انجام میدم به این صورته
ابتدا یک تکست باکس که اگر اشتباه نکرده باشم تکس آبجکت داخل setion1 قرار میدم(با نام txt1)
حالا قراره اطلاعاتی رو از فرم داخل این تکست باکس که در قسمت section1 هست بنویسیم به صورت زیر
foreach (ReportObject obj1 in objrpt11.Section1.ReportObjects)
{
if (obj1.Name == "txt1")
{
TextObject to = (TextObject)obj1;
to.Text ="مقدار جدید در این قسمت نوشته میشود"
}
}
در کد بالا objrpt1 شیئی از کریستال ریپورت در برنامه شما میباشد
البته بجای حلقه foreach میتوانیم از روش اندیس [] نیز استفاده کنیم
شما با این روش میتوانید به همه ی اشیاء در تمام section ها دسرسی داشته باشید
البته یادتون نره در قسمت froeach نام section مورد نظر رو باید بنویسید
امیدوارم درست متوجه سوالتون شده باشم