当前位置: 代码迷 >> C# >> 水晶报表可以经过主表字段转递给子表作为查询数据的参数吗
  详细解决方案

水晶报表可以经过主表字段转递给子表作为查询数据的参数吗

热度:50   发布时间:2016-05-05 03:42:14.0
水晶报表可以通过主表字段转递给子表作为查询数据的参数吗
如题, 刚解决了分别给主表子表转递显示数据,可以实现单条数据打印了,结果空欢喜一场,下午要实现多条记录全部打印,这样主表跟子表的内容不能一一传递了,想了想可能只有主表跟子表想关的字段作为参数给子表查询了,不然怎么一一传递进入,想到现在还没想出个结果,跪求解决,急。。。。。


 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;

        }
  相关解决方案