FineReport中自定义登录界面的方法

发布时间 - 2026-01-11 00:17:45    点击率:

FineReport报表软件是一款纯Java编写的、集数据展示(报表)和数据录入(表单)功能于一身的企业级web报表工具,它“专业、简捷、灵活”的特点和*理念,仅需简单的拖拽操作便可以设计复杂的中国式报表,搭建数据决策分析系统。

在登录平台时,不希望使用FR默认的内置登录界面,想通过自定义登录界面实现登录操作,内置登录界面如下图:

 

登录界面,获取到用户名和密码的值,发送到报表系统,报表服务带着这两个参数访问认证地址进行认证。

自定义登录界面

1)登录界面设置

自定义html登录页面:命名为login.html,并保存在%FR_HOME%\WebReport下,代码如下:

<span style="font-family:Microsoft YaHei;font-size:14px;"><html>  
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<script type="text/javascript" src="ReportServer?op=emb&resource=finereport.js"></script>  
<script type="text/javascript">  
function doSubmit() {  
  var username = FR.cjkEncode(document.getElementById("username").value); //获取输入的用户名  
  var password = FR.cjkEncode(document.getElementById("password").value); //获取输入的参数  
jQuery.ajax({  
   url:"http://localhost:8075/WebReport/ReportServer?op=fs_load&cmd=sso",//单点登录的管理平台报表服务器  
   dataType:"jsonp",//跨域采用jsonp方式  
   data:{"fr_username":username,"fr_password":password},//获取用户名密码  
   jsonp:"callback",  
   timeout:5000,//超时时间(单位:毫秒)  
   success:function(data) {  
      if (data.status === "success") { 
window.location=data.url;//认证成功跳转页面,因为ajax不支持重定向所有需要跳转的设置 
         //登录成功    
      } else if (data.status === "fail"){  
         alert("用户名或密码错误");//登录失败(用户名或密码错误)  
      }  
   },  
   error:function(){  
      alert("超时或服务器其他错误");// 登录失败(超时或服务器其他错误)  
   }  
}); 
}  
</script>  
</head>  
<body>  
<p>请登录</p>  
<form name="login" method="POST">  
  <p>  
    用户名:  
    <input id="username" type="text" />  
  </p>  
  <p>  
    密 码:  
    <input id="password" type="password" />  
  </p>  
  <input type="button" value="登录" onclick="doSubmit()"/>  
</form>  
</body>  
</html></span>

Dosubmit()是主要的逻辑判断,实现的是将对应的值传给报表服务的逻辑实现过程。

调用登录界面

登录系统,选择管理系统>外观配置,在登录页选项中选择设置登录网页,并输入自定义登录页面的路径:login.html,如下图所示:

 

总结

比如说若用户有自己的系统,将FR继承到自己已有系统中,该系统有自己的登录界面,希望登录自己系统的同时也登录报表(即将输入的用户名密码也发送到报表服务进行认证),从而访问报表时不需要再次登录即单点登录,步骤如下:

1、找到您系统登录页面如login.jsp;

2、在login.jsp页面head中引入finereport.js;

3、在login.jsp页面JavaScript中定义function如dosubmit,在dosubmit中获取到输入的用户名密码,并通过iframe方式或者ajax方式进行认证。

4、在FineReport平台系统中设置自定义登录页面地址为您系统的登录地址。

若是OA系统或者报表系统和项目系统不再同一个服务器上,可以进行ajax跨域异步单点登录。

Session传值

对于Java系统来说,可将用户名与密码放在session中,把报表集成在同一环境下面,报表可自动获取到用户名和密码的值进行验证。

还原默认登录界面

如果在决策系统修改了登录界面后,希望还原成系统默认登录界面,应该如何实现呢?

1)打开安装目录%FR_HOME%\WebReport\WEB-INF\resources,找到fsconfig.xml

 

2)删除loginUrl属性

右击fsconfig.xml文件,选择编辑器打开,删除文件中的loginUrl属性,如下,删除login.htm:

此时请务必关闭设计器,重新开启,再次进入数据决策系统,即可回到默认的登录界面。

还原到默认的登录界面后,如果再需要设置登录界面,可以用管理员账户登录,进行设置即可。

以上所述是小编给大家介绍的FineReport中自定义登录界面的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# finereport  # 自定义登录界面  # 登录  # 解析如何开发FineReport的自定义控件  # Java FineReport报表工具导出EXCEL的四种方式  # 数据分析软件之FineReport教程:[5]参数界面JS(全)  # 自定义  # 单点  # 自己的  # 跳转  # 发送到  # 小编  # 如下图  # 的是  # 放在  # 带着  # 在此  # 不需要  # 管理系统  # 已有  # 为您  # 可以用  # 这两个  # 给大家  # 便可  # 到您 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在建站主机中优化服务器配置?  如何确认建站备案号应放置的具体位置?  如何快速生成专业多端适配建站电话?  活动邀请函制作网站有哪些,活动邀请函文案?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  用v-html解决Vue.js渲染中html标签不被解析的问题  如何在橙子建站中快速调整背景颜色?  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  如何快速上传建站程序避免常见错误?  如何在腾讯云服务器快速搭建个人网站?  微信小程序 input输入框控件详解及实例(多种示例)  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Laravel集合Collection怎么用_Laravel集合常用函数详解  Laravel安装步骤详细教程_Laravel环境搭建指南  如何在香港免费服务器上快速搭建网站?  网页设计与网站制作内容,怎样注册网站?  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  怎么用AI帮你为初创公司进行市场定位分析?  简历在线制作网站免费版,如何创建个人简历?  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  b2c电商网站制作流程,b2c水平综合的电商平台?  Bootstrap整体框架之CSS12栅格系统  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  大连网站制作公司哪家好一点,大连买房网站哪个好?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何生成腾讯云建站专用兑换码?  微信小程序 HTTPS报错整理常见问题及解决方案  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  如何破解联通资金短缺导致的基站建设难题?  Laravel如何使用withoutEvents方法临时禁用模型事件  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  Laravel如何使用Blade组件和插槽?(Component代码示例)  如何用西部建站助手快速创建专业网站?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  C#如何调用原生C++ COM对象详解  Laravel如何为API生成Swagger或OpenAPI文档  js代码实现下拉菜单【推荐】  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  SQL查询语句优化的实用方法总结  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  EditPlus中的正则表达式实战(5)  Swift中switch语句区间和元组模式匹配  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  Laravel怎么为数据库表字段添加索引以优化查询  高防服务器租用首荐平台,企业级优惠套餐快速部署  如何在局域网内绑定自建网站域名?