PDA

View Full Version : ***فوري*** شرط IF در گزارشات CrystalReport Viewer



alen332
چهارشنبه 20 مرداد 1389, 09:10 صبح
با سلام خدمت دوستان من با CristalReport Viewer و دستورات Sql گزارشات تهيه مي كنم .مشكلي كه دارم اينه كه اگر طبق عكس ضميمه فقط بخواهم گزارش بين دو تاريخ داشته باشم شرط دستور IF در اين خط
if (maskedTextBox1.Text== "" && maskedTextBox2.Text== "" && comboBox1.Text == "")
چي بنويسم تا دستور SQL مرتبطش اجراء بشه؟ راستي همه كد رو هم توي زير آوردم

private void button1_Click(object sender, EventArgs e)
{

objDataAdapter.SelectCommand.CommandType = CommandType.Text;
DataSet ds = new DataSet();
if (maskedTextBox1.Text== "" && maskedTextBox2.Text== "" && comboBox1.Text == "")
{
objDataAdapter.SelectCommand.CommandText = "SELECT *FROM All_Condition WHERE " +
"Date_B_Input BETWEEN '" + maskedTextBox1.Text + "' AND '" + maskedTextBox2.Text + "'";
}
else if (maskedTextBox1.Text == " / /" && maskedTextBox2.Text == " / /" && comboBox1.Text == "")
{
objDataAdapter.SelectCommand.CommandText = "SELECT *FROM All_Condition ";
}
else
{
objDataAdapter.SelectCommand.CommandText = "SELECT *FROM All_Condition WHERE " +
"Date_B_Input BETWEEN '" + maskedTextBox1.Text + "' AND '" + maskedTextBox2.Text + "' AND " +
"Publisher_Name = '" + comboBox1.Text + "'";
}
objDataAdapter.Fill(ds, "All_Condition");
DataView dv = new DataView(ds.Tables["All_Condition"]);
dv.Sort = "B_Isbm";
CrystalReport1 cr = new CrystalReport1();
cr.SetDataSource(dv);
crystalReportViewer1.ReportSource = cr;
}

حجتی نیا
چهارشنبه 20 مرداد 1389, 09:57 صبح
شرط هارو یه نگاه بندازین(اولی)، نوشتین اگه اون تکس باکس ها خالی بودن، اطلاعات رو بین 2تاریخ بگیره !!!!!!!!!!!!

alen332
چهارشنبه 20 مرداد 1389, 15:41 عصر
با سلام خدمت شما كاملا درست مي فرماييد ولي من دو تا TEXTBOX خالي رو بعنوان مثال گفتم(البته تو برنامه هم همينو نوشتم و مي دونم اشتباه هست) منظورم اينه توي خط زير براي اينكه فقط اطلاعات بين دوتاريخ نمايش داده بشه دستور درست چيه؟
if (maskedTextBox1.Text== "" && maskedTextBox2.Text== "" && comboBox1.Text == "")
{

حجتی نیا
چهارشنبه 20 مرداد 1389, 15:50 عصر
با سلام خدمت شما كاملا درست مي فرماييد ولي من دو تا TEXTBOX خالي رو بعنوان مثال گفتم(البته تو برنامه هم همينو نوشتم و مي دونم اشتباه هست) منظورم اينه توي خط زير براي اينكه فقط اطلاعات بين دوتاريخ نمايش داده بشه دستور درست چيه؟
if (maskedTextBox1.Text== "" && maskedTextBox2.Text== "" && comboBox1.Text == "")
{

دستورت درسته فقط حد پایین و بالا رو با پارامتر تعریف کن ...

alen332
چهارشنبه 20 مرداد 1389, 16:05 عصر
ببخشيد ميشه همين جا يك مثال بزنيد؟

حجتی نیا
چهارشنبه 20 مرداد 1389, 18:17 عصر
ببخشيد ميشه همين جا يك مثال بزنيد؟

objDataAdapter.SelectCommand.CommandText = "SELECT *FROM All_Condition WHERE " +
"Date_B_Input BETWEEN @low AND @max";
objDataAdapter.SelectCommand.parametrs.addwithvalu e("@low",textbox.text);
objDataAdapter.SelectCommand.parametrs.addwithvalu e("@max",textbox.text);
بجای اون دستور select خودت بنویس

alen332
پنج شنبه 21 مرداد 1389, 13:40 عصر
با سلام به خدمت شما؛
شما درست مي گيد ولي استفاده از پارامتر جهت استفاده ازstore procedure و Call كردن Arguman هاي آن انجام ميشه كه روش كد رو پيچيده مي كرد فقط كافي بود در شرط if تغيير جزئي انجام بدم به شكل زير البته تو همين برنامه من از يك روش خيلي خوب جهت ايجاد صفحه LOGIN هم استفاده كردم كه يه جورايي كدهاي مسير پايگاه داده رو در يك Store Procedure نوشتم تا از حمله در امان باشند اونجا من عملياتهاي SQL رو داخل محيطش TAG نويسي كردم و با پارامترها نتيج رو Call كردم به هر حال باز از شما ممنونم اميدورام اگر باز هم سوالي بود با شما استاد محترم مطرح كنم

private void button1_Click(object sender, EventArgs e)
{
objDataAdapter.SelectCommand.CommandType = CommandType.Text;
DataSet ds = new DataSet();
if (comboBox1.Text == "")
{
objDataAdapter.SelectCommand.CommandText = "SELECT *FROM All_Condition WHERE " +
"Date_B_Input BETWEEN '" + maskedTextBox1.Text + "' AND '" + maskedTextBox2.Text + "'";
}
else if (maskedTextBox1.Text == " / /" && maskedTextBox2.Text == " / /" && comboBox1.Text == "")
{
objDataAdapter.SelectCommand.CommandText = "SELECT *FROM All_Condition ";
}
else
{
objDataAdapter.SelectCommand.CommandText = "SELECT *FROM All_Condition WHERE " +
"Date_B_Input BETWEEN '" + maskedTextBox1.Text + "' AND '" + maskedTextBox2.Text + "' AND " +
"Publisher_Name = '" + comboBox1.Text + "'";
}
try
{
objDataAdapter.Fill(ds, "All_Condition");
DataView dv = new DataView(ds.Tables["All_Condition"]);
dv.Sort = "B_Isbm";
CrystalReport1 cr = new CrystalReport1();
cr.SetDataSource(dv);
crystalReportViewer1.ReportSource = cr;
}
catch (SqlException SqlExceptionErr)
{
MessageBox.Show(SqlExceptionErr.Message);
}