FineReport集成到AWS系统中的方案

本人实施了北京炎黄盈动的BPM及OA系统,主要目标是对业务流程进行控制和管理,加快Oracle JDE的业务前端录单速度和弥补JDE在流程控制方面的不足,实现BPM数据能与JDE无缝互相结合,经过3个多月的开发,基本上实现了这个目标。

但是AWS本身也有缺陷,主要表现在表单设计和打印格式设计方面,无法实现类似Excel方式的灵活复杂格式表单、表头表尾重复打印、安装用户定义的纸张打印等等,我们的销售前端需要按照一种特殊的纸张打印,打印机的标准纸张里没有,这些功能要求是上线所必须的,但是AWS的开发人员在其系统内部根本无法完成。

考虑到FineReport在表单设计打印方面的极大的灵活易用性,我们故而使用FineReprot和AWS结合完成这个任务。

效果—— AWS销售打印表单

开发配置

系统集成:把FineReport集成到AWS服务的目录下。AWS安装在linux系统中,找到AWS的WEB服务目录WEBAPPS, 把Finereport目录下的WebReport目录拷贝到该目录下,即可实现与AWS同一主机的WEB报表,不需要对AWS配置做任何改变,报表修改后上传覆盖即可。集成后的访问方式为:http://192.168.1.10:8099/WebReport/ReportServer?reportlet=aws/xiaoshoudan.cpt和AWS的地址主机http://192.168.1.10:8099/portal/一致。

报表开发

创建报表数据源、开发报表及格式不讲了,大家可以到帆软官网(www.finereport.com)和帮助文档(www.finereporthelp.com)上自己去看,很简单的。

部署报表到AWS服务器

把Finereport目录下的WebReport目录拷贝到AWS服务器 AWS目录下Webapps下。

表单集成

表单集成的关键是从AWS表单向FineReport报表传递一个流水号的参数,然后调用FineReport报表打印,从AWS实现这个目标有多种方案,主要包括表单链接和JAVA链接两种,经过多次试验和开发,选择了比较简单易于维护的表单链接方案。

该方案实施过程如下:

1、在AWS表单上新增打印按钮和选择打印格式的下拉框;

2、在AWS表单中新增Javascript函数,用Javascript创建在新窗口打开的一个Frame ,并使用这个Frame的source URL参数传递FineReport报表的地址并传递AWS流水号参数给报表;

增加的Javascript内容:

<scripttype="text/javascript">

varmapwin;

functionquery()

{

// create the window on the first click andreuse on subsequent clicks

varsid=document.getElementsByName("AWSFLOWID")[0].value;

//获取参数AWS流程号;

varobj=document.getElementById("dyxz");

//获取报表格式;

var xzz=obj.value;

varurl="http://"+window.location.host+"/WebReport/ReportServer?reportlet=aws/xiaoshoudan";

//FineReport报表的URL部分

url=url+xzz+".cpt";

//URL 加上报表格式部分,实现了5种格式的报表链接,构成完整的URL;

if(sid!=null) url=url+"&lsh="+sid;

var h="<iframe name=mainsrc="+url+" frameborder=1 width=100% height=100% scrolling=yesonload=‘‘></iframe>";

if(!mapwin){

// 打开新窗口,链接到FineReport报表

mapwin = new Ext.Window({

layout:‘fit‘,

title: ‘销售单打印‘,

closeAction:‘hide‘,width:1000,

height:800,html:h,y:30

});

}

mapwin.show();}

</script>

3、从AWS中运行程序,调用FineReport报表,实现表单按要求格式打印。

4、销售录单后,点打印表单

时间: 2024-07-31 00:23:26

FineReport集成到AWS系统中的方案的相关文章

android集成apk到系统中常遇到的一些问题

1.集成的APK必须确认是否为release版本,否则会导致CTS测试失败. 处理方法:反编译apk,查看manifest.xml文件,看<application>中是否有debug属性:android:debuggable. 值为true,就是debug版本.值为false或者未设置,就是release版本 2.集成的APK,不可更改其签名,否则会造成该APK应用升级时出现签名冲突的问题 3.集成的APK,签名不可为android的默认签名:[email protected].否则会导致CT

如何在CRM系统中集成ActiveReports最终报表设计器

有时候,将设计器集成到业务系统中,为用户提供一些自定义的数据表,用户不需要了解如何底层的逻辑关系和后台代码,只需要选择几张关联的数据表,我们会根据用户的选择生成可供用户直接使用的数据集.本文第一部分主要讲解了,如何构造三种报表模板,第二部分主要讲解了对于DataRelation类在动态绑定数据集之间的用法. 首先需要构造LayoutBuilder类,该类主要构造三种类型的报表以及为它们添加数据集字段. 1. 创建RDL 报表 使用PageReport对象,并添加属性 public static

在Mac OSX系统中搭建Python集成开发环境

本篇博客分享如何在Mac OSX系统中搭建Python集成开发环境 首先到Python官网下载python,python官网链接 这里选择下载Python2.7.9版本,下载完成之后安装: 安装成功,打开终端: 下面下载python开发的ide,http://www.jetbrains.com/pycharm/ 下载专业版,有30天的免费试用,足够我们学习python了. 安装,将Pycharm拖动到mac应用程序中 创建第一个Python项目: 运行python文件

系统中生成编号/单号问题的实现方案讨论

应用场景 场景:对于大多数电商系统或财务系统来说,系统中的单号一般都不是从1开始的自增数字,而是一串有一定意义的字符串序列. 而往往这样的单号是要全局唯一的,不可重复. 那么,每次新增订单记录时,这个单号就要按照指定的规则来生成. 常见的订单号规则是字母前缀+日期+时间+定长的数字,如DD201610201559060001(format:XXYYYYMMDDHHmmssNNNN),PZ16102015000012(format:XXYYMMDDHHNNNNNN) 常见方案... 实现这样的场景

在Windows系统中安装集成的PHP开发环境

原文:在Windows系统中安装集成的PHP开发环境 刚想学php的,又不会配置复杂php的环境,可以使用集成的,目前网上提供常用的PHP集成环境主要有AppServ.phpStudy.WAMP和XAMPP等软件,这些软件之间的差别不大.每种集成包都有多个不同的版本,可以下载版本比较高的任意一个集成软件安装使用. 我用的是appserv-win32-2.5.10.exe下载地址:http://www.appservnetwork.com/index.php?newlang=chinese App

大数据高并发系统架构实战方案

大数据高并发系统架构实战方案(LVS负载均衡.Nginx.共享存储.海量数据.队列缓存 ) 随着互联网的发展,高并发.大数据量的网站要求越来越高.而这些高要求都是基础的技术和细节组合而成的.本课程就从实际案例出发给大家原景重现高并发架构常用技术点及详细演练.通过该课程的学习,普通的技术人员就可以快速搭建起千万级的高并发大数据网站平台,课程涉及内容包括:LVS实现负载均衡.Nginx高级配置实战.共享存储实现动态内容静态化加速实战.缓存平台安装配置使用.mysql主从复制安装配置实战等.课程二十.

在IT系统中使用多租户技术提供人员跨部门及虚拟团队的解决方案(草稿)

1 前言 经过多年企业信息化建设,逐步形成的办公系统中还有9个部门业务网站子系统.9个专业应用子系统.20个独立信息模块.330个流程.这些系统或模块分别搭建在Microsoft IIS.Apache Tomcat.Weblogic.Cordys BOP上,相互彼此独立.互不影响. 在不考虑重复投资.资源共享.便于运维的情况下,仍存在一些长期很难解决的问题: (1).各个系统的组织.账号不统一,维护困难: (2).在一些系统或模块中,对于人员跨部门的情况,仍以两个及以上账号的方式处理,不仅业务不

多功能PCIE交换机之九:单NT系统中需要注意的问题

多功能PCIE交换机之九:单NT系统中需要注意的问题 1.单NT与双NT系统差异 NTB通常用在双控或者多控的系统上,用来实现跨节点的数据传输.在由多个节点构成的系统上,通常每个节点上都有一个NTB芯片,以实现全系统地址空间划分和路由.顾名思义,单NT是指用一个PCIE非透明桥来实现节点间数据传输的方案,通常用在两个节点之间.和多NT的系统相比,这种方法实现相对比较简单,成本较低,开发周期较短,能够缩短整个系统的关键功能和性能的验证周期. 2.单NT系统的实现 单NT的实现需要结合整个系统的设计

Android系统中的广播(Broadcast)机制简要介绍和学习计划

在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制:这些组件甚至是可以位于不同的进程中,这样它就像Binder机制一样,起到进程间通信的作用:本文通过一个简单的例子来学习Android系统的广播机制,为后续分析广播机制的源代码作准备. 在Android系统中,为什么需要广播机制呢?广播机制,本质上它就是一种组件间的通信方式,如果是两个组件位于不同的进程当中,那么可以用Binder机制来实现,如果两个组件是在同一个进程中,那么它们之间可以用来通信的方式