现在具体情况是这样的,form1中有一个查询后的结果表在myDataSet.Tables["table1"]中,table1的各个字段如下:"楼栋号", "楼层", "房间", "额定人数", "实际人数", "学号", "姓名", "性别", "院系", "年级", "住宿属性", "住宿关系附注"。
在From2中加入一个crystalReportViewer1。在form1中打开form2的时候将myDataSet.Tables["table1"]传入form2中。并作为打印的数据源
要求打印格式如下:
楼栋号:×× 总额定人数:×× 已住人数:×× 可住人数:××
楼层:× 总额定人数:×× ……
房间:××
每个入住人的信息
房间 ……
……以前没有用过水晶报表,兄弟万分感谢各位帮忙!!!
在From2中加入一个crystalReportViewer1。在form1中打开form2的时候将myDataSet.Tables["table1"]传入form2中。并作为打印的数据源
要求打印格式如下:
楼栋号:×× 总额定人数:×× 已住人数:×× 可住人数:××
楼层:× 总额定人数:×× ……
房间:××
每个入住人的信息
房间 ……
……以前没有用过水晶报表,兄弟万分感谢各位帮忙!!!
之后,在From2中加入一个crystalReportViewer1。在form1中打开form2的时候将myDataSet.Tables["table1"]传入form2中,代码中编写
rpt=new CrystalReport1();
rpt.SetDataSource("你得表");
this.crystalReportViewer1.ReportSource=rpt;
就OK了啊。
注意排版不是在Form2中,而是在设计一个rpt页面。呵呵!
1、建一个数据集类(*.xsd):DataSet1.xsd,手动建立一个表,各列对应与打印显示,并保存;
2、创建一个报表模版(*.rpt)在标准报表专家里选中Ado.net数据集中的DataSet1,插入里面的表(保存报表)。
3、然后在代码中创建一个DataSet1的实例(ds1)并将传过来的DataSet中的table数据导入到ds1中;
4、创建一个刚才创建的报表的实例对象,设置它的SetDataSource为ds1;添加查看器(crystalReportViewer)并设置报表源ReportSource,刷新搞定。
//窗体加载事件
private void frmPrint_Load(object sender, System.EventArgs e)
{
_dsRpt = new DataSet() ;
//取出报表数据,放在DataSet(DataTable)中
GetRptData();
//设置DataTable名
_dsRpt.Tables[0].TableName = "dsOut";
//设置报表
crReportDocument = new crOut() ;
//设置报表数据源
crReportDocument.SetDataSource(_dsRpt) ;
crystalReportViewer1.DisplayGroupTree = false;
//设置报表浏览器指向crOut的报表模板
crystalReportViewer1.ReportSource = crReportDocument;
}
看到这个方法,你应该知道怎么做了。--------------------------------
http://www.notsoft.cn
如果没有跟这个cs文件,需要手动增加,或者改变做法。--------------------------------
http://www.notsoft.cn
在给报表模板指定数据源时,要保证报表模板的数据表名称和你的DataSet中的DataTable名称一致。否则会提示取不到数据。--------------------------------
http://www.notsoft.cn