这几天,我一直在研究Web打印,我觉得我的设计思路是对的。我们搞软件设计,无论是面对最终用户,还是面对程序员,良好的用户体验是软件成败的关键因素。具体对于打印设计来说,就是能用最少的代码,最少的时间设计出用户所需要的报表。现在的程序员大部分是从C/S架构走过来的,对于C/S架构下,丰富多彩、快捷方便的报表打印设计多有怀念,呵呵,我就是其中的一个,可能是我们80后的人开始老了,老是怀念美好的过去。当然,对于软件开发行业,每年不断有新技术推出,只要有好的技术,我们80后的程序员也会不断的学习,不断的前进,绝不停留在原地,等着行业的淘汰。B/S架构越来越成为软件开发的主流,作为B/S架构的软肋就是用户体验不足,随着Ajax技术的推广,网络带宽的改善,这方面也在慢慢的缩小和C/S架构的差距,我想终有一天可以达到或者差不多达到C/S架构的用户体验。
我想作为Web打印的程序员体验就是能够达到C/S架构的报表软件设计水平,只要我们准备好数据源,基本上不要写代码,在报表设计器中就可以快速的设计出用户所需的报表,如果用户要修改报表,也只需调整报表格式,无需去修改代码。其实这种设计思想也是报表设计的主流,作为报表之王的水晶报表就是其中的一例,只可惜水晶报表只能用于.NET平台,企业版又太贵,我们一般的程序员和软件公司都承担不起,不然一个Web打印也用不着这么费周折。其它有名的报表打印也是这么一个设计思想,我就一直没有想明白,国内的所谓专业Web打印公司,为什么不按照这主流思想去设计公司的产品,而是搞什么代码控制打印,用一行行代码(代码中有坐标和数据),硬是去画一个报表,这么低劣笨拙的设计怎么和人家去比,也许一时靠低价还可以卖一点,但终至会淘汰。
这几天,我对我设计的Web打印控件进行了重大的改进,重点放在如何用最少的代码,最少的时间设计出用户所需要的报表。我觉得我原来的报表设计器操作不方便,特别是对于ADO不熟悉的程序员,一下子很难掌握。我想作为报表的设计,最好是和报表预览或打印结合在一起,程序员只需修改最小的代码,就可以把一份报表由设计状态迅速的转为用户实际使用的状态,两者完美结合在一起,设计状态和实际使用状态没有任何差别。我在原来的控件基础上增加了DesignReport函数,调用此函数即进入报表的编辑状态,此函数的参数和预览报表函数(ShowReport)打印报表函数(PrintReport)完全相同,程序员编辑好报表后,只需把DesignReport函数替换为ShowReport或PrintReport就可以预览或打印报表。另外还增加了一个属性ReportFileName,此属性是指定报表的名称,指定好报表的名称后,便于报表的保存和上传。报表编辑还是采用FastReport,对于FastReport不熟悉的程序员可能要稍加学习,不过很简单的,我记得我学的时候就是看了一下别人的报表,大约十几分钟,然后就直接用了。报表编辑之前请先组织好数据源和报表参数,这个和预览报表一样的,在设计过程中,可以直接预览报表,你看到的就是用户看到的,没有任何差别。报表做好后,最后要上传至服务器,这因为报表编辑时只是暂存在客户电脑上,最终的报表文件还是以服务器为准。在报表编辑器中提供了FTP功能,在工具栏上有一个 按钮,单击此按钮,再输入FTP服务器名、FTP用户名、FTP密码以及FTP文件夹(这个文件夹是从FTP的根目录开始的文件夹,比如Web/ASP/FRP/,FTP传送文件前,先必须定位到此文件夹),然后单击上传就可以把报表上传到服务器。
还顺手把有时候导出Excel表,中文乱码的问题解决了。
报表预览、编辑和下载的网址: http://www.lc-simple.com/Print.NET/