11.1 打印功能

概述

UniEAP Report为用户提供了一套完善的打印服务,支持多种打印方式,并提供多种打印途径。本文档将对UniEAP Report在应用中遇到的有关打印需求和报表打印功能特点进行总结,着重描述在报表打印时的注意事项,指导用户使用报表打印功能。文档内容仅适用于UniEAP Report的打印功能范畴。

功能介绍

打印属性

页面大小

UniEAP Report提供几种常见纸张类型。如果没有符合用户期望的纸张大小,用户可以采用自定义纸张大小的方式,自定义纸张的单位是“毫米”,精确到“0.1”。如需要更高的精确度,需要手动修改报表定义文件的代码。

【注意】自定义的纸张大小必须小于打印机能支持的最大纸张,否则会出现打印错位的情况。

页眉页脚

页眉或页脚都分为左、中、右三部分,每一部分可以添加文字、公式或图片等。

  • 使用前提
    使用页眉页脚前,需要选中页眉页脚的“显示”属性。该属性的默认值为不显示,在这种状态下,对页眉页脚的所有设置均不会保存并生效。
  • 相关属性

    • 页面显示:对页眉页脚的显示状态进行控制。如:第一页显示、奇数页显示、所有页显示等。
    • 边距:指页眉页脚内容距离页面边缘的距离。如果页眉页脚的边距值大于对应的页边距,内容将不会显示。
    • 显示分割线:在页眉文字的下方、页脚文字的上方各显示一条横线。
    • 字体、背景色:编辑页眉页脚的文字以及背景。
    • 插入图片:插入方式与普通单元格的图片操作一致。

    【注意】在打印时,页眉页脚插入的图片会按照原尺寸显示。

  • 相关公式
    除了可以使用普通单元格的公式,UniEAP Report还提供一些仅使用于页眉页脚的公式,主要有:

    • 页码总数:&[PAGE_COUNT]。
    • 页码编号:&[PAGE_NO]。

    【注意】分段报表的页码总数无法获得,仅可以得到第一段报表的页数。

    【例】“第几页”的表示方法为:=concat('第','&[PAGE_NO]','页') ,还可以直接写为 第&[PAGE_NO]页

打印控制

UniEAP Report支持对每个单元格进行打印控制,设置相关属性的位置在格式设置-其他中,类型包括:

  • 不打印
    不打印单元格所有相关信息,包括边框。
  • 打印
    打印单元格所有信息。
  • 仅打印内容
    仅打印单元格的文字内容。
  • 仅打印样式
    打印除文字以外的单元格信息,如边框、背景色等。

    另外,UniEAP Report还可以根据用户的权限打印报表。设置方法为:

  • 在报表设计器中,选择某单元格的“文本属性”中“公式”tab页,设置“可打印”属性:true为打印,false为不打印。
  • 根据使用报表自带的用户全局变量UID,通过报表公式的组合,对“可打印”属性进行设置,实现权限的控制。

    【例】当登陆用户的id为1234时,打印某单元格。 可以在指定单元格的“可打印“属性中写入公式: =case($UID=’1234’,true,false)。

打印方式

分栏打印

将报表制作成分栏报表,然后打印。UniEAP Report支持两种分栏方式:按行分栏、按页分栏。

套打

在制作报表的过程中,加入基准图片。依据基准图片指定报表打印位置,配合单元格打印控制属性使用,参见插入模块-套打章节。

【注意】选定的基准图片需要是原比例的。否则报表在“套打”时会出现误差。当误差情况不可避免时,可以对报表内容的位置做部分调整,来满足打印后的效果。

缩打

在报表设计器中,用户可以定义报表缩印属性,通过设置缩印方式实现对报表的缩打需求,缩印方式包括按用户指定比例、适合整页、适合宽度、适合高度。打印时,报表将按预定的缩印方式被缩打。

横纵向打印

在报表设计器中,用户可以定义报表打印方向,包括纵向打印(默认)和横向打印。

  • 纵向打印
    指查看报表方向与打印机进纸方向平行。
  • 横向打印
    指查看报表方向与打印机进纸方向垂直。

    【注意】在横向打印时,设置报表纸张大小,宽和高是以查看报表方向为基准,与打印机进纸方向无关。 从纵向打印切换到横向打印时,报表宽度值和高度值会自动交换,一般宽值大于高值。

按分页符打印

报表中的分页符有“格上分页”和“格下分页”两种,在打印过程中,会按报表分页符的位置进行分页打印。

运行期调整打印设置

以上描述的打印设置,都是在开发期,通过报表设计器中的页面设置的,而在实际的业务打印过程中,经常会遇到一些特殊情况,比如:

  1. 报表是横向扩展的,表格中数据填充总宽度实际超过了一页,而我只想缩小一下,打印在一页上。
  2. 报表是横向、纵向扩展的,表格中数据填充总宽度、总高度都超过了一页,而报表的页面设置是A4纸,而我的打印机支持A3、A4纸打印,我能否更换成A3纸,这样一页就可以打印出来了

    以上这两种场景,都可以实现,在报表打印预览页面,提供了‘页面设置’按钮,在这里可以对页面进行重新设置,如下图:

1

这里的设置后,点击‘确定’按钮,预览页面会按照页面设置重新生成预览,再次点击‘打印’按钮,就会按照新的打印设置进行打印了。

打印途径

客户端预览打印

UniEAP Report的客户端打印分为两个打印控件,一是Reportprint打印控件,二是是Lodop打印控件。首先预览打印效果,然后用户可以进行修改部分打印设置、选择打印机等操作,最后提交任务并打印。

一键打印

UniEAP Report的一键打印同样分为三个打印控件,Reportprint和Lodop。Reportprint和Lodop打印功能可以在客户端根据默认打印机设置进行打印,不会出现预览和打印机选择界面,直接打印报表。

直接打印实现方法(Web不显示报表)

函数说明:
打印报表的js函数

函数语法:
reportPrint(param,type)

参数说明:

名称 数据类型 说明 是否必需
param 对象 报表参数的集合
type 字符串 取值为:”applet”,”lodop”,”flex”三种打印方式,默认为applet

示例:

var param={};
param.reportId="089ac167-785c-4b39-a864-ec710b5a94";//报表id
    param.newReport="true";
    param.name=unieap.byId("s_name").getValue();//报表参数 name
    //打印相关参数
    param.isResultant="false";
    param.silent="no";
    param.setPageSetup="false";    
reportPrint(param,”applet”);// lodop/flex

打印参数说明:

  • reportId:需要打印的报表ID。
  • isResultant: 标识是否是报表结果的打印
  • setPageSetup: 标识是否出现applet打印设置界面
  • silent (yes 或 no) : 标识是否为一键打印,如不写则为no

同时打印多张报表

目前只适用于lodop打印。

同时打印定义不同的多张报表时,只需将多个报表id按格式输入就可以,例如:

var param={};

    param.batch="true";//设置为批量导出
    var reports=[];//储存报表相关信息
    var report1={};//储存第一个报表相关信息
    report1.reportId="99338f12-bb0d-49ea-b3bc-0b310ac0e9a0";//第一个报表的报表id
    report1.params={//第一个报表的参数
            'name':'刘先生',
            'sex':'男'
    }
    reports.push(report1);
    var report2={};//储存第二个报表相关信息
    report2.reportId="99338f12-bb0d-49ea-b3bc-0b310ac0e9a0";//第二个报表的报表id
    report2.params={//第二个报表的参数
            'name':'余小姐',
            'sex':'女'
    }
    reports.push(report2);
    param.reports=JSON.stringify(reports);

    reportPrint(param,"lodop");

results matching ""

    No results matching ""

    results matching ""

      No results matching ""