1 将FORM提交到新打开的窗口
function formSubmit(form)
{
var win = window.open("","report","HEIGHT=300,WIDTH=400,scrollbars");
form.target = "report";
form.submit();
}
2 IREPORT 报表
$p{parameter}
$F{field}
将子报表定义为
java.io.inputStream
$P{FileStream}
在导出报表时 加上参数 FileStream
parameters.put("FileStream", new ByteArrayInputStream(report.getReportContent()));
JasperRunManager.runReportToPdf(is,parameters,conn);
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/PDPORTALDB"/>
</bean>
SpringApplicationContextFinder.getApplicationContext().getBean("dataSource");
conn = dateSource.getConnection();
得到 报表二进制数组 byte[]
导出报表
ByteArrayInputStream bi = new ByteArrayInputStream(pdfFile); pdfFile=runReportToPdf
response.setContentType("application/pdf");
response.setHeader("Content-Disposition","inline; filename="+ filenamedisplay);
inline在窗口打开 attachment 保存
ServletOutputStream so = response.getOutputStream();
while ((len = bi.read(bytes)) != -1) {
so.write(bytes, 0, len);
}
保存报表二进制
getFileData()
sqlserver database table :: image
3 ireport 饼图
图表属性->图表数据->细节区域值
键表达式 $F{ORGNAME}
值表达式$F{NUM}
标签表达式$F{ORGNAME}
4 ireport 中文
字体 STSONG 宋体
PDF字体名 STSong-Light (不设该值 导出pdf中文会出现乱码)
PDF编码 UniGB-UCS2-H (Chinese Simplified)
5 form
<html:text property="reportName" maxlength="10" >
<script>
var name = document.forms[0].reportName.value;
</script>
6 javascript:
name = name.trim();
var a = new Array(0);
7 手工用javascript插入新的一行
var paramtable = document.getElementById('ParamTable');
var newNode = paramtable.insertRow(paramtable.getElementsByTagName('tr').length);
var y=newNode.insertCell(0);
var z=newNode.insertCell(1);
y.innerHTML='<input name="paramNames" type="text" value="'+newParamName+'">';
z.innerHTML='<input name="paramKeys" type="text" value="'+newParamkey+'">';
var newParamTR = document.getElementById('newParamTR');
var tds = newParamTR.getElementsByTagName('input');
for(var i=0;i<tds.length-1;i++)
{
tds[i].value = "";
}