我在birt报告中非常新,为我的问题提供适当的解决方案。我正在使用birt工具生成报告(.pdf),其中用户通过复选框选择员工并生成该员工的报告。现在,问题是获取员工数据的函数getemployeeData() 即使我选择了一名员工,也要多次打电话,我努力但没有得到适当的解决方案。 我正在使用下面的代码描述我的问题。
多次调用的脚本功能
count=0;
objBIRTController = contractandInvoice.model.BIRTConnection();
month=params["monthId"].value;
year=params["year"].value;
empId=params["empId"].value;
listMainData= objBIRTController.**getemployeeData**(month,year,empId);
Here getemployeeData() is calling multiple times.
在fecth 中迭代listMainData数据。
if(count < listMainData.size()){
row["empName"] = listMainData.get(count).getEmpName();
row["DOJ"] = listMainData.get(count).getDOJ();
row["empCode"] = listMainData.get(count).getEmpCode();
count++;
return true;
}
返回false;
BirtConnection.java
public List<EmployeeDataVO> getemployeeData(String monthId1,
String yearId1, String empId1) {
In this method I am retriving list which contains the employee data.
}
答案 0 :(得分:1)
假设第一个脚本是&#34;打开&#34;底层脚本数据集的方法,在报表执行期间调用此数据集时,会触发该数据集的次数。例如:
如果使用此数据集的表嵌套在外表中,&#34;打开&#34;将为外部表的每一行调用方法。
如果我们通过将每个字段从控制面板逐个拖动到网格上来将数据集字段插入到网格中(这将是设计报告的一种非常非常糟糕的方式),&#34;打开&#34 ;方法将针对每个数据字段触发 。
为了更好地理解:创建一个新的空白报告,将3个报告参数和数据集复制到其中,并通过将整个数据集从控制面板拖到报告正文中来添加新表。然后运行这个新报告,你会发现&#34; getemployeeData&#34;仅调用一次,因为数据集仅绑定到一个报表元素(表)。
如果您需要更多解释,请附上.rptdesign示例。