获取登录用户的姓名
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,如下图:
2.4 使用自定义函数
直接使用添加的自定义函数,fr_username作为参数就能够返回登录人姓名了,如:在A1单元格输入公式=getrealname($fr_username),见下图2.5 保存与预览
保存模板,添加至决策系统,查看模板可以看到显示了登录用户的姓名:
附件列表
标签:
用户姓名
文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201)