首页 > 游戏攻略 >  > 

jasper打印 jasper打印添加条件

ja用ireport 打印报表,求助大神

将需要批量打印的内容生成的结果集传递给报表模板就可以了,会自动批量打印。

jasper打印 jasper打印添加条件jasper打印 jasper打印添加条件


jasper打印 jasper打印添加条件


不预览循环批量打印要怎样实现?

需要调用打印接口 JasperPrintMar类可以直接实现打印。具体资料你可以参考Api

我用的是printReport 方法。

主要就是先在端生成JasperPrint对象,返回给客户端。

下面代码百度到的,你可以参考。

import ja.io.File;

import ja.io.ObjectOutputStream;

import ja.util.ArrayList;

import ja.util.List;

import ja.util.Map;

import jax.naming.Context;

import jax.naming.InitialContext;

import jax.naming.NameNotFoundException;

import jax.servlet.ServletOutputStream;

import jax.servlet..HttpServletRequest;

import jax.servlet..HttpServletResponse;

import jax.sql.DataSource;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JasperFillMar;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.engine.JasperPrintMar;

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, jax.servlet..HttpServletRequest, jax.servlet..HttpServletResponse)

public ActionForward execute(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response)

throws Exception {

//已编译文件路径和格式

String fp =this.getServlet().getServletContext().getRealPath("/")+ "reportjasper"+ 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 = "ja:comp/env/jdbc/use";

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 =JasperFillMar.fillReport(reportFile.getPath(),parameters,ds.getConnection());//填充报表数据生成JasperPrint对象

JasperPrintMar.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"); //转向

}}

jasper怎么设置主报表循环打印完再打印子报表

百度知道

怎样实现JasperReport循环打印 or 多表打印

10我用的是FineReport,比较方便,jasperreport不太了解。下面是百度的,希望对你有帮助。批量导出思路如下:1、数据库里面取出数据2、调用项目工具类中生成报表打印数据的方法(每张表数据都要放到一个list中)ja 代码String path = this.getClass().getResource("/").getPath();path = path.substring(1,path.lastIndexOf("classes"));String fileName = path+"jasperreport"+""+reportFileName+".jasper";System.out.println("_________ FileName:"+fileName);//装载jasper文件applicationFile reportFile = new File(fileName);Map map = new HashMap();JasperReport jasperReport = null;DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");String s = format1.format(new Date());//取得JasperPrint 的for (Object e : list) {List tempList = new ArrayList();tempList.add((Evaluate)e);jasperPrint = JasperFillMar.fillReport(reportFile.getPath(),null,new JRBeanCollectionDataSource(tempList));list2.add(jasperPrint);}//生成报表数据并填入OutputStreamJRPdfExporter exporter=new JRPdfExporter ();ServletOutputStream output = null;try {output = getResponse().getOutputStream();getResponse().setHeader("Content-disition","attachment; filename="+exportFileName+s+".pdf");//exportFileName导出文件名字 s 表示年月日时分秒exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, list2);exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,output);// exporter.setParameter(JRExporterParameter.JASPER_PRINT_LIST, list);exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8");exporter.exportReport();} catch (Exception e) {e.printStackTrace();}

Jasperreports求助~ 如何控制打印份数

这个貌似统计不了,能否做个按钮叫打印,点击后JasperPrintMar.printReport(jasperPrint, false);这样就不弹出打印机的窗口,他就选择不了份数,你捕捉按钮份数累加,这样行吗?打印起来可能比较麻烦。

再一个根据他的需求,如果要一次打印多分是否可以在一张表里实现一次打多个单据。

这个在finereport可以轻松进行打印设置的,不过jasperreport我就不熟悉了。

为什么非要控制打印份数?

在打印设置里面设置不更好?

也循环去打印,不知道是否可行.

我也遇到过这样的问题啊,怎么办呢

??说清楚些

如何在web上打印Jasperreport报表文件,打印制作出来的,jasper文件

咱没用Jasperreport直用finereport咱打印设置摘参考参考总说finereport打印块做错管产品文档

页面设置:页面设置所设横纵向、纸张、页边距等报表客户端浏览器预览效与打印效关页面设置属性参考页面设置文档;

打印项:打印机项所设横纵向、纸张决定终打印效

FineReportApplet打印与PDF打印支持页面设置传入打印项即打印打印机按照页面设置进行打印Flash打印支持页面设置传递给打印机项必须手设置纸张及向

怎样实现JasperReport循环打印 or 多表打印

jasper 和JRXML 都是jasperreport使用的模板文件格式; JRXML 是xml源文件格式,是可视化的,可修改代码的格式; jasper是JRXML 模板文件编译后形成的; 你用ireport打开JRXML 或jasper ;修改后,直接点那个不适用数据库预览功能

ireport jasper 做两个数据库表连接的报表打印

这种报表我是用FineReport实现的。报表的上半部分从A表中取数据,下半部分从B表中取数据,并让A.主键=B.主键。例如你这张报表,就是select customerid,name,address, from A;select customerid,productid,amount,money from B where A.customerid=B.customerid。这样,两张表就关联了起来。

依次绑定数据列后,将表中单元格父格都设置为上表中cunstomerid所在的单元格,就像我图中的C3。并将下半部分的表中customerid这个单元格隐藏,这样预览时就看不到了。

,将表结束后的行空格的父格同样设为C3,并将其设置为行后分页,这样预览时,就是一张纸只显示一张表内容了。

楼主可以在jasper里面试一下,希望可以帮到你。

版权声明:本文内容由互联网用户自发贡献。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 836084111@qq.com,本站将立刻删除。