我那了两个报表,一个问题报表,一个回复报表,两个表按问题的ID连接起来。
在问题报表 里点击插入子报表,设置完之后运行,问题出现了:当我点击连接到子报表的链接时,能够 弹出子报表,但子报表里没有数据,而当我分别单独设置报表查看器的报表源时,两个报表都有数据,谁能告诉我这是怎么回事,插入子报表要注意些什么问题?
在问题报表 里点击插入子报表,设置完之后运行,问题出现了:当我点击连接到子报表的链接时,能够 弹出子报表,但子报表里没有数据,而当我分别单独设置报表查看器的报表源时,两个报表都有数据,谁能告诉我这是怎么回事,插入子报表要注意些什么问题?
//DataSet1 是一个强数据集,报表绑定的数据源就是它,提取数据这方面是没有问题的,我试过把crystalReportViewer1的ReportSource 分别设置为fbb和zbb,都能够显示出数据,但关联了父子表就不行了,大家看看有什么问题,拜托了。
//提取打印数据
private void buttonX11_Click(object sender, EventArgs e)
{
if (radioButton1.Checked == true)//按院系——年级——班级
{
tchf();//这个是提取子报表的数据
SqlConnection con = ff.getcon();
DataSet1 ds = new DataSet1();
SqlDataAdapter da = new SqlDataAdapter("execute jxdd_tj_yxnjbj '" + comboBoxEx4.SelectedValue.ToString() + "','" + comboBoxEx5.SelectedValue.ToString() + "'", con);
da.Fill(ds, "wtnjb"); //wtnj fbb = new wtnj();
//fbb.SetDataSource(ds);
//crystalReportViewer1.ReportSource = fbb;
CrystalReport1 mm = new CrystalReport1();
mm.SetDataSource(ds);
crystalReportViewer1.ReportSource = mm;
}
else
{
//if (radioButton2.Checked == true)//按院系——考研室——教师
//{
// }
}
} private void tchf()
{
SqlConnection con = ff.getcon();
SqlDataAdapter da = new SqlDataAdapter("execute jxdd_tj_hf", con);
DataSet1 ds = new DataSet1();
da.Fill(ds, "hfb"); foreach (DataRow row in ds.Tables["hfb"].Rows)
{
if (row["jsbh"].ToString() == "")
{
row["hfrlb"] = "学生";
}
else
{
if (row["sfdd"].ToString() == "False")
{
row["hfrlb"] = "教师";
}
else
{
row["hfrlb"] = "督导员";
}
}
}
}
private void buttonX11_Click(object sender, EventArgs e)
{
if (radioButton1.Checked == true)//按院系——年级——班级
{
tchf();
SqlConnection con = ff.getcon();
DataSet1 ds = new DataSet1();
SqlDataAdapter da = new SqlDataAdapter("execute jxdd_tj_yxnjbj '" + comboBoxEx4.SelectedValue.ToString() + "','" + comboBoxEx5.SelectedValue.ToString() + "'", con);
da.Fill(ds, "wtnjb"); wtnj fbb = new wtnj();
fbb.SetDataSource(ds);
crystalReportViewer1.ReportSource = fbb;
//CrystalReport1 mm = new CrystalReport1();
//mm.SetDataSource(ds);
//crystalReportViewer1.ReportSource = mm;
}
else
{
if (radioButton2.Checked == true)//按院系——考研室——教师
{
}
}
} private void tchf()
{
SqlConnection con = ff.getcon();
SqlDataAdapter da = new SqlDataAdapter("execute jxdd_tj_hf", con);
DataSet1 ds = new DataSet1();
da.Fill(ds, "hfb"); foreach (DataRow row in ds.Tables["hfb"].Rows)
{
if (row["jsbh"].ToString() == "")
{
row["hfrlb"] = "学生";
}
else
{
if (row["sfdd"].ToString() == "False")
{
row["hfrlb"] = "教师";
}
else
{
row["hfrlb"] = "督导员";
}
}
}
}
SqlConnection con = ff.getcon();
DataSet1 ds = new DataSet1();
SqlDataAdapter da = new SqlDataAdapter("execute jxdd_tj_yxnjbj '" + comboBoxEx4.SelectedValue.ToString() + "','" + comboBoxEx5.SelectedValue.ToString() + "'", con);
da.Fill(ds, "wtnjb"); wtnj fbb = new wtnj();
fbb.SetDataSource(ds);
crystalReportViewer1.ReportSource = fbb;
你只传了一个da.Fill(ds, "wtnjb");的表进去tchf();过程里的数据没有传到报表里,注意你用了两次DataSet1 ds = new DataSet1();
你可以考虑把ds做成一个public看看。
水晶报表主报表用了分组功能,子报表中的数据就显示不了?why?