61阅读

表达方式有几种-试水的几种方式

发布时间:2018-04-25 所属栏目:如何截屏

一 : 试水的几种方式

  以为指头伸进去;就略知一二;可举出颠扑不破的佐证;叫做一叶知秋;结果知秋的树叶躲了;季节变得不伦不类;全然不知;放一只蚂蚁在水面游走;算是心里有数;乡下见过的斗碗;一碗下去就是海量;尺寸自己拿;深是一种感觉;浅也是;看见一艘船被鱼吞掉;而鱼不见了;彻彻底底不见了;只好离水远点;依靠想象测量水的深度;后来听说那鱼搁浅在岸上;成了蚂蚁的佳肴;水的深浅是永远的谜;试与不试一样;解与不解一样;所有的努力都是为难自己;高估自己;没有人能够站出来说;那水,可以一眼望穿。

 

二 : iReport+jasperreport创建子表的几种方式(2)

昨天给大家讲了一种方式,今天换一种方式,就是说,将主报表的某一参数直接传递给子报表作为数据源,当然,这个参数是包含子报表的,这个主要是基于Web开发,也是从网友那边拿来的,结合自己的经验再做一遍。

首先创建我们需要的JavaBean

ProvinceBean.java

package test;import java.util.ArrayList;public class ProvinceBean{private String provinceName;private ArrayList<CityBean> cities;public String getProvinceName(){return provinceName;}public void setProvinceName(String provinceName){this.provinceName = provinceName;}public ArrayList<CityBean> getCities(){return cities;}public void setCities(ArrayList<CityBean> cities){this.cities = cities;}}
CityBean,java
package test;public class CityBean{private String cityName;public String getCityName(){return cityName;}public void setCityName(String cityName){this.cityName = cityName;}}
注意一下,这里Province是主表的元素其中他包含了cityBean,那么显然CityBean要作为子表之中的元素

下面创建Servlet类这个类我“本地化”一下,改动了一点

package test;

import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sun.net.ssl.internal.ssl.Debug;

import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.util.JRLoader;

public class ChildReportServlet extends HttpServlet
{

private static final long serialVersionUID = -1233414483047719876L;

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
this.doPost(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
try
{
String root_path = this.getServletContext().getRealPath("/");

root_path = root_path.replace(&#39;\\&#39;, &#39;/&#39;);
String reportFilePath = root_path + "ireport/parent_sub.jasper";
//Debug.println(reportFilePath, root_path);
JRDataSource dataSource = this.createDataSource();

Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("SUBREPORT_DIR", root_path + "ireport/");
JasperReport report = (JasperReport)JRLoader.loadObject(reportFilePath);
JasperPrint jasperPrint = JasperFillManager.fillReport(report, parameters, dataSource);

OutputStream ouputStream = resp.getOutputStream();
resp.setContentType("application/pdf");
resp.setCharacterEncoding("UTF-8");
resp.setHeader("Content-Disposition", "attachment; filename=\"" +URLEncoder.encode("PDF报表", "UTF-8")+ ".pdf\"");

// 使用JRPdfExproter导出器导出pdf
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
exporter.exportReport();


ouputStream.close();

}catch(Exception ex)
{
ex.printStackTrace();
}


}

private JRDataSource createDataSource()
{
//生成测试数据
ArrayList<ProvinceBean> provinces = new ArrayList<ProvinceBean>();

ProvinceBean province = new ProvinceBean();
province.setProvinceName("山东");

ArrayList<CityBean> cities = new ArrayList<CityBean>();
CityBean city = new CityBean();
city.setCityName("济南");
cities.add(city);
city = new CityBean();
city.setCityName("青岛");
cities.add(city);
city = new CityBean();
city.setCityName("潍坊");
cities.add(city);

province.setCities(cities);
provinces.add(province);

province = new ProvinceBean();
province.setProvinceName("江苏");

cities = new ArrayList<CityBean>();
city = new CityBean();
city.setCityName("南京");
cities.add(city);
city = new CityBean();
city.setCityName("无锡");
cities.add(city);
city = new CityBean();
city.setCityName("苏州");
cities.add(city);

province.setCities(cities);
provinces.add(province);

return new JRBeanCollectionDataSource(provinces);
}jasperreport iReport+jasperreport创建子表的几种方式(2)

}

我的文件列表

jasperreport iReport+jasperreport创建子表的几种方式(2)

注意一下,要把jasperreport的jar文件拷贝到lib文件夹下,不然出错找度娘或者问我好了

下面用iReport制作我们需要的报表模板

jasperreport iReport+jasperreport创建子表的几种方式(2)这两个

打开iReport新建一个报表,数据源的话可以选择空数据源

在主表左侧属性Fields中新建字段;从上面我们创建的Bean中可以知道有两个字段需要建立一个是provinceName一个是cities

创建时候要注意cities的数据类型是listjasperreport iReport+jasperreport创建子表的几种方式(2)

之后创建子表,这个一路next下去就OK了,将其放到任意一个bands中,如果没有特殊的偏好设置,在主表中点击子表它的属性应该会在右边栏显示,上上次的文章我已经说过要注意Connection type属性,一个是不用,一个是和父表相同,还有一个use datasource。。。。这是这次我们要使用的,选择它然后在下面Data Source Exception 中填入

new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{cities})

jasperreport iReport+jasperreport创建子表的几种方式(2)

如下图:$F{cities}就是我们要传递给字表的数据,只注重技术,不考虑美观,做的就随意了些

jasperreport iReport+jasperreport创建子表的几种方式(2)

下面切换到子表的设计界面,把那些没有用到的bands删掉或者高度设为0

不知道你还记不记得上面我们创建的CityBean,它包含一个属性参数,而我们传给子表的是一个City列表,那么在子表中我们要把它提取出来

所以,在子表的fields中新建字段cityName这个字段属性要和CityBean里面的完全一样,不然就会出错的。

之后点击preview,当然是在主表中点击,会跳出些让输入什么的,不用管它,我们只要是想让iReport编译我们的文件形成后缀名为.jasper,也借此检查一下是否有错。

编译之后把主表和子表拷贝到之前说的那位置,运行服务器

jasperreport iReport+jasperreport创建子表的几种方式(2)

打开:

jasperreport iReport+jasperreport创建子表的几种方式(2)

需要源码请留邮箱,欢迎来探讨

jasperreport iReport+jasperreport创建子表的几种方式(2)(2)

三 : iPhone怎么截屏?截屏的方式有几种?

在和朋友聊天或者是看到好笑的段子都希望把美好的瞬间留下来。所以利用手机截屏也就是非常有使用的操作。
常规操作
一般来说大家使用的操作就是开机键+Home键。同时按下开机键跟Home键,看到屏幕一闪就说明已经截图完毕。

利用Assistive?Touch截图
开启Assistive?Touch之后就可以在桌面上看到一个白色小点。点击白色小点——》设备——》更多——》屏幕快照


这种方法可以让用户不用去使用开机键以及Home键,减少这两个按键的使用次数。
利用同步助手截图

下载同步助手。可以直接访问同步官网,或者在百度首页搜索“同步助手”,在百度软件中心下载。




将手机连接电脑,打开同步助手。将屏幕的画面调整到要截屏的画面,点击截屏按钮。

点击保存就可以将我们需要的画面给保存下来。

本文标题:表达方式有几种-试水的几种方式
本文地址: http://www.61k.com/1151130.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1