我定制动态水晶报表代码如下private string CreateSelectQueryAndParameters()
{
ReportDocument reportDocument;
ParameterFields paramFields; ParameterField paramField;
ParameterDiscreteValue paramDiscreteValue; reportDocument = new ReportDocument();
paramFields = new ParameterFields(); string query = "SELECT ";
int columnNo = 0; if (chbCode.Checked)
{
columnNo++;
query = query.Insert(query.Length, "Code as Column" + columnNo.ToString());
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "Customer Code";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
}
if (chbFirstName.Checked)
{
columnNo++;
if (query.Contains("Column"))
{
query = query.Insert(query.Length, ", ");
}
query = query.Insert(query.Length, "FirstName as Column" + columnNo.ToString());
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "First Name";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
}
if (chbLastName.Checked)
{
columnNo++;
if (query.Contains("Column"))
{
query = query.Insert(query.Length, ", ");
}
query = query.Insert(query.Length, "LastName as Column" + columnNo.ToString());
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "Last Name";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
}
if (chbAddress.Checked)
{
columnNo++;
if (query.Contains("Column"))
{
query = query.Insert(query.Length, ", ");
}
query = query.Insert(query.Length, "Address as Column" + columnNo.ToString());
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "Address";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
}
if (chbPhone.Checked)
{
columnNo++;
if (query.Contains("Column"))
{
query = query.Insert(query.Length, ", ");
}
query = query.Insert(query.Length, "Phone as Column" + columnNo.ToString());
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "Phone";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
} //if there is any remaining parameter, assign empty value for that
//parameter.
for (int i = columnNo; i < 5; i++)
{
columnNo++;
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
} crystalReportViewer1.ParameterFieldInfo = paramFields; query += " FROM Customer";
return query;
}private void button1_Click(object sender, EventArgs e)
{
CrystalReport2 objRpt = new CrystalReport2(); string connString = "Data Source=.;Initial Catalog=tempdb;Integrated Security=True"; //Get Select query Strring and add parameters to the
//Crystal report.
string query = CreateSelectQueryAndParameters(); //if there is no item select,then exit from the method.
if (!query.Contains("Column"))
{ return;
} try
{
SqlConnection Conn = new SqlConnection(connString); SqlDataAdapter adepter = new SqlDataAdapter(query, connString);
DataSet1 Ds = new DataSet1(); adepter.Fill(Ds, "Customer"); objRpt.SetDataSource(Ds);
crystalReportViewer1.ReportSource = objRpt;
}
catch (SqlException oleEx)
{ }
catch (Exception Ex)
{ } }
在c# 的C/S结构下一切正常,选哪个就能看到哪个;
但是在asp.net的B/S结构下,同样的代码就显示不正常,点击Button后让我输入参数字段的参数。
请知道的帮忙回答下
{
ReportDocument reportDocument;
ParameterFields paramFields; ParameterField paramField;
ParameterDiscreteValue paramDiscreteValue; reportDocument = new ReportDocument();
paramFields = new ParameterFields(); string query = "SELECT ";
int columnNo = 0; if (chbCode.Checked)
{
columnNo++;
query = query.Insert(query.Length, "Code as Column" + columnNo.ToString());
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "Customer Code";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
}
if (chbFirstName.Checked)
{
columnNo++;
if (query.Contains("Column"))
{
query = query.Insert(query.Length, ", ");
}
query = query.Insert(query.Length, "FirstName as Column" + columnNo.ToString());
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "First Name";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
}
if (chbLastName.Checked)
{
columnNo++;
if (query.Contains("Column"))
{
query = query.Insert(query.Length, ", ");
}
query = query.Insert(query.Length, "LastName as Column" + columnNo.ToString());
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "Last Name";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
}
if (chbAddress.Checked)
{
columnNo++;
if (query.Contains("Column"))
{
query = query.Insert(query.Length, ", ");
}
query = query.Insert(query.Length, "Address as Column" + columnNo.ToString());
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "Address";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
}
if (chbPhone.Checked)
{
columnNo++;
if (query.Contains("Column"))
{
query = query.Insert(query.Length, ", ");
}
query = query.Insert(query.Length, "Phone as Column" + columnNo.ToString());
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "Phone";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
} //if there is any remaining parameter, assign empty value for that
//parameter.
for (int i = columnNo; i < 5; i++)
{
columnNo++;
paramField = new ParameterField();
paramField.Name = "col" + columnNo.ToString();
paramDiscreteValue = new ParameterDiscreteValue();
paramDiscreteValue.Value = "";
paramField.CurrentValues.Add(paramDiscreteValue);
//Add the paramField to paramFields
paramFields.Add(paramField);
} crystalReportViewer1.ParameterFieldInfo = paramFields; query += " FROM Customer";
return query;
}private void button1_Click(object sender, EventArgs e)
{
CrystalReport2 objRpt = new CrystalReport2(); string connString = "Data Source=.;Initial Catalog=tempdb;Integrated Security=True"; //Get Select query Strring and add parameters to the
//Crystal report.
string query = CreateSelectQueryAndParameters(); //if there is no item select,then exit from the method.
if (!query.Contains("Column"))
{ return;
} try
{
SqlConnection Conn = new SqlConnection(connString); SqlDataAdapter adepter = new SqlDataAdapter(query, connString);
DataSet1 Ds = new DataSet1(); adepter.Fill(Ds, "Customer"); objRpt.SetDataSource(Ds);
crystalReportViewer1.ReportSource = objRpt;
}
catch (SqlException oleEx)
{ }
catch (Exception Ex)
{ } }
在c# 的C/S结构下一切正常,选哪个就能看到哪个;
但是在asp.net的B/S结构下,同样的代码就显示不正常,点击Button后让我输入参数字段的参数。
请知道的帮忙回答下
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货