• 报表服务


    服务简码 HRPT

    默认端口 8210

    组件编码 hzero-report

    简介

    1.1 概述

    通过配置数据集,通过SQL查询方式的平面报表、单据报表、图形报表的服务

    1.2 组件坐标

    <dependency>
        <groupId>org.hzero</groupId>
        <artifactId>hzero-report</artifactId>
        <version>${hzero.service.version}</version>
    </dependency>
    
    <dependency>
        <groupId>org.hzero</groupId>
        <artifactId>hzero-report-saas</artifactId>
        <version>${hzero.service.version}</version>
    </dependency>
    

    1.3 主要功能

    1.4 服务配置参数

    # 生成报表时,每页允许的最大数量,默认值100000
    hzero.report.maxRows
    
    # 字体文件的文件路径
    hzero.report.fontPaths
    
    # 服务使用的文件存储桶的名称
    hzero.report.bucketName
    
    # 服务使用的文件存储文件夹的名称
    hzero.report.outputDirectory
    

    开发指导

    2.1 报表数据隔离

    sql中可以使用一些预定义参数来获取当前用户的信息,可用于数据隔离
    例如:

    select user_id, name from user where user_id='${u-userId}'  
    

    在数据集管理功能中,以u-开头的自定义参数,不会是被初始化为参数
    以下为所有预定义参数:

    字段名 含义
    u-userId 当前用户Id
    u-language 当前会话语言
    u-roleId 当前角色Id
    u-roleIds 当前会话可访问的角色集合
    u-tenantId 当前租户
    u-tenantIds 当前会话可访问的租户集合
    u-organizationId 所属租户

    2.2 定义报表模板

    示例:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head >
    <meta charset="utf-8" /> 
    <style> 
    	 body{ padding:0; margin:0; font-family:SimHei;} 
    </style>
    </head>
    <body>
    	<table cellpadding="0" cellspacing="0" border="1">
    		<thead>
    			<tr align="center">
    				<th width="300px">公司名称</th>
    				<th width="200px">公司编码</th>
    				<th width="100px">汉得</th>
    				<th width="100px">中台</th>
    				<th width="100px">产品</th>
    			</tr>
    		</thead>
    		#foreach( $elem in $DATA)
    		<tbody>
    			<tr class="hreport-row">
    				<td class="hreport-fixed-column">${elem.COMPANY_NAME}</td>
    				<td class="hreport-fixed-column">${elem.COMPANY_NUM}</td>
    				<td><font color="red" size="5">帅</font></td>
    				<td><font color="green" size="5">到</font></td>
    				<td><font color="blue" size="5">爆</font></td>
    			</tr>
    		</tbody>
    		#end
    	</table>
    </body>
    </html>
    

    需要注意的是: 报表平台的字体默认只支持黑体,若报表打印时,出现乱码,很可能是字体缺失
    用户可以自定义需要的字体:
    1.将所有需要的字体文件上传至报表服务所在服务器
    2.ymal文件中指定字体名称和字体文件的绝对路径

    hzero:
        report:
            fontPaths:
          		- 宋体|C:\Windows\Fonts\simsun.ttc
    

    展望