通过 api 设置子报表的方法

 

ReportDefine rd = (ReportDefine)ReportUtils.read("D:/zhu.rpx");
	
	SubReportMetaData subReport = new SubReportMetaData();//构造子报表元数据
	SubReportConfig src = new SubReportConfig();//构造自报表定义
	src.setName("male");//设置子报表名称
	src.setURLType(SubReportConfig.TYPE_ABSOLUTE);//设置子报表定义的URL类型为绝对路径
	src.setURL("D:\\sub.rpx");//设置子报表的路径
	subReport.addSubReportConfig(src);//把子报表定义添加到子报表元数据中
	rd.setSubReportMetaData(subReport);

INormalCell inc41=rd.getCell(4,(short)1);//获取A4单元格对象
		inc41.setCellType((byte)-60);//设置单元格类型为子报表
		
		IByteMap map=new ByteMap();
		map.put(INormalCell.VALUE,"subreport()");
		inc41.setExpMap(map);//设置A4单元格表达式为subreport()
	
		SubRptProperty subRpt=new SubRptProperty();
		subRpt.setType((byte)2);//设置子报表类型为引入式
		subRpt.setName("male");//male为之前定义的子报表名
		inc41.setSubRptProperty(subRpt);//设置子报表信息
	ReportUtils.write("D:/zhu1.rpx",rd);  //保存新的报表