简单-报表取数插件
@Override
public DataSet query(ReportQueryParam queryParam, Object o) throws Throwable {
// 获取过滤条件
FilterInfo filterInfo = queryParam.getFilter();
ArrayList<QFilter> qFilters = new ArrayList<>();
List<FilterItemInfo> filterItemInfos=filterInfo.getFilterItems();
for(FilterItemInfo filterItemInfo : filterItemInfos) {
String propName = filterItemInfo.getPropName();
String colName = propName;
if(propName.equals("vs52_customenumfiltercolu")){
colName = "entryentity.vs52_textfield1";
}
QFilter qf=new QFilter(colName,filterItemInfo.getCompareType(),filterItemInfo.getValue());
qFilters.add(qf);
}
// 查询成绩单
DataSet dataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "vs52_cjtj",
"entryentity.vs52_textfield as Name, entryentity.vs52_textfield1 as km, entryentity.vs52_decimalfield as cj",
qFilters.toArray(new QFilter[qFilters.size()]), null);
//根据姓名 科目 分组
GroupbyDataSet dataSetGroup=dataSet.groupBy(new String[]{"Name","km"});
//成绩求和
DataSet dataSet2=dataSetGroup.sum("cj").finish(); //字段和
return dataSet2;
}
//构建列名
@Override
public List<AbstractReportColumn> getColumns(List<AbstractReportColumn> columns) throws Throwable {
//columns.add(createReportColumn("billno", "text", "单据编号"));
columns.add(createReportColumn("Name", "text", "姓名"));
columns.add(createReportColumn("km", "text", "科目"));
columns.add(createReportColumn("cj", "text", "成绩"));
return columns;
}
public ReportColumn createReportColumn(String fieldKey, String fieldType, String caption) {
ReportColumn column = new ReportColumn();
column.setFieldKey(fieldKey);
column.setFieldType(fieldType);
column.setCaption(new LocaleString(caption));
return column;
}