نقل قول: برنامه را نصب كردم روي سيستم مقصد موقع گزارش گرفتن پسوورد ميخواد در صورتي كه پسوورد نگذاشتم
سلام دوست من،
با روش جدیدی که برای نمایش گزارش استفاده کردی، (استفاده از دیتاست برای ارسال اطلاعات به گزارش و نه ارتباط مستقیم گزارش به دیتابیس)
تنها کاری که برای فیلتر کردن رکورد ها باید انجام بدی اینه که کوئری هات رو فیلتر کنی. همین.
و اگه روی سیستم خودت جواب بده حتما روی سیستم کاربرت هم جواب میده نگران نباش.
و اما کوئری که اینجا نوشتی به نظر میاد دستی همینجا نوشتیش، چون به نظر ایراد داره ولی احتمالا در کدت درست نوشتیش. وگرنه بهت جواب نمیداد.
موفق باشی
نقل قول: برنامه را نصب كردم روي سيستم مقصد موقع گزارش گرفتن پسوورد ميخواد در صورتي كه پسوورد نگذاشتم
دوست من بازم تشكر از اينكه جواب دادي ولي راستيتش اين مشكل اينقدر خسته ام كرد كه ديگه مغزم جواب نميده . ايني كه شما گفتيد (تنها کاری که برای فیلتر کردن رکورد ها باید انجام بدی اینه که کوئری هات رو فیلتر کنی. همین.) رو اصلا متوجه نميشم يعني چي خواهشا واضح تر توضيح بديد چون ديگه خيلي گيج شدم ديشب و امروز چندباري on شدم ولي شما نبوديد خواهشا اگر در يك ساعت خاصي در سايت حضور داريد به من بگيد چون ظاهرا اين مشكل قراره بدست شما و دوستمون sara.f حل بشه .
با تشكر از هردوي شما لطفا كمك كنيد
نقل قول: برنامه را نصب كردم روي سيستم مقصد موقع گزارش گرفتن پسوورد ميخواد در صورتي كه پسوورد نگذاشتم
سلام دوست من،
یعنی همون کاری که خودت انجام دادی،
یه دونه where بذاری داخل Query ت.
خیلی سخت حرف نزدم ;)
نه من اصولا ساعت خاصی اینجا نیستم، اگه کار مهمی داشتی، احتمالا Yahoo بتونی پیدام کنی.
موفق باشی
نقل قول: برنامه را نصب كردم روي سيستم مقصد موقع گزارش گرفتن پسوورد ميخواد در صورتي كه پسوورد نگذاشتم
دوست من (ه دونه where بذاری داخل Query ت.) یعنی چطوری من که where دارم این هم بگم که دو تا سه تا جدول را با هم باید انتخاب کنم یعنی همه کسانی که از جدول تحصیلات برابر پارامترهای ورودی باشد که کاربر وارد کرده که به تبع اون جدول های دیگه هم بیاد خواهشا اگر مقدوره لطف کنید و زمانی را مشخص کنید تا مشکل من حل بشه چون دیگه خیلی دیر شده و منم واقعا روحا خسته شدم یه لطفی بکنید
نقل قول: برنامه را نصب كردم روي سيستم مقصد موقع گزارش گرفتن پسوورد ميخواد در صورتي كه پسوورد نگذاشتم
نقل قول:
نوشته شده توسط
csharpprogramer88
دوست من (ه دونه where بذاری داخل Query ت.) یعنی چطوری من که where دارم این هم بگم که دو تا سه تا جدول را با هم باید انتخاب کنم یعنی همه کسانی که از جدول تحصیلات برابر پارامترهای ورودی باشد که کاربر وارد کرده که به تبع اون جدول های دیگه هم بیاد خواهشا اگر مقدوره لطف کنید و زمانی را مشخص کنید تا مشکل من حل بشه چون دیگه خیلی دیر شده و منم واقعا روحا خسته شدم یه لطفی بکنید
سلام دوست عزیز.
من متوجه نمیشم الآن مشکل شما چیه؟!
شما که کوئری مورد نظرتون را نوشتید ، پس مشکل دیگه چیه؟
1 ضمیمه
نقل قول: برنامه را نصب كردم روي سيستم مقصد موقع گزارش گرفتن پسوورد ميخواد در صورتي كه پسوورد نگذاشتم
سلام
دوست عزيزمون mn_zandy63 لطف كردنو كدي را برام فرستاد اجرا كردم و جواب داد . ولي دوستان كوئري كه ايشان زحمت كشيدن مربوط ميشه به دو دستور select ساده كه فقط از دو جدول تمام ركورد هاي اونو برمي گردونه با دستور زير :
var cmd1 = new SqlCommand("Select * from moshakhasathamsaran", con);
دستور جدول دومي
var cmd2 = new SqlCommand("Select * from tahsilathamsaran", con);
اين مربوط به يك بخش از گزارش گيري منه . يك بخش گزارش گيري ديگه مربوط ميشه به گزارش گيري بر اساس پارامترهايي كه كاربر واردميكنه مثلا :
پيدا كردن تمام كساني كه مقطع تحصيلي ليسانس دارند رشته اوناهم كامپيوتر كه اينو ميتونيم با يك دستور سلكت و شرط حلش كنيم .
ولي من ميخوام پس از اجراي اين كوئري بر اساس اون شرط فقط فيلد id را كه كليد اصلي منه برگردونه و توي جدول مشخصات بگرده ، و هر كجا فيلد id جدول مشخصات كه كليد اصلي است با فيلد id جدول تحصيلات كه با كوئري اول اجرا كردم برابر هست به كريستال ريپورت بفرستم .
دوستان به اين نكته مهم توجه كنيد كه من با توجه به شرطي كه روي جدول تحصيلات گذاشتم ميخوام هم اطلاعات جدول تحصيلات و هم اطلاعات جدول مشخصات چاپ بشه يعني از هر دو جدول بايد به كريستال بفرستم .
كوئري كه بر اساس پارامترهاي كاربر جستجو ميكنه بازم يوزر نيم و پسوورد ميخواد .
دوستان عزيز من كد را مي فرستم خواهشا سريعتر فردا شنبه هست و من هنوز كاري از پيش نبردم . اميدوارم منظورم را رسانده باشم
2 ضمیمه
نقل قول: برنامه را نصب كردم روي سيستم مقصد موقع گزارش گرفتن پسوورد ميخواد در صورتي كه پسوورد نگذاشتم
نقل قول: برنامه را نصب كردم روي سيستم مقصد موقع گزارش گرفتن پسوورد ميخواد در صورتي كه پسوورد نگذاشتم
نقل قول:
نوشته شده توسط
csharpprogramer88
سلام
دوست عزيزمون mn_zandy63 لطف كردنو كدي را برام فرستاد اجرا كردم و جواب داد . ولي دوستان كوئري كه ايشان زحمت كشيدن مربوط ميشه به دو دستور select ساده كه فقط از دو جدول تمام ركورد هاي اونو برمي گردونه با دستور زير :
var cmd1 = new SqlCommand("Select * from moshakhasathamsaran", con);
دستور جدول دومي
var cmd2 = new SqlCommand("Select * from tahsilathamsaran", con);
اين مربوط به يك بخش از گزارش گيري منه . يك بخش گزارش گيري ديگه مربوط ميشه به گزارش گيري بر اساس پارامترهايي كه كاربر واردميكنه مثلا :
پيدا كردن تمام كساني كه مقطع تحصيلي ليسانس دارند رشته اوناهم كامپيوتر كه اينو ميتونيم با يك دستور سلكت و شرط حلش كنيم .
ولي من ميخوام پس از اجراي اين كوئري بر اساس اون شرط فقط فيلد id را كه كليد اصلي منه برگردونه و توي جدول مشخصات بگرده ، و هر كجا فيلد id جدول مشخصات كه كليد اصلي است با فيلد id جدول تحصيلات كه با كوئري اول اجرا كردم برابر هست به كريستال ريپورت بفرستم .
دوستان به اين نكته مهم توجه كنيد كه من با توجه به شرطي كه روي جدول تحصيلات گذاشتم ميخوام هم اطلاعات جدول تحصيلات و هم اطلاعات جدول مشخصات چاپ بشه يعني از هر دو جدول بايد به كريستال بفرستم .
كوئري كه بر اساس پارامترهاي كاربر جستجو ميكنه بازم يوزر نيم و پسوورد ميخواد .
دوستان عزيز من كد را مي فرستم خواهشا سريعتر فردا شنبه هست و من هنوز كاري از پيش نبردم . اميدوارم منظورم را رسانده باشم
سلام دوست من،
شما دو تا راه برای فیلتر کردن گزارشت داری،
یکی اینکه داخل گزارشت فیلتر کنی، یعنی به همون روشی که رفته بودی همه اطلاعات رو بفرستی برای گزارش و داخل گزارش فیلتر کنی.
دیگه اینکه داخل کدت رکورد ها رو فیلتر کنی و بفرستی برای گزارش، یعنی دقیقا همون روشی که رفته بودی و متاسفانه در برنامه ای که گذاشتی اشتباه کردی. (برات توضیح میدم)
ببین دوست من، شما دو تا جدول رو Fill کردی و برای گزارش فرستادی، خب، این دو تا داخل گزارش به هم متصل شدند درست مثل وقتی که در یک کوئری SQL دو تا جدول Inner join میشن. بنابراین شما کافیه مثلا اون کوئری که داره از جدول tahsilathamsaran میخونه رو فیلتر کنی. یعنی یه دونه where بذاری و تحصیلات رو فیلتر کنی، حالا از اونجایی که دو تا جدول inner join شدند داخل گزارش فقط همون رکورد هایی رو نمایش خواهد داد که مورد نظرت هست.
بنابراین شما به جای این کد که نوشتی:
private void button1_Click(object sender, EventArgs e)
{
temp = "complate";//براي اينكه در صفحه بعدي ريپورت كامل با ريپورت بر اساس پارامتر را قاطي نكنم
con.Open();
sqlselect1 = "select * from moshakhasathamsaran";
sqlselect2 = "select * from tahsilathamsaran";
moshakhasathamsaran_report frm = new moshakhasathamsaran_report();
frm.Show();
}
private void button2_Click(object sender, EventArgs e)
{
temp = "custom";//براي اينكه در صفحه بعدي ريپورت كامل با ريپورت بر اساس پارامتر را قاطي نكنم
con.Open();
//sqlselect = "select * from moshakhasat where id in (select id from tahsilat where maghta like(N'%" + this.txtmaghta.Text.Trim() + "%') and reshte like(N'%" + this.txtreshte.Text.Trim() + "%')and madrak like(N'%" + this.txtmadrak.Text.Trim() + "%'))";
sqlselect1 = "select * from moshakhasathamsaran";
sqlselect2 = "select * from tahsilathamsaran where maghta like(N'%" + this.textBox1.Text.Trim() + "%') and reshte like(N'%" + this.textBox2.Text.Trim() + "%')and madrak like(N'%" + this.textBox3.Text.Trim() + "%'))";
moshakhasathamsaran_report frm = new moshakhasathamsaran_report();
frm.Show();
}
این کد رو بنویس:
private void button1_Click(object sender, EventArgs e)
{
con.Open();
sqlselect1 = "select * from moshakhasathamsaran";
sqlselect2 = "select * from tahsilathamsaran";
moshakhasathamsaran_report frm = new moshakhasathamsaran_report();
frm.Show();
}
private void button2_Click(object sender, EventArgs e)
{
con.Open();
sqlselect1 = "select * from moshakhasathamsaran";
sqlselect2 = "select * from tahsilathamsaran where maghta like(N'%" + this.textBox1.Text.Trim() + "%') and reshte like(N'%" + this.textBox2.Text.Trim() + "%')and madrak like(N'%" + this.textBox3.Text.Trim() + "%'))";
moshakhasathamsaran_report frm = new moshakhasathamsaran_report();
frm.Show();
}
و داخل فرم گزارشت، به جای این کد
if (Form1.temp == "complate")
{
var con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\khanevade new.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
con.Open();
var cmd1 = new SqlCommand(Form1.sqlselect1, con);
var da1 = new SqlDataAdapter(cmd1);
var cmd2 = new SqlCommand(Form1.sqlselect2, con);
var da2 = new SqlDataAdapter(cmd2);
var ds = new DataSet();
da1.Fill(ds, "moshakhasathamsaran");
da2.Fill(ds, "tahsilathamsaran");
var h = new hamsaranCrystalReport();
h.SetDataSource(ds);
crystalReportViewer1.ReportSource = h;
}
else if (Form1.temp == "custom")
{
var con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\khanevade new.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
con.Open();
var cmd1 = new SqlCommand(Form1.sqlselect3, con);
var da1 = new SqlDataAdapter(cmd1);
var ds = new DataSet();
da1.Fill(ds, "moshakhasathamsaran");
//da2.Fill(ds, "tahsilathamsaran");
var h = new hamsaranCrystalReport();
h.SetDataSource(ds);
crystalReportViewer1.ReportSource = h;
}
فقط بنویس:
var con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\khanevade new.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
con.Open();
var cmd1 = new SqlCommand(Form1.sqlselect1, con);
var da1 = new SqlDataAdapter(cmd1);
var cmd2 = new SqlCommand(Form1.sqlselect2, con);
var da2 = new SqlDataAdapter(cmd2);
var ds = new DataSet();
da1.Fill(ds, "moshakhasathamsaran");
da2.Fill(ds, "tahsilathamsaran");
var h = new hamsaranCrystalReport();
h.SetDataSource(ds);
crystalReportViewer1.ReportSource = h;
سعی کردم تا اونجا که میشه روش خودت رو تغییر ندم که ایراد اصلیت رو متوجه شی.
اگه جاییش گنگ بود بگو تا بیشتر توضیح بدم.
موفق باشی