📄 pieproducer.java
字号:
package sample.integration.chart.combine;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.jfree.data.general.DefaultPieDataset;
import com.bstek.dorado.common.DoradoContext;
import com.bstek.dorado.data.PagingHelper;
import com.bstek.dorado.data.db.DBStatement;
import com.bstek.dorado.utils.variant.VariantSet;
import de.laures.cewolf.DatasetProduceException;
import de.laures.cewolf.DatasetProducer;
import de.laures.cewolf.links.PieSectionLinkGenerator;
public class PieProducer
implements DatasetProducer, PieSectionLinkGenerator {
public String getProducerId() {
return null;
}
public boolean hasExpired(Map params, Date since) {
return true;
}
public Object produceDataset(Map params)
throws DatasetProduceException {
DefaultPieDataset pie = new DefaultPieDataset();
DoradoContext context = DoradoContext.getContext();
String pageIndex = context.getParameter("pageIndex");
String pageSize = context.getParameter("pageSize");
if (pageIndex != null && pageSize != null) {
DBStatement stmt = new DBStatement();
stmt.setDataSource("doradosample");
List result = new ArrayList();
List degreeResult = new ArrayList();
String sql = "select count(*) as c from employee";
stmt.setSql(sql);
PagingHelper page = new PagingHelper();
try {
VariantSet vs = stmt.query();
int recordCount = vs.getInt("c");
page.setPageIndex(Integer.parseInt(pageIndex));
page.setPageSize(Integer.parseInt(pageSize));
page.setTotalRow(recordCount);
sql = "select * from employee";
stmt.setSql(sql);
List list = stmt.queryForList();
for (int i = page.getFromIndex(); i < page.getFromIndex()
+ page.getPageSize(); i++) {
if (i > list.size() - 1) {
break;
}
VariantSet variantSet = (VariantSet)list.get(i);
String degree = variantSet.getString("degree");
if (!degreeResult.contains(degree)) {
degreeResult.add(degree);
}
result.add(variantSet);
}
}
catch (Exception e) {
e.printStackTrace();
throw new IllegalArgumentException("数据处理异常.");
}
finally {
stmt.close();
}
for (int i = 0; i < degreeResult.size(); i++) {
String degree = (String)degreeResult.get(i);
int count = 0;
for (int j = 0; j < result.size(); j++) {
VariantSet vs = (VariantSet)result.get(j);
String d = (String)vs.getString("degree");
if (d.equals(degree)) {
count++;
}
pie.setValue(degree + "学历员工数", count);
}
}
}
return pie;
}
public String generateLink(Object dataset, Object category) {
DefaultPieDataset pie = (DefaultPieDataset)dataset;
String value = pie.getValue(category.toString()).toString();
StringBuffer sb = new StringBuffer();
sb.append("javascript:alert('");
sb.append("" + category + "=" + value + "");
sb.append("');");
return sb.toString();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -