如题, 刚解决了分别给主表子表转递显示数据,可以实现单条数据打印了,结果空欢喜一场,下午要实现多条记录全部打印,这样主表跟子表的内容不能一一传递了,想了想可能只有主表跟子表想关的字段作为参数给子表查询了,不然怎么一一传递进入,想到现在还没想出个结果,跪求解决,急。。。。。
KaikaPrint rpt = new KaikaPrint();//主报表名
rpt.Subreports["kaika.rpt"].SetDataSource(kaika.byProceline(EditingId)); //EditingId 是datag中选中的Id
rpt.SetDataSource(kaika.getbyId(EditingId));
kaikaprintReportsViewer.ViewerCore.ReportSource = rpt;
上午是这样给主表和子表传值的,现在要多条了该怎么办呀。。。。。。
------解决思路----------------------
没用过,我觉得应该可以吧
------解决思路----------------------
肯定是可以的呀。
直接通过某个主表的某个数据进行子表的数据过滤,然后直接把数据传给子报表。
private void frmPrint_Load(object sender, EventArgs e)
{
//显示报表内容
//int MemberId = Program.Num_id;
int MemberId = 1;
da = new MySqlDataAdapter("select a.MemberId as MemberId,MemberName,Score,Type from member as a left join memscore as b on a.memberid = b.memberid where a.memberid =" + MemberId + "", conn);
da.Fill(Mydata, "MyReportDataTable");
da1 = new MySqlDataAdapter("select * from assessmentinfo where MemberId=" + MemberId + "", conn);
da1.Fill(Mydata2, "DataScoreInfo");
crystalReport11.Load(Application.StartupPath + "CrystalReport1.rpt");
crystalReport11.SetDataSource(Mydata);
crystalReport11.Subreports[0].SetDataSource(Mydata2);//将记录集传给子报表
crystalReportViewer1.ReportSource = crystalReport11;
crystalReportViewer1.ShowPrintButton = false;
}