本帖最后由 加菲喵 于 2015-9-10 16:59 编辑
二次开发 >> 引擎API >> 自定义函数>>获取当前操作人ip
1. 问题描述
在企业实际的报表数据查询和录入管理过程中,需要对当前操作的局域网内的计算机ip进行同步记录,为管理层面提供技术支持。
帆软提供的自定义函数功能可以解决这一问题。
2. 解决方案
2.1编写自定义函数
具体java代码如下
- //by漩涡大神
- package com.fr.function;
- import com.fr.general.GeneralUtils;
- import com.fr.script.AbstractFunction;
- import com.fr.stable.ArrayUtils;
- import com.fr.web.core.SessionDealWith;
- import com.fr.web.core.SessionIDInfor;
- import java.net.URL;
- import java.net.URLConnection;
- public class REMOTEIP extends AbstractFunction {
- @Override
- public Object run(Object[] args) {
- if (ArrayUtils.getLength(args) > 0) {
- String sessionID = GeneralUtils.objectToString(args[0]);
- SessionIDInfor info = SessionDealWith.getSessionIDInfor(sessionID);
- return info.getRemoteAddress();
- }
- return null;
- }
- }
复制代码 这段代码是通过客户端请求的时候的会话标识
通过这个可以获取到访问者的ip 如果服务器部署在局域网 则返回局域网ip 如果部署在公网上 则返回客户端对应的公网ip
2.2编译自定义函数
编译过程可参考这里
http://bbs.fanruan.com/thread-69859-1-1.html
① 将java文件编写好
② 将java文件编译为class文件
2.3注册自定义函数
① 将java文件和class文件拷贝到
②服务器→函数管理器
③选择到REMOTEIP.class文件
2.4 使用自定义函数
①在公式中引用
② 效果如图
分页预览填报预览数据分析均有效
|