集算器辅助报表工具的应用过程

   集算器具有丰富的(半)结构化计算函数,支持动态解析表达式,支持多样性数据源。报表工具可将集算器脚本文件当做数据库存储过程执行,传入参数并用JDBC获得返回结果。

  集算器与报表工具的集成结构如下:



 

下面举例说明报表集成集算器的方法

 

数据库表SALES3存储着订单数据,部分数据如下:



 

现在要计算出指定年份每个月订单的总金额、最大订单金额、最小订单金额,以及总订单数,并将数据转置成134行,即:四种算法是第一列,列名为subtotal,每个月占一列,列名分别是1234…

         步骤一:在集算器IDE中连接数据库。



 

可用同时连接多个数据源进行混合计算,本案例使用mySQL数据库,JDBC配置如下。



 

步骤二:在集算器IDE中完成算法:



 

SQL简单分组汇总,再循环每条数据,将行转为列,按顺序修改空二维表A2中的一列。A1中的argYear是报表传来的参数,A4中的result语句表示向JDBC输出A2(默认输出最后一个单元格A3)。点击A2可观察计算结果:



 

步骤三:在报表中建立集算器数据源

         驱动类名为com.esproc.jdbc.InternalDriver ( v1.0)

         JDBC URLjdbc:esproc:local://

         用户名和密码为空。

 

         对于Jasper,其配置界面如下:



 

步骤四:在报表中新建数据集

之后可在query设计器中以存储过程的形式调用集算器脚本。对于Jasper,写法形如:call transData($P{pYear}),其中存储过程的名字就是集算器脚本文件名。pYear是报表参数,传入集算器时将按顺序(而不是参数名)依次对应集算器参数。

对报表工具而言,调用集算器脚本和调用普通数据库代码没有区别,之后就是常规的设计报表摆放字段,此处不再赘述。

WEB端配置呈现可参考【集算器集成与应用之JasperReport集成】。

 

上面以Jasper为例说明了报表工具集成集算器的一般方法,下面说明几种特殊情况。

BIRT集成集算器

BIRTJasper的情况基本相同,唯一的区别在于参数用法。不论存储过程还是SQLBIRT都使用问号做参数占位符,因此调用集算器脚本时应当写作:calltransData (?)。详细信息可见集算器集成与应用之BIRT集成

总之,只要报表工具支持JDBC数据源,就可以集成集算器。

 

简单脚本无文件

集算器脚本比较简单时,可以直接在报表的query设计器中写脚本,而不必专门存储一个脚本文件。比如下面的代码是将每条记录中的ANOMALIES字段拆分成多条记录。



 

Jasperquery设计器中可以直接写作=myDB1.query("select ID,ANOMALIES from data where ID>?”,$P{pID}) \n =A1.news(ANOMALIES.array(" ");A1.ID:ID,~:ANOMALIES)

可以看到,行和行之间只需用回车“\n“来分隔(列之间用\t分隔)。

 

 

上面的代码可以连写,等价于:



 

因此Jasper中的query可以进一步简化为=myDB1.query("select ID,ANOMALIES from data where ID>?”,$P{pID}).news(ANOMALIES.array(" ");A1.ID:ID,~:ANOMALIES)

 

BIRT使用问号做参数占位符,而问号是集算器表达式的一部分,因此需要用”arg1,arg2,arg3”的形式依次占位。query应当写作=myDB1.query("select ID,ANOMALIES from data where ID>?”,arg1).news(ANOMALIES.array(" ");A1.ID:ID,~:ANOMALIES) 。

【事件触发一致性】研究多智能体网络如何通过分布式事件驱动控制实现有限时间内的共识(Matlab代码实现)内容概要:本文围绕多智能体网络中的事件触发一致性问题,研究如何通过分布式事件驱动控制实现有限时间内的共识,并提供了相应的Matlab代码实现方案。文中探讨了事件触发机制在降低通信负担、提升系统效率方面的优势,重点分析了多智能体系统在有限时间收敛的一致性控制策略,涉及系统模型构建、触发条件设计、稳定性与收敛性分析等核心技术环节。此外,文档还展示了该技术在航空航天、电力系统、机器人协同、无人机编队等多个前沿领域的潜在应用,体现了其跨学科的研究价值和工程实用性。; 适合人群:具备一定控制理论基础和Matlab编程能力的研究生、科研人员及从事自动化、智能系统、多智能体协同控制等相关领域的工程技术人员。; 使用场景及目标:①用于理解和实现多智能体系统在有限时间内达成一致的分布式控制方法;②为事件触发控制、分布式优化、协同控制等课题提供算法设计与仿真验证的技术参考;③支撑科研项目开发、学术论文复现及工程原型系统搭建; 阅读建议:建议结合文中提供的Matlab代码进行实践操作,重点关注事件触发条件的设计逻辑与系统收敛性证明之间的关系,同时可延伸至其他应用场景进行二次开发与性能优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值