Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t使用脚本化数据集生成的行数据_Java_Report_Birt - Fatal编程技术网

Java Can';t使用脚本化数据集生成的行数据

Java Can';t使用脚本化数据集生成的行数据,java,report,birt,Java,Report,Birt,使用BIRT执行测试时,我能够创建一个报告并以PDF格式呈现,但不幸的是,我没有得到预期的结果 对于我的数据源,我创建了一个脚本化的数据源,其中不需要任何代码(就我所能看到的文档而言,我试图实现的目标) 对于我的数据集,我使用脚本数据源作为源创建脚本数据集。在这里,我定义了open的脚本,比如: importPackage(Packages.org.springframework.context); importPackage(Packages.org.springframework.web.c

使用BIRT执行测试时,我能够创建一个报告并以PDF格式呈现,但不幸的是,我没有得到预期的结果

对于我的数据源,我创建了一个脚本化的数据源,其中不需要任何代码(就我所能看到的文档而言,我试图实现的目标)

对于我的数据集,我使用脚本数据源作为源创建脚本数据集。在这里,我定义了open的脚本,比如:

importPackage(Packages.org.springframework.context);
importPackage(Packages.org.springframework.web.context.support);

var sc = reportContext.getHttpServletRequest().getSession().getServletContext();

var spring = WebApplicationContextUtils.getWebApplicationContext(sc);

myPojo = spring.getBean("myDao").findById(params["pojoId"]);
和用于获取的脚本,如:

if(myPojo != null){
       row["title"] = myPojo.getTitle();
       myPojo = null;
       return true;
}
return false;
由于将在运行时填充
,我无法自动获取数据集列,因此我创建了一个具有以下配置的列:name:columntTitle(因为这是用于在获取代码中填充行对象的名称)

之后,我编辑了报告的布局,并将列添加到布局中


我能够确认
spring.getBean(“myDao”).findById(params[“pojoId]”)被执行。但是我的报告没有显示标题。如果我双击报表布局上的列标签,我可以看到表达式是
dataSetRow[“columnTitle”]
对吗?甚至我在获取脚本中使用了row?我在这里遗漏了什么?

那么,什么是
conctractVersion
? 在
open
事件中,它显然没有初始化。 这应该是
myPojo.contractVersion
还是
myPojo.getContractVersion()

另一点:具有列“columnTitle”的DS是否绑定到布局

您还应该以HTML格式或在预览器中运行报告,以检查脚本错误。
不幸的是,在以PDF格式生成报告时,这些都被默默地忽略了…

问题在于使用了两次batik(两个不同的版本),一个依赖于BIRT,另一个依赖于DOCX4J

这个问题很难识别,因为没有呈现PDF文件的日志输出

呈现HTML时,我可以看到一条错误消息,我可以对此进行调查并找到问题


就我的情况而言,我可以从maven POM中删除DocX4j。

很抱歉,错误的获取版本,我刚刚更正了它。我只是把它拖到布局上,应该够了吧?使用
row
变量并将行的键(
columntTitle
在本例中)声明为列输出时,
fetch
的代码是否正确?您是否以HTML格式运行报表并查找以红色显示的Javascript错误?也许有必要创建一个报表变量来存储myPojo,并使用vars[“myPojo”]访问它在代码中,而不仅仅是myPojo.+1作为提示,在呈现PDF时隐藏异常