水晶报表的子报表绑定数据源无数据显示

xiaobao1981 2011-07-02 10:30:55
大家帮看一下,我在报表中插入了4个子报表,想分别给每个子报表设置数据源。(数据之间不相关),

我在FormLoad事件中加入以下代码
pregnancyAgeDsFram pads = new pregnancyAgeDsFram();
pads.Load(Application.StartupPath + "\\pregnancyAgeDsFram.rpt");
SubreportObject objFamilyReport;
objFamilyReport = pads.ReportDefinition.ReportObjects["FamilyReport"] as SubreportObject;
ReportDocument familyReportDoc = objFamilyReport.OpenSubreport(objFamilyReport.SubreportName);
familyReportDoc.SetDataSource(ds.Tables["tbManWife"]);

DataSet ds1 = db.RunProcReturn("select * from woman_hy where id=3523","tbhy");
SubreportObject objPregancyReport;
objPregancyReport = pads.ReportDefinition.ReportObjects["PregancyReport"] as SubreportObject;
ReportDocument PregancyReportDoc = objPregancyReport.OpenSubreport(objPregancyReport.SubreportName);
PregancyReportDoc.SetDataSource(ds1.Tables["tbhy"]);

this.crystalReportViewer1.ReportSource = pads;

程序运行后,一点反映都没有?弄了很长时间了,大家帮帮我啊,急。
...全文
93 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaobao1981 2011-07-03
  • 打赏
  • 举报
回复
谢谢zyl_leilei,感觉也应该是这样的啊,但是不知道我的为什么无法显示。
-小蕾- 2011-07-02
  • 打赏
  • 举报
回复
这是我之前做过的水晶报表子报表的代码,你看看对你有没有帮助。

MySqlConnection conn;

MySqlDataAdapter da;
MySqlDataAdapter da1;
private void CrsForm_Load(object sender, EventArgs e)
{

DataSet ds = new DataSet();
DataSet ds2 = new DataSet();
DataSet ds3 = new DataSet();
conn = new MySqlConnection(PubConstant.ConnectionString);
//显示报表内容
try
{
int MemberIdtmp = Program.Num_id;
//int MemberIdtmp = 149;
member member = new member();
memscore memscore = new memscore();
member.GetModel(MemberIdtmp);

ds.Tables.Add("MyReportDataTable");
ds.Tables[0].Columns.Add("MemberId",Type.GetType("System.String"));
ds.Tables[0].Columns.Add("MemberName",Type.GetType("System.String"));
ds.Tables[0].Columns.Add("ScoreZero", Type.GetType("System.String"));
ds.Tables[0].Columns.Add("ScoreOne", Type.GetType("System.String"));
ds.Tables[0].Columns.Add("Poto", Type.GetType("System.Byte[]"));
ds.Tables[0].Columns.Add("ScoreSum", Type.GetType("System.String"));

DataSet dstmp = new DataSet();
DataRow row = ds.Tables["MyReportDataTable"].NewRow();
row[0] = MemberIdtmp.ToString();
row[1] = member.MemberName.ToString();
dstmp = memscore.GetList("MemberId = " + MemberIdtmp + " and Type = '0'");
if (dstmp.Tables[0].Rows.Count > 1)
{
MessageBox.Show("成绩记录错误,请联系工作人员!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
return;

}
else if (dstmp.Tables[0].Rows.Count == 1)
{
row[2] = Convert.ToString(Convert.ToInt32(dstmp.Tables[0].Rows[0]["Score"]));
}
else
{
row[2] ="0";
}
dstmp = memscore.GetList("MemberId = " + MemberIdtmp + " and Type = '1'");
if (dstmp.Tables[0].Rows.Count > 1)
{
MessageBox.Show("成绩记录错误,请联系工作人员!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;

}
else if (dstmp.Tables[0].Rows.Count == 1)
{
if (Convert.ToInt32(dstmp.Tables[0].Rows[0]["Score"]) == 0)
{
row[3] = "不合格";
}
else if (Convert.ToInt32(dstmp.Tables[0].Rows[0]["Score"]) == 1)
{
row[3] = "合格";
}else
{
MessageBox.Show("成绩记录错误,请联系工作人员!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
}
else
{
row[3] = "不合格";
}
row[4] = Convert.FromBase64String(member.Poto.ToString());
if (row[3].ToString() == "不合格")
{
row[5] = Convert.ToString(Convert.ToInt32(row[2]) * 0.6);
}
else if (row[3].ToString() == "合格")
{
row[5] = Convert.ToString((Convert.ToInt32(row[2]) * 0.6) + 40);
}
else
{
MessageBox.Show("成绩记录错误,请联系工作人员!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int MemberId = Program.Num_id;
ds.Tables["MyReportDataTable"].Rows.Add(row);
da = new MySqlDataAdapter("select * from assessmentinfo where MemberId=" + MemberId + "", conn);
da.Fill(ds2, "DataScoreInfo");

da1 = new MySqlDataAdapter("select memque.Answer as memAnswer,Question,question.Answer as queAnswer,(case when question.Answer='A' then OptionA when question.Answer='B' then OptionB when question.Answer='C' then OptionC when question.Answer='D' then OptionD end) as questionAnswer from memque,question where memque.QuestionId=question.QuestionId and memque.Answer!=question.Answer and memberId=" + MemberId + "", conn);
da1.Fill(ds3, "QueTable");

crystalReport21.Load(Application.StartupPath + "CrystalReport2.rpt");
crystalReport21.SetDataSource(ds);

//crystalReport21.Subreports[0].SetDataSource(ds2);//将记录集传给子报表
crystalReport21.Subreports["CrystalReport3.rpt"].SetDataSource(ds2);
crystalReportViewer1.ReportSource = crystalReport21;

crystalReport21.Subreports["CrystalReport1.rpt"].SetDataSource(ds3);
//crystalReport21.Subreports[1].SetDataSource(ds3);//将记录集传给子报表
crystalReportViewer1.ReportSource = crystalReport21;

crystalReportViewer1.ShowPrintButton = false;

crystalReport21.PrintOptions.PrinterName = printDocument1.PrinterSettings.PrinterName;
crystalReport21.PrintToPrinter(1, true, 1, 999);//打印

}
catch
{
return;
}
}

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧