新建一个空白报表文件-->右击“详细资料(Session3)”一栏-->单击“插入节低于”可插入详细资料空白行,子报表就显示在该空白行中(可根据子报表数决定插入的行数)在新插入的空白行上右击,选择“插入”-->“子报表...”。下面的工作就和添加普通报表一样了

解决方案 »

  1.   

    看来我的说详细点  我做的报表是动态绑定数据的
    用的是TTX文本文件描述数据源
    所以必须在CrystalReportViewer所在的页面的.cs文件里绑定数据
    我的子报表是作为一个独立的报表设计的 主报表为一个空白报表 无任何数据 为的是在同一个报表显示两个豪不相关的独立报表 
    我经过测试 如果把子报表不嵌入主报表 而作为一个独立的报表显示的话 一切正常 数据能正常显示
    但是如果作为子报表嵌入在空白主报表中的时候就会显示为空白 我想是我的子报表和主报表没有关联好  但是我不知道该怎么关联 据说要用到OpenSubreport() ,但是具体的 我不太清楚 所以请有经验的GG指教指教 谢谢!!!
      

  2.   

    绑定原代码如下:
    private void Page_Load(object sender, System.EventArgs e)
    {
    OleDbConnection myconnect=new OleDbConnection(ConfigurationSettings.AppSettings["connstr"]);
    string sqlstr1="  SELECT PLACE_ORDER_DETAIL.PLACE_ORDER_NO,PLACE_ORDER_DETAIL.PRODCODE,PLACE_ORDER_DETAIL.PRO_NAME,PLACE_ORDER_DETAIL.PRO_SPEC,PLACE_ORDER_DETAIL.COLOR,PLACE_ORDER_DETAIL.UNIT,PLACE_ORDER_DETAIL.ORDER_QTY  FROM PLACE_ORDER_DETAIL   WHERE PLACE_ORDER_DETAIL.PLACE_ORDER_NO = '04-110'";  
    OleDbDataAdapter myadapter=new OleDbDataAdapter(sqlstr1,myconnect);
    DataSet mydataset=new DataSet();
    myadapter.Fill(mydataset,"first");
    cr_cljdrx oRpt=new cr_cljdrx();//主报表 空白 无数据 
                                cljdrx oRpt1=new cljdrx1();//子报表 ,只把它插入到了主报表中
    oRpt1.SetDataSource(mydataset.Tables["first"]); //绑定子报表数据
    CrystalReportViewer1.ReportSource=oRpt;//显示报表


    // 在此处放置用户代码以初始化页面
    }
      

  3.   

    是报表设计界面子报表没有跟主报表建立关联吧?
    在设计界面选择子报表,选“更改子报表连接” 把子报表跟主报表的字段关联起来。数据源设置如下:
    CrystalDecisions.CrystalReports.Engine.ReportDocument rpt=new CrystalDecisions.CrystalReports.Engine.ReportDocument();rpt.SetDataSource("报表数据源");rpt.OpenSubreport("子报表名称").SetDataSource("子报表数据源");
      

  4.   

    Thank 先,请问高手 主报表字段和子报表一定要有字段关联吗 如果是完全独立的不行吗
    而且 主报表完全是空的 没数据 不行吗 
    SORRY  我想 我提的问题 或许和愚蠢 但是我确实不知道
      

  5.   

    rpt.OpenSubreport("子报表名称").SetDataSource("子报表数据源");
    这句一直报错   加载报表失败
      

  6.   

    我关联了 为什么还是会出现 “加载报表失败” 的错误呢
    即执行这句时发生
    rpt.OpenSubreport("子报表名称").SetDataSource("子报表数据源");
      

  7.   

    rpt.OpenSubreport("子报表名称").SetDataSource("子报表数据源");加载报表时,代友只要加载主报表就行了。子报表是嵌套在主报表中的,由主报表年自动加载。