(作者:ヤ青春ゞ滋味,撰写时间:2019年5月2日)
首先,在项目里添加一个新的文件夹,并在文件夹里添加一个数据集,在区域里添加,如下图:
然后打开数据集,在数据集里点击鼠标右键选择添加,点击添加DataTable,最后将我们所需要的表数据添加进来,接着选择Achievement把它的属性中DataType里的string类型设置成Decimal类型,再将所有ID的属性设置成Int32类型。
接下来我们在原来添加数据集的文件夹里,再添加一个Crystal Reports,如下图:
然后点击Crystal Reports,它会弹出一个选择框,里面有三个选择:使用报表向导、作为空白报表和来自于现有的报表。这时我们就来选择空白的报表,因为空白的报表可以自由设置水晶报表的样式,我们就可以拿空白报表来设计自己所需要的报表,不过在设计之前,我们先要把数据集中的表引进来。
我们这时要点击数据库字段,然后选择数据库专家,然而在数据库专家中把项目数据展开,找到数据集中的表。然后我们就要选中这张表,点击“>”按钮,将目前的表放入我们要选定的表中。
然后我们就来设计表头,选择插入文本对象,在文本对象里输入标题,接着我们再到标题的右下角的位置插入小的文本对象,然后再到小的文本对象的旁边插入特殊字段,这样我们就把头部给设计好了。
接着我们来设计页眉,将表数据移动到我们想要的位置,表数据就会在页眉中自动生成一份数据了,接着来设置页眉的字体大小和我们要把页眉的文本修改成我们想要的文本,然后将文本的字体设为白色,再给页眉添加一个框,再把框的颜色调成为灰色。
接下来的详细资料跟上面的做法一样的,只不过的是文本里的内容就不同了,如下图:
我们设计完报表后,我们要把水晶报表输出,先用Linq查询从数据库中查询出来数据,再将查询出来的数据用LINQToDataTable方法转化为DataTable的格式,然后这时我们要实例化数据集,用Merge将dtResult放入数据集中名为“tbAchievement”的表格中,再实例化数据报表,然后用Server.MapPath获取报表的物理文件路径,将报表加载到报表模板中,用SetDataSource设置报表的数据源,最后将报表转化为文件流输出,具体代码如下:
这样我们就完成了水晶报表的打印了。