获取登录用户的姓名

编辑
文档创建者:ezreal (55889 )     浏览次数:2847次     编辑次数:5次     最近更新:Holly 于 2017-12-26     

目录:

1. 问题描述编辑

FineReport中目前使用fr_username参数获取登录人的用户名,但是很多情况下是需要在模板里面使用登录人的姓名,比如用来参与计算或者显示,目前没有直接的参数来获取姓名的参数,下面提供一种根据fr_username参数来获取登录人姓名的方法。

注:本文提供的是自定义函数的方法,也可以通过fr_username查询finedb里用户表里对应的用户信息来获取登录用户的姓名,可参考获取报表管理平台用户信息

2. 示例编辑

自定义一个函数,用fr_username作为参数返回登录人的姓名。

2.1 编写自定义函数

代码如下:

package com.fr.function; import com.fr.fs.base.entity.User; import com.fr.fs.control.UserControl; import com.fr.script.AbstractFunction; import com.fr.stable.Primitive; public class GetRealName extends AbstractFunction { @Override public Object run(Object[] arg0) { if(null==arg0||arg0.length==0){ return ""; } String username=arg0[0].toString(); try { User U=UserControl.getInstance().getByUserName(username); if(U==null){ return ""; } String realname=U.getRealname(); return realname; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return 0; } }
2.2 编译自定义函数类

编译GetRealName.java类,将生成GetRealName.class类文件拷贝到%FR_HOME%/WebReport/WEB-INF/classes/com/fr/function

2.3 添加自定义函数

启动设计器,点击服务器>函数管理器,添加一个函数命名为getrealname,类名选择com.fr.function.GetRealName,如下图:


222

2.4 使用自定义函数

直接使用添加的自定义函数,fr_username作为参数就能够返回登录人姓名了,如:在A1单元格输入公式=getrealname($fr_username),见下图
222

2.5 保存与预览

保存模板,添加至决策系统,查看模板可以看到显示了登录用户的姓名:

222

附件列表


主题: 二次开发
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,请咨询帆软技术支持
关于技术问题,您还可以通过帆软论坛获取帮助,论坛上有非常多的大神,有些水平比帆软工程师还要高哦。
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

此页面有帮助吗?