JavaBean数据集
此文仅给开发看
支持版本Version 1.3.2+
1、配置,添加数据集
点击“数据集管理 ->javaBean数据集”,即可计入javaBean数据集添加管理界面,如图8.32;
图8.31
图8.32
类型 | 值 |
---|---|
spring (新的已改成spring-key) | 后台java类添加注解@Component,对应的值填写注解的value |
reference(新的已改成java-class) | 后台java类的类路径 |
2、自定义参数
javabean数据集的参数需要自己添加,并且设置默认值,预览的时候可以在预览地址后拼接参数替换默认值
3、java类的定义:实现接口IDataSetFactory
import org.jeecg.modules.jmreport.desreport.model.JmPage;
import org.jeecg.modules.jmreport.api.data.IDataSetFactory;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component("testRpSpringBean")
public class TestRpSpringBean implements IDataSetFactory {
/**
* 不分页时返回list
* @param param 参数 包括浏览器地址栏 和 查询条件
* @return
*/
@Override
public List<Map<String, Object>> createData(Map<String, Object> param) {
List<Map<String, Object>> ls = new ArrayList<>();
Map<String, Object> obj2 = new HashMap<>();
obj2.put("name", "张三");
obj2.put("age", "14");
ls.add(obj2);
Map<String, Object> obj3 = new HashMap<>();
obj3.put("name", "李四");
obj3.put("age", "15");
ls.add(obj3);
Map<String, Object> obj4 = new HashMap<>();
obj4.put("name", "王五");
obj4.put("age", "16");
ls.add(obj4);
return ls;
}
/**
* 分页时返回 JmPage 并且参数param里会传入pageNo, pageSize
* @param param 参数 包括浏览器地址栏 和 查询条件
* @return
*/
@Override
public JmPage createPageData(Map<String, Object> param) {
JmPage page = new JmPage();
List<Map<String, Object>> ls = new ArrayList<>();
int pageSize = Integer.parseInt(param.get("pageSize").toString());
Map<String, Object> obj2 = new HashMap<>();
obj2.put("name", "张三");
obj2.put("age", "14");
obj2.put("sex", "1");
ls.add(obj2);
Map<String, Object> obj3 = new HashMap<>();
obj3.put("name", "李四");
obj3.put("age", "15");
obj2.put("sex", "2");
ls.add(obj3);
Map<String, Object> obj4 = new HashMap<>();
obj4.put("name", "王五");
obj4.put("age", "16");
obj2.put("sex", "2");
ls.add(obj4);
//以下参数均需设置
page.setPageSize(pageSize);
page.setTotal(20);
page.setRecords(ls);
return page;
}
}
注:上述两个方法createPageData
(分页用),createData
(不分页用)都会接收一个map参数param
,该参数包含的值有两种,一种是查询条件传递的值,一种是添加数据集时配置的参数。
4、如何在类中调用service
对于spring bean 即添加了@Component注解的类,可以通过@Autowired
注解引入service
对于没有添加spring注解的类,可以调用JimuSpringContextUtils.getBean(String name)
方法获取具体的service
5、打印全部
param中会传入一个参数 printAll
,用户需要根据此参数判断获取打印需要的所有数据。