BIRT 有什么好办法接收数组型参数

2023-10-17 11:39
文章标签 参数 数组 接收 办法 birt

本文主要是介绍BIRT 有什么好办法接收数组型参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

由于BIRT不直接支持数组型参数参与查询,即:无法把一个数组直接传给DataSet执行带in的SQL,所以很难直接在数据集中把SQL拼出来。

不过,可以通过一个间接的方式来实现:

1、在DataSet中定义选出所有数据的SQL(select * from XX),然后定义参数(如arg1,显示类型为List Box),允许多值。

2、在DataSet的Script页签下选择beforeOpen事件,并编写如下JS脚本,进行SQL拼接(beforeOpen是指在数据集查询之前执行拼接SQL):

...

param = reportContext.getParameterValue("arg1");

tmp = "";

for(var i=0;i<param.length;i++){

tmp += param\[i\] + ",";

}

tmp = tmp.substring(0,tmp.length-1);

this.queryText += "where id in (" \+ tmp +")";

...

这样可以实现带in的条件查询,但是操作起来很麻烦,如果是字符串或日期时间类,则还要再拼上引号、或数据类型转换等,做起来充满太多不确定性,灵活性也很差。

如果可以直接使用数组型参数参与查询将会非常简单,数组型参数与查询结果的示意图如下:

 

 

 

 

 

建议使用集算器,在SQL中接收参数组,直接传递给SQL进行查询,最后将结果返回给BIRT的DataSet 进行直接报表展现。代码非常简单:

 

A

1

=myDB.query("SELECT * FROM SALES WHERE ORDERID IN (?)",arg1.array())

2

return A1

其实还有很多情况BIRT解决动态计算问题不太方便,但有集算器SPL的辅助却很简单,感兴趣可以参考:解决 BIRT 动态数据源的若干示例

集算器提供了 JDBC 驱动,可以很方便的与BIRT等报表工具集成,BIRT调用SPL脚本有使用和获得它的方法。

关于集算器安装使用、获得免费授权和相关技术资料,可以参见如何使用集算器。

这篇关于BIRT 有什么好办法接收数组型参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/225107

相关文章

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

Java通过反射获取方法参数名的方式小结

《Java通过反射获取方法参数名的方式小结》这篇文章主要为大家详细介绍了Java如何通过反射获取方法参数名的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、解决方式方式2.1: 添加编译参数配置 -parameters方式2.2: 使用Spring的内部工具类 -

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

Python如何使用seleniumwire接管Chrome查看控制台中参数

《Python如何使用seleniumwire接管Chrome查看控制台中参数》文章介绍了如何使用Python的seleniumwire库来接管Chrome浏览器,并通过控制台查看接口参数,本文给大家... 1、cmd打开控制台,启动谷歌并制定端口号,找不到文件的加环境变量chrome.exe --rem

Linux中Curl参数详解实践应用

《Linux中Curl参数详解实践应用》在现代网络开发和运维工作中,curl命令是一个不可或缺的工具,它是一个利用URL语法在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等... 目录引言一、基础请求参数1. -X 或 --request2. -d 或 --data3. -H 或

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2