打印水晶报表 开发工具与关键技术:VS MVC 作者:木林森 撰写时间:2023年 6月 3 日 前段时间学习水晶报表,现在我跟大家分享一下我对水晶报表的认识 在做水晶报表之前,首先要下载一个水晶报表的软件,我是在百度上搜索CRforVS_13_0_14,然后找到下面两个下载的网址,你们可以自己进去找一下 参考地址1:http://scn.sap.com/docs/DOC-7824 参考地址2:https://www.parthpatel.net/install-crystal-report-runtime/ 因为我使用的是Visual Studio 2015,所以我下载的是下面这两个版本 CRforVS_13_0_17 CRforVS_redist_install_64bit_13_0_17 为什么是这两个呢,其实就是取决于你使用的版本,而我下载的就是Visual Studio 2015支持的两个文件。如果你使用的是其他版本的VS,那么你就需要下载相应的版本,否则无法使用。注意:在Visual Studio 2015中,你下载13-0-17为小号版本,所以你下载时2个文件的版本号要相同。 下载完软件之后就重新打开VS,然后鼠标移到项目名字上右键——添加——新建文件夹,然后命名为PrintReport(这里名字自己随意起)。 文件夹建好后就是添加数据源,在新建的PrintReport文件夹上右键——添加——新建项,然后会弹出一个模态框,选择数据——数据集——命名为ReportDB(这里名字自己随意起)——确认。接着就是创建数据源,就是水晶报表的表头字段和表名。数据源的添加有两种方法:方法一:前提是数据库存在需要的表,然后在空白的地方右键——TableAdapter,这里通过与数据库连接,把需要打印的表格连接进来;方法二:是数据库中没有需要的表格时,自己进行创建的,在空白的地方右键——DataTable,然后会弹出一个空的表,在表头双击,然后更改默认的名字为你要的名字。然后在摆个内空白的地方右键——添加列,就可以添加你表格需要的字段了,这里有个很重要的地方,一定要记得做,不然后面就会报错,而且还不容易被发现!那就是在新建的字段上右键——属性——Data Type行选择正确的属性,属性要和数据库中属性对应。 创建数据源的例子如图1: 图1 做好添加数据源之后就是设置水晶报表的模板,在新建的PrintReport文件夹上右键—添加—新建项,然后会弹出一个模态框,选择Reporting—命名AchievementReport(这里命名随意)——添加——弹出窗口,选择作为空白报表——确定。你只有安装成功水晶报表软件,它才会有 Reporting。空白模板出来后在右边有一个字段资源管理器,鼠标移到数据库字段上右键——数据库专家——弹出窗口,在窗口左边的项目数据中找到刚才建的表,双击表格就会出现在右边的选定的表——确定。然后再打开数据库字段时,它的表字段就会出现,然后将表的字段拖拉到空白模板对的详细资料那,然后就可以对字段进行设置了,如果需要对表格进行设置,那就在点击右键弹出的功能框中自行选择需要的格式,如果想看自己设置的表格打印出来会是怎样,就可以在下面主报表预览中看到。 例子如图2: 图2 在完成模板之后就可以写代码了,这里就不进行举例了,如果想学习的话,就自己去网上查找吧。 不过在这里我想跟大家分享一下我之前做水晶报表时出现的bug,如图3: 图3 因为我本人手脚较笨还比较粗心,就在添加数据源那个地方,本来我想给表格命名为tbAchievement的,但是因为粗心,我写打成了tbAchieveement,对于粗心的我来说,我当时没及时发现,到后面出了错误的时候,我检查时就只检查了控制器中的表名字,而没有将它们两者进行对比,所以一直找不到错误的源头,后来在师兄的帮忙下才找到了错误。 知道错误之后,我就改咯,不过第一次我改的是添加数据源建表的名字,后来我运行代码发现它还是有bug,如图4 图4 当这个问题出现时,我还有点怀疑师兄是否错了,我就尝试着保留原来添加数据源建表的名字,更改控制器中的名字,使控制器中的名字和添加数据源建表的名字一致。再次运行时,它果真成功了。但是因为好奇我还是去问了师兄,他说命名那里跟数据库有关联,如果非要改命名的地方,那么数据库也要跟着改变很多东西,会很麻烦。所以我又上网查了一下,其实真的可以改,就是比较复杂,所以以后如果遇到这种问题,建议更改控制器中的名字!因为我本人是个菜鸟级的学子,所以要想知道怎么更改数据源建表的名字使项目一样能够运行的,就请上网找大神或老师吧。希望所有编程人员能够在困难的路上越挫越勇!
打印水晶报表
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。