|
|
|
// 程序网络报表中获取request中的值
|
|
|
|
package com.fr.demo;
|
|
|
|
|
|
|
|
import com.fr.base.Parameter;
|
|
|
|
import com.fr.general.ModuleContext;
|
|
|
|
import com.fr.io.TemplateWorkBookIO;
|
|
|
|
import com.fr.main.TemplateWorkBook;
|
|
|
|
import com.fr.report.module.EngineModule;
|
|
|
|
import com.fr.web.core.Reportlet;
|
|
|
|
import com.fr.web.request.ReportletRequest;
|
|
|
|
import com.fr.workspace.simple.SimpleWork;
|
|
|
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
|
|
public class URLParameterDemo extends Reportlet {
|
|
|
|
public TemplateWorkBook createReport(ReportletRequest reportletRequest) {
|
|
|
|
|
|
|
|
String envPath = "D:\\FineReport_8.0\\WebReport\\WEB-INF";
|
|
|
|
SimpleWork.checkIn(envPath);
|
|
|
|
ModuleContext.startModule(EngineModule.class.getName());
|
|
|
|
// 获取外部传来的参数
|
|
|
|
TemplateWorkBook wbTpl = null;
|
|
|
|
String countryValue = reportletRequest.getParameter("地区").toString();
|
|
|
|
try {
|
|
|
|
wbTpl = TemplateWorkBookIO.readTemplateWorkBook("\\doc\\Primary\\Parameter\\Parameter.cpt");
|
|
|
|
// 提取报表参数组,由于原模板只有country一个参数,因此直接取index为0的参数,并将外部传入的值赋给该参数
|
|
|
|
Parameter[] ps = wbTpl.getParameters();
|
|
|
|
ps[0].setValue(countryValue);
|
|
|
|
// 原模板定义有参数界面,参数已经从外部获得,去掉参数页面
|
|
|
|
// 若您想保留参数界面,则将模板设置为不延迟报表展示,再传入参数后直接根据参数值显示结果,否则还需要再次点击查询按钮
|
|
|
|
wbTpl.getReportParameterAttr().setParameterUI(null);
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
} finally {
|
|
|
|
SimpleWork.checkOut();
|
|
|
|
}
|
|
|
|
return wbTpl;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void setParameterMap(Map arg0) {
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void setTplPath(String arg0) {
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|