我想调用 JasperFillManager.fillReport(filePath+".jasper", param, con); 其中 param 应该接受类型 Map。有什么解决办法
问问题
14892 次
如果您有 aHashMap<String,Integer>
并且需要将其转换为 a HashMap<String,Object>
,那么以下应该可以工作:
HashMap<String, Object> objParams = new HashMap<String, Object>();
for (String key : intParams.keyValues()) {
Integer intValue = intParams.get(key);
objParams.put(key, intValue);
}
你intParams
的HashMap<String,Integer>
.
那里可能有一些错别字,因为这纯粹是即兴表演。
然后你可以通过objParams
to fillReport
。
4 回答
2
只需使用将另一个地图作为参数的构造函数:
Map<String, Object> map2 = new HashMap<String, Object>(map);
看这个例子:
import java.util.HashMap;
import java.util.Map;
public class Test5 {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("1", 1);
Map<String, Object> map2 = new HashMap<String, Object>(map);
// etc...
}
}
于 2012-05-03T19:21:58.457 回答
1
如果您有 aHashMap<String,Integer>
并且需要将其转换为 a HashMap<String,Object>
,那么以下应该可以工作:
HashMap<String, Object> objParams = new HashMap<String, Object>();
for (String key : intParams.keyValues()) {
Integer intValue = intParams.get(key);
objParams.put(key, intValue);
}
你intParams
的HashMap<String,Integer>
.
那里可能有一些错别字,因为这纯粹是即兴表演。
然后你可以通过objParams
to fillReport
。
于 2012-04-30T23:26:46.937 回答
0
如果在 HashMap 中不指定值类型,Java 会隐式地给它一个对象类型。在这种情况下,您只需将原始地图声明为
HashMap objParams = new HashMap();
于 2012-05-01T03:50:30.803 回答
0
你的 .java 文件
String url="jdbc:mysql://127.0.0.1:3306/database";
String username="root";
String password="";
String database="database";
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection(url, username, password);
JasperReport jc=JasperCompileManager.compileReport("F:\\pro\\report.jrxml"); //give your report.jrxml file path
//create hashmap to send data to report.key should same to report parameter
HashMap para = new HashMap();
para .put("name", "chamod");
para .put("email", "chamodck@gmail.com");
JasperPrint print = JasperFillManager.fillReport(jc,para,new JREmptyDataSource());
JasperViewer.viewReport(print);
con.close();
您的 report.jrxml 文件文本字段应该是这样的
<textFieldExpression class="java.lang.String"><![CDATA[$P{name}]]></textFieldExpression>
<textFieldExpression class="java.lang.String"><![CDATA[$P{email}]]></textFieldExpression>
于 2015-12-07T19:31:26.657 回答