反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

FineReport内置方法

  • 文档创建者:lu123
  • 历史版本:41
  • 最近更新:RosieY 于 2021-12-03
  • 1. 概述

    前端预览报表时,模板会被转为 HTML,这个 HTML 的 head 标签中会引入 FineReport 内置的 JavaScript 文件finereport.js,代码如下:

    <script type="text/javascript" src="/webroot/decision/view/report?op=emb&resource=finereport.js"></script>

    finereport.js 在报表工程目录中没有实体文件,是由多个 JS 文件直接在后台内存中拼接而成的。其中包含了许多内置的 function 以及一些公有的属性,不管是在模板中还是其他网页中,只要引入了finereport.js就能够通过 FR.xxx 的形式调用公有的属性与方法。

    Web 事件、控件事件、超级链接 JavaScript、决策报表事件中都可以获取到 FR 对象。

    2. 示例

    2.1 报表中调用FR方法

    访问报表时会自动引入finereport.js,因此报表添加 JavaScript 脚本时,可以直接使用 FR.xxx 来调用 FR 方法。

    2.1.1 添加按钮

    新建普通报表,选中 A1 单元格,给单元格添加一个按钮控件,按钮名字改为测试,如下图所示:

    1.png

    2.1.2 添加事件

    选中 A1 单元格,右边属性面板点击控件设置>事件,给按钮添加一个点击事件,如下图所示:

    image.png

    JavaScript 代码如下:

    FR.showDialog("Test",600,400,"Hello World")

    2.1.3 效果预览

    保存报表,点击填报预览,点击测试按钮后,弹出提示对话框,如下图所示:

    1591692680952396.gif

    2.2 网页中调用FR方法

    如果需要在自己的网页,如某个 JSP 页面中调用 FR 的方法,需要先在 head 标签引入 finereport.js ,再通过 FR.xxx 来调用 FR 方法。

    2.2.1 新建HTML文件

    以在网页自定义按钮为例,新建一个 HTML 文件:1.html ,插入如下代码:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
     <head>
      <title>FineReport Demo</title>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      <script type="text/javascript" src="/webroot/decision/view/report?op=emb&resource=finereport.js"></script>
      <link rel="stylesheet" type="text/css" href="/webroot/decision/view/report?op=emb&amp;resource=finereport.css&amp;cssVersion=1557882553214">
      <script>
    function button_onclick(){
    FR.showDialog("Test", 600, 400, "Hello World")
    }
    </script>
    <input type="button" value="测试" onclick="javascript:button_onclick();" />
     </head>
     <body>
    </body>  
    </html>

    注:此处需要调用 CSS 弹框样式。

    2.2.2 效果预览

    1)将 HTML 文件保存到%FR_HOME%\webapps\webroot路径下,如下图所示:

    Snag_23e6c3f0.png

    2)打开浏览器,地址栏输入:http://localhost:8075/webroot/1.html,即可访问该 HTML 文件,点击测试按钮后,弹出提示框,如下图所示:

    1591693340928214.gif

    3. 常用方法

    方法参数返回值说明
    Ajax详见 AJAX
    voidAjax 请求
    closeDialog()-
    void关闭对话框
    doHyperlinkByGet(url,config,target,feature)

    url 必填,URL 或 JSON 超链定义

    config 选填,传递的参数

    target 选填,超链子页的打开位置

    • _dialog:对话框

    • ­_self:当前页

    • 某个 iframe 的 name,当前页打开,post 方式提交

    feature 选填,超链打开位置的属性

    void超级链接,get 传递 config 参数到 target 中,并在 feature 里面设置窗口属性
    doHyperlinkByPost(url,config,target,feature)

    url 必填,URL 或 JSON超链定义

    config 选填,传递的参数

    target 选填,超链子页的打开位置

    • _dialog:对话框

    • ­_self:当前页

    • 某个 iframe 的 name,当前页打开,post 方式提交

    feature 选填,超链打开位置的属性

    void

    超级链接,post 传递 config 参数,并将结果显示在 target 中,并在 feature 里面设置窗口属性

    doURLPrint(printurl,isPopUp,config)详见 JS 调用 FR 打印方法void打印
    isArray(object)object:需要判断的对象Boolean是否为数组,是返回 true,否返回 false
    isEmpty(object)object:需要判断的对象Boolean是否为空,是返回 true,否返回 false
    jsonDecode(jsonEncode String)jsonEncode String:需要反编码的字符串String对 jsonEncode 过的字符串进行反编码
    jsonEncode(String)String:需要编码的字符串String对字符串进行 jsonEncode 编码
    showDialog(title, width, height, innerContent)

    title:对话框标题,字符串

    width:对话框宽度

    height:对话框高度

    innerContent:对话框内容,iframe 标签,如果要打开工程下的报表,需先将报表定义为 iframe 标签

    void显示一个对话框
    remoteEvaluate(formula)

    formula:公式,需要写成字符串形式

    object

    执行 FR 内置公式,返回公式计算结果。

    注1:remoteEvaluate(String) 不支持 tablename.select 函数。

    注2:网页中不支持调用 remoteEvaluate(String) 。

    例如:var a = FR.remoteEvaluate("sum(A1,A2)")表示执行 sum(A1,A2)


    附件列表


    主题: 二次开发
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526