跳到主要内容

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,用户需要根据此参数判断获取打印需要的所有数据。