FineReport自定义登录界面教程:创建与集成

21 下载量 162 浏览量 更新于2024-09-09 收藏 351KB PDF 举报
在FineReport中,如果你希望自定义登录界面以满足特定的界面设计或增强用户体验,可以按照以下步骤操作: 1. 登录界面的设置: 首先,你需要创建一个自定义的HTML登录页面,例如命名为`login.html`,并将这个文件保存在FineReport安装目录的`%FR_HOME%\WebReport`子目录下。这个登录界面需要包含用于输入用户名和密码的表单元素,以及必要的JavaScript代码来处理用户输入。 HTML代码示例: ```html <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script 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); // 获取输入的密码 ... </script> </head> <body> <form onsubmit="return doSubmit();"> <input type="text" id="username" placeholder="用户名"><br> <input type="password" id="password" placeholder="密码"><br> <input type="submit" value="登录"> </form> </body> </html> ``` 2. 与FineReport交互: 在`doSubmit`函数中,利用`jQuery.ajax`方法将用户名和密码发送到报表服务的认证地址。在这个例子中,认证地址是`http://localhost:8075/WebReport/ReportServer?op=fs_load&cmd=so`,并设置`dataType`为`jsonp`以处理跨域问题。数据发送时,包含了用户填写的`fr_username`和`fr_password`。 示例代码: ```javascript jQuery.ajax({ url: "http://localhost:8075/WebReport/ReportServer?op=fs_load&cmd=so", dataType: "jsonp", data: { "fr_username": username, "fr_password": password }, jsonp: "callback", timeout: 5000, // 设置超时时间 success: function(data) { if (data.status === "success") { window.location.href = data.url; // 认证成功后跳转到目标页面 } else { // 处理认证失败的情况 } }, error: function(xhr, status, error) { // 处理请求错误 } }); ``` 3. 认证结果处理: `success`回调函数会检查服务器返回的状态,如果`status`字段为"success",则执行页面跳转,这是因为`window.location.href`不会自动处理跨域重定向,所以需要明确指定目标URL。如果认证失败,可以根据`data.stat`或者其他相关字段进行错误处理。 总结来说,自定义FineReport登录界面的关键在于创建HTML表单、通过`jQuery.ajax`与报表服务器交互并传递用户输入,以及根据服务器响应进行适当的逻辑处理。确保你的代码兼容性,并且遵循FineReport的安全实践,比如对敏感数据进行编码保护。