图片显示/大字段上传
1 背景
在电子政务、票务管理或其它应用管理系统中,经常用到电子图章、条形码图片或其它信息图片,这些图片可以由系统动态产生(可能产生后保存),也可能是由用户上传到服务器保存的图片信息,并最终将这些有用的图片在展示层展现。
基于现有的需求及报表在展示层大量成功的运用,各种图片信息能否在报表中灵活产生、修改和展现,以及以何种方式展现成为选择报表工具的一大重要指标。
以人事档案管理系统中的人员信息展现为例子,要展现对应的人员头像,传统基于Java开发的系统做法大概如下步骤:
1、 使用Java开发一个上传组件,用于上传特定格式的文件,如.gif图片
2、 写form表单与上一步开发的上传组件结合,将客户端的图片保存到服务器硬盘上,同时在数据库中保存文件所在硬盘上的路径,并把本路径与人员ID信息进行关联。
3、 在展现本人员信息时,首先在数据库的人员信息表中找到相应人员的ID,并根据该ID与图片数据表中的人员信息关联,找到图片所在的路径,最后由本路径与HTML语法中的标签结合,进行头像的展现。
以上步骤仅限于上传及展现图片,如果要对人员信息进行修改,则需要删除原有旧图片、上传新图片、修改数据库路径信息等等步骤,还有可能出现管理信息与展现信息不在同一操作界面,造成修改与展现预览脱节的情况。传统的方法提供的是一个在理想情况下比较有效的方法,但也已经初显他的弊端——步骤相当烦琐!开发复杂、维护麻烦没关系,用户使用起来也很不方便。更关键的是,图片上传与数据库无法保证数据事务的一致性。
那么,如何灵活上传修改图片?如何与报表工具结合?又如何在同一操作界面即时展现修改过的信息呢?
2 快逸的解决方案
快逸报表提供基于动态库表关联技术的数据采集(录入)功能,使客户端各种数据能轻松写入数据库中,保证数据事务的一致性,从根源上解决脏数据入库。同时,结合快逸报表强大的展现功能,完全实现了各种图片数据在同一操作界面完成图片上传、修改、展现的功能。

3 优势对比
图片上传、修改是大部分传统报表完全不能支持的功能。个别解决方案均需要中间文件的支持,二进制数据还需要编程才能进入开放的数据库,并且入库的数据没有办法再展现出来,仅成为一个简单的上传组件。快逸报表提供强大的基于纯HTML的填报一体功能(IE和Netscape全支持),使得图片数据与其它文本数据一样,能够方便采集到数据库中并展现,再加上特有、成熟的层次坐标模型,支持图片在报表的任何上传,并在指定的位置展现出来。

图二、快逸图片上传、修改与展现图
与传统编程方法相比,修改、上传图片操作不再复杂,修改后的图片数据在指定的位置直接展现,而这一切功能的开发过程直接在设计器中完成,不需要任何的编程.

4 用法描述
1) 设计报表
a>设置格子数据类型
在展现图片的单元格设置取值表达式,如果图片文件来源于文件,则内容属性值直接写文件所在的相对路径表达式,如果图片文件来源数据库中的大字段数据,则在内容中写取值表达式,同时,前者设置类型属性为图片文件,后者设置为图片字段。如图四所示:

b>设置填报属性的编辑风格
如图五所示,选择图片上传所在单元格,右键属性选择填报属性,设置编辑风格为上载文件,并对上截文件类型进行设置,如上传的文件类型为gif的图片等等。

c>设置更新属性
如图五所示,切换到更新Tab页,设置更新属性,使得图片上传单元格与数据库相应字段关联。
2) 在浏览器上传,更新,展现图片
在WEB上发布第一步设计的报表,双击上传文件所在单元格,弹出上传、更新文件对话框,选择本地的图片文件,点击确定,完成上传、更新,页面自动刷新,自动展现更新上传的图片。
5 总结
快逸填报一体的功能,使得图片等等二进制数据能够轻松上传、修改与展现;同时,傻瓜的开发模式,操作界面的人性化,不仅解决数据问题,保证数据完整性,也解放了程序员,使得应用更易维护,更给最终用户带来操作上的方便。