ireport报表怎样实现批量打印,请高手帮忙。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ireport报表怎样实现批量打印,请高手帮忙。相关的知识,希望对你有一定的参考价值。
不预览循环批量打印要怎样实现?
参考技术A 将需要批量打印的内容生成的结果集传递给报表模板就可以了,会自动批量打印。不预览循环批量打印要怎样实现?
需要调用打印接口 JasperPrintManager类可以直接实现打印。具体资料你可以参考Api
我用的是printReport 方法。
主要就是先在服务器端生成JasperPrint对象,返回给客户端。
下面代码百度到的,你可以参考。
import java.io.File;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NameNotFoundException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperPrintManager;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.lowagie.text.ExceptionConverter;
import com.sofn.struts.dto.UserInfoDTO;
import com.sofn.struts.op.UserInfo;
import com.sofn.util.UserSessionOperate;
public class ReportViewAction extends Action
(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
public ActionForward execute(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response)
throws Exception
//已编译文件路径和格式
String fp =this.getServlet().getServletContext().getRealPath("/")+ "report\\jasper\\"+ request.getAttribute("rdoc")+ ".jasper";
File reportFile = new File(fp);
// System.out.println("报表路径!!!!!!!"+reportFile);
Map parameters = (Map) request.getAttribute("paras");
byte[] bytes = null;
List list = new ArrayList();
DataSource ds = null;
JasperPrint jasperPrint=null;
//参数传递
UserSessionOperate uso = new UserSessionOperate();
String user = uso.getUser(request);
UserInfo eidr = new UserInfo();
UserInfoDTO eidrdto = null;
String deptname = "物流部门";
String username = "陈云刚";
parameters.put("marker", username);
parameters.put("bumen", deptname);
//数据库连接
try
String source = "java:comp/env/jdbc/posuse";
Context ic = null;
if (ic == null)
ic = new InitialContext();
ds = (DataSource) ic.lookup(source);
if (ds == null)
System.out.println("Reportview----22222!");
catch (NameNotFoundException nfe)
nfe.toString());
catch (Exception ne)
ne.printStackTrace();
//使用数据源
if (request.getAttribute("datasource") != null)
list = (List) request.getAttribute("reportlist");
JRBeanCollectionDataSource jds =new JRBeanCollectionDataSource(list); //使用数据源
//使用SQL查询
try
jasperPrint =JasperFillManager.fillReport(reportFile.getPath(),parameters,ds.getConnection());//填充报表数据生成JasperPrint对象
JasperPrintManager.printReport(jasperPrint, false);//2008-08-25 直接打印,不用预览PDF直接打印 true为弹出打印机选择.false为直接打印.
catch (JRException jre)
//System.out.println("Reportview----JRException88888");
jre.printStackTrace();
catch (ExceptionConverter ec)
ec.getLocalizedMessage());
ec.printStackTrace();
catch (NullPointerException npe)
npe.getLocalizedMessage());
npe.getMessage());
npe.toString());
System.err);
catch (Exception ee)
ee.printStackTrace();
//输出
response.setContentType("application/octet-stream");
ServletOutputStream ouputStream = response.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(ouputStream);
oos.writeObject(jasperPrint);//将JasperPrint对象写入对象输出流中
oos.flush();
oos.close();
ouputStream.flush();
ouputStream.close();
return mapping.findForward("view"); //转向
怎样减少网络丢包率??请高手帮忙!!!
参考技术A 有以下几个可能:一、不排除**宽带提供给你的DNS有问题,所以有时能连上,有时不行。这个问题你要联系客服解决。
二、MTU设置不当也会导致这个情况。大部分网络设备的MTU都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。也会有出现某些网页打不开的情况。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。本机的MTU用超级兔子之类的软件可以改。建议MTU=1488或更小一点的数字。
三、你的网络设备出了故障,工作状态不稳定。可以用替换法逐一替换网卡、路由器、MODEM来排除。
四、有可能你访问的某些网站本身有问题,与上述情况无关。
以上是关于ireport报表怎样实现批量打印,请高手帮忙。的主要内容,如果未能解决你的问题,请参考以下文章