报表制作

打印js

$scope.printObserveRecord = function () {
            if ($scope.printObserveRecordShow) {
                var erObservationDetailList = [];
                erObservationDetailList.push($scope.erObservationDetail);
                $scope.printInfoObject = {
                    type: "report",
                    method: "post",
                    appletParameters: {
                        report_url: "api/jasper-prints/emergency-station/pre-er-observe",
                        printer_name: null,
                        is_direct_print: true,
                        is_display: true
                    },
                    reportParameter: {
                        reportFileName: "reports/emergency/erObserveRegister.jasper",
                        parameters: {
                            erObservationDetail: erObservationDetailList,
                            hospitalName: getSysParaConfig("Hosp_Name"),
                            reportMaker: getStaffDict().staffName,
                            diagnosis:$scope.erObservationDetail.observationDetail.diagnosis,
                            observationCause:$scope.erObservationDetail.observationDetail.observationCause,
                            observationTime:$filter(‘date‘)($scope.erObservationDetail.observationDetail.observationTime,‘yyyy-MM-dd HH:mm:ss‘),
                            suggestPrepayment:$scope.erObservationDetail.observationDetail.suggestPrepayment
                        }
                    }
                };
                HrUtils.postMessageToBaseFrame($scope.printInfoObject, "*");
            } else {
                hrDialog.dialog(hrDialog.typeEnum.WARN, {message: "请先保存留观记录!"});
            }
        };

HrUtils.postMessageToBaseFrame($SCOPE.PRINTiNFOoBJECT,"*");

postMessageToBaseFrame: function (data, origin) {//origin参数默认为*,可以不填写
            if (HrStr.isNull(origin)) {
                origin = "*";
            }
            window.parent.top.postMessage(data, origin);
        }

在另一个程序里接收

接收EmergencystationPrintResource.java

package com.heren.his.report.api;

import com.heren.his.report.facade.EmergencystationPrintFacade;
import com.heren.his.report.vo.JasperPrintParamsVo;
import net.sf.jasperreports.engine.JasperPrint;

import javax.inject.Inject;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.io.InputStream;

@Path("emergency-station")
public class EmergencystationPrintResource {
    @Inject
    private EmergencystationPrintFacade emergencystationPrintFacade;

    //留观登记打印
    @POST
    @Path("pre-er-observe")
    @Produces({MediaType.APPLICATION_OCTET_STREAM})
    @Consumes({MediaType.APPLICATION_JSON})
    public JasperPrint getErObserveRegisterPrint(JasperPrintParamsVo parameters) {
        return emergencystationPrintFacade.fillErObserveRegisterPrint(parameters);
    }
}

接收EmergencystationPrintFacade.java

package com.heren.his.report.facade;

import com.heren.his.report.vo.JasperPrintParamsVo;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRMapCollectionDataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static com.heren.his.report.util.ReportUtils.obtainJasperReportByFileName;

public class EmergencystationPrintFacade extends BaseJasperFillFacade {
    private static final Logger LOGGER = LoggerFactory.getLogger(NursestationFillFacade.class);

    /**
     * 留观登记打印
     * @param jasperPrintParamsVo
     * @return
     */
    public JasperPrint fillErObserveRegisterPrint(JasperPrintParamsVo jasperPrintParamsVo){
        LOGGER.debug("填充报表[{}];填充时使用参数:[{}]。", jasperPrintParamsVo.getReportFileName(), jasperPrintParamsVo.getParameters());
        List<Map<String, ?>> erObservationDetail = (List<Map<String, ?>>) jasperPrintParamsVo.getParameters().get("erObservationDetail");
        return hrFillReport(obtainJasperReportByFileName(jasperPrintParamsVo.getReportFileName()), jasperPrintParamsVo.getParameters(), new JRMapCollectionDataSource(erObservationDetail));
    }
}

报表(我用的是Jaspersoft)制作的报表

1:先新建一个erObserveRegister.jrxml

如图所示$P{hospitalName}是js里面蓝色标注的参数

    $F{name}是js里面绿色标注的参数

    蓝色参数是单独的参数,也就是一个string字符串而绿色参数是一个对象,所以他们在报表里面的引用形式就不一样一个是$P一个是$F

如图所示Parameters里面对应的是$P,Fields里对应的是$F Parameters里面的命名一定要和传入的参数名字一致,Fields里面的命名要和传入对象里的参数名字一致

2:调整报表内容格式(因为要打印的格式是pdf格式或者是其他格式,所以要调节内容格式)达到如下效果

要出现如上效果,整齐对照,布局清晰,字体样式带有三角感叹号为止

3:修改ing 框体位置大小修改如下

字体大小位置如下

打印字体设置如下 主要是设置图2红框中的内容(PDF)

                

4:点击如下点击build就可以生成一个.jasper的文件

5:把这两个文件都拷贝到报表项目下,.jrxml文件是为了做以后修改用的,.jasper才是用来打印的报表

时间: 2024-10-13 06:00:30

报表制作的相关文章

VB.net报表制作-《过坎儿秘籍》

这次的重构版机房收费系统报表制作,可以说是费尽周折.最后做出来回头看,觉得很简单.但值得回味的是做不出来的时候那种惆怅纠结,尤其是苦苦搜索到肝肠寸断的而无果的捶胸顿足... 从发现到制作到完成,每一步都是一个"坎儿",这个我们稍后带给大家<过坎儿秘籍>. 其实很早就关注报表了,从网上搜索关于VB.Net制作报表的各种方法,什么使用外部插件.水晶报表和VS自带的ReportViewer都看了看,最后还是考虑到易操作性和兼容性,选择了使用VS2013自带的Report. 参考博

C#机房重构——报表制作

前言 和VB需要引用其他报表软件不同,VS自带报表设计的功能,初次尝试,就感受到了它的强大之处. 报表制作 话不多说,直接报表的制作过程. 1.首先,我们要先制作一个报表的容器.放到我们显示报表的窗体上. 2.然后,添加一个报表. 3.报表添加完成后,我们会看到报表的相关数据. 4.依次添加好数据源和数据集,测试连接成功. 5.成功后如图所示.添加要使用的参数. 6.然后我们就可以在报表工具箱里添加自己所需要的东西,如,表,文本框等.这里的表可以直接引用数据集中内容.点击表里的那个小图标即可.

【C#】报表制作&amp;lt;机房重构&amp;gt;

前言 和VB须要引用其它报表软件不同,VS自带报表设计的功能,初次尝试.就感受到了它的强大之处. 报表制作 话不多说.直接报表的制作过程. 1.首先,我们要先制作一个报表的容器.放到我们显示报表的窗口上. 2.然后,加入一个报表. 3.报表加入完毕后,我们会看到报表的相关数据. 4.依次加入好数据源和数据集,測试连接成功. 5.成功后如图所看到的. 加入要使用的參数. 6.然后我们就能够在报表工具箱里加入自己所须要的东西.如,表.文本框等.这里的表能够直接引用数据集中内容.点击表里的那个小图标就

第二篇:Power BI数据可视化之基于网页数据的报表制作(经典级示例)

前言 报表制作流程的第一步显然是从各个数据源导入数据,Power BI能从很多种数据源导入数据:如Excel,CSV,XML,以及各类数据库(SQL Server,Oracle,My SQL等),两大主流开源平台(Hadoop,Spark)等等.本文篇幅所限,无法一一说明,仅就网页获取数据的方式进行讲解(其他方式大同小异). 然后本文将在Power BI后台工作区(下简称后台区)对获取到的数据集进行塑形.所谓塑形就是确定数据集的列名以及数据类型,还有进行一些基本数据清洗转换工作,以保证Power

机房收费系统(VB.NET)——超详细的报表制作过程

之前做机房收费系统用的报表是Grid++Report,这次VB.NET重构中用到了VisualStudio自带的报表控件.刚开始当然对这块功能很不熟悉,不过探究了一段时间后还是把它做出来了. 下面把在VisualStudio(我用的是VisualStudio2013,如果与您使用的版本不同,过程中如有不符还请考虑实际情况)中制作报表的过程尽可能详细地记录下来,供初学者学习参考. 做事要有全局观,先看一下成品,做好的报表如下图: 其实能够达到这样的效果需要做两方面的工作:添加报表控件ReportV

Chart.js报表制作

需要引入Chart.js <%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE HTML> <html> <head> <title>报表</title> <script src="js/Chart.js"></script> </head> <body> <l

汽车4S店经验指标完成情况报表制作分享

集团公司一般为了加强下属的经营管理,以及项经营指标完情况,需要制定一些报表.我们平时也经常遇到这种情况,而这些报表要包括什么内容呢?该怎么制作呢?用什么制作呢?今天小编就以4s店为例,分享给大家一个报表开发案例,希望大家看完以后也能很方便的制作出报表. 开发概要说明 1.经营指标:精装台次,维修台次,按揭台次,保险台次,续保台次,新车产值,精装产值,边际产值,息税前利润,息税后利润,净利润,销售总毛利,服务总毛利,工资,广宣,考核费用,营业费用,财务费用 2.数据分类:全年预算,月度预算,每月实

【机房重构】——报表制作

这次的机房收费系统加入了很多自己关于思考,上一次在报表的时候,关于报表的制作,VB并不支持.插入了在报表软件中制作好的报表.关于VS支持报表功能.下面来讲解一下我的结账当实现过程. 第一步:建立新的窗体,在其中插入盛放报表的容器 第二步:正式开始制作报表. 第三步:为报表添加数据集. 第四步:其实从这里开始有些类似于DataGridView显示数据,中的连接数据库.在前面讲解过,在此不再赘述. 第五步:手动制作报表,向报表中添加数据. 第六步:将我们前面的容器和报表连接起来,为他添加报表. 第七

报表制作1(传入对象和其他参数)

转自:http://www.cnblogs.com/ms-grf/p/6755581.html 打印js $scope.printObserveRecord = function () { if ($scope.printObserveRecordShow) { var erObservationDetailList = []; erObservationDetailList.push($scope.erObservationDetail); $scope.printInfoObject = {

水晶报表制作实例

水晶报表貌似是比较"古老"的报表技术了,它是由SAP公司开发的报表产品,通过安装开发包可以在VS中集成Crystall Reports设计器.通过可视化的设计和操作,可以完成报表的制作.正好最近有空帮朋友一个小忙,他也提到了使用水晶报表技术完成报表的批量打印和导出.N年不用水晶报表了,正好练练手. 开发工具我们选用目前主流的VS2010旗舰版.VS2010默认是不集成水晶报表的,需要安装开发包CRforVS_13_0.exe.这里我提供一个下载地址,方便大家下载安装. http://y