反馈已提交

网络繁忙

全局接口-FR

  • 文档创建者:RosieY
  • 编辑次数:20次
  • 最近更新:RosieY 于 2022-05-16
  • 版本

    版本功能变动
    11.0

    和 10.0 区别:

    新增 servletURL、serverURL、server、fineServletURL、fineServletURL、SessionMgr.getSessionID() 接口


    每一张报表都有一个 FR 对象,结合以下属性和方法使用。

    servletURL

    属性servletURL获取 servletURL
         参数--
       返回值string

    获取 servletURL,返回值为字符串,格式如:

    /webroot/decision/view/report


         示例
    FR.servletURL;


      应用示例-
       移动端

    支持移动端,移动端返回格式和 PC 端有区别,如:  /webroot/decision

    serverURL

    属性serverURL获取 serverURL
         参数--
       返回值string

    获取 serverURL,返回值为字符串,格式如:

    http://localhost:8075
         示例
    FR.serverURL;
      应用示例-
       移动端不支持移动端

    server

    属性server获取 server
         参数--
       返回值string

    获取 server,返回值为字符串,格式如:

    http://localhost:8075/webroot
         示例
    FR.server;
      应用示例-
       移动端不支持移动端

    fineServletURL

    属性fineServletURL获取 fineServletURL
         参数--
       返回值string

    获取 fineServletURL,返回值为字符串,格式如:

    /webroot/decision
         示例
    FR.fineServletURL;
      应用示例-
       移动端不支持移动端

    SessionMgr.getSessionID

    方法SessionMgr.getSessionID()获取 sessionId
         参数--
       返回值string

    获取 sessionId,返回值为字符串,如:

    62a0f071-c2c6-4623-91c3-3d58c6265c19
         示例
    FR.SessionMgr.getSessionID();
      应用示例

    点击按钮,打印报表的 sessionId

    点击可下载模板:打印sessionId.cpt

    2021-09-13_16-42-02.gif

       移动端支持移动端

    showDialog

    方法showDialog(title, width, height, innerContent)打开一个对话框
         参数

    title:string

    width:number

    height:number

    innerContent:iframe

    title:对话框标题,字符串

    width:对话框宽度

    height:对话框高度

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

       返回值void
         示例

    打开一个标题为“弹窗”,宽 600、高 400 内容为 “Hello World”的对话框:

    FR.showDialog("弹窗",600,400,"Hello World");

    打开一个标题为“销量弹窗”,宽 700,高 500 ,弹窗内容为内置模板 GettingStarted.cpt 的对话框

    注:设计器中添加如下较长代码时,注意换行导致的代码格式问题,修改格式即可。

    // 创建对话框内的 iframe,iframe参数的命名及宽高等
    var iframe = $("<iframe id='inp' name='inp' width='100%'
    height='100%' scrolling='no' frameborder='0'>");
    // 给 iframe 添加 src 属性,指向需要展示的模板地址
    iframe.attr("src", "/webroot/decision/view/report?viewlet=GettingStarted.cpt");
    //弹出对话框
    FR.showDialog("对话框",700,500, iframe);
      应用示例

    点击按钮,打开一个标题为“销量弹窗”,宽 700,高 500 ,弹窗内容为内置模板 GettingStarted.cpt 的对话框

    详细内容介绍可参考:JS实现弹窗后数据回填

    2021-09-18_15-01-55.gif

       移动端不支持移动端

    closeDialog

    方法closeDialog()关闭对话窗
         参数--
       返回值void
         示例
    FR.closeDialog();
      应用示例

    弹窗选择数据后,自动关闭已经打开的对话框

    详细内容介绍可参考:JS实现弹窗后数据回填

    1576133004442303.gif

       移动端不支持移动端

    doHyperlinkByGet

    方法doHyperlinkByGet(url,config,target,feature)Get 方法打开一个网页页面,可以传递参数,可以设置页面属性
         参数

    URL :object

    config :object

    target :object

    feature :object

    URL:URL 或 Json 超链定义,必填

    支持的绝对路径如:

    http://192.168.100.1:8080/webroot/decision/view/report?viewlet=GettingStarted.cpt

    相对路径如:/webroot/decision/view/report?viewlet=GettingStarted.cpt

    config:传递的参数,可以不写

    target:超链子页的打开位置,可以不写

    • _dialog:对话框

    • ­_self:当前页

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

    feature:超链打开位置的属性,可以不写

    注:移动端不支持 target 和 feature 参数效果。

       返回值void
         示例

    打开内置模板 GettingStarted.cpt,一个为“销售报表”,传递参数“华东”和是否显示参数面板,打开方式为对话框,对话框宽 700、高 500:

    FR.doHyperlinkByGet({
    //报表路径
    "url":"/webroot/decision/view/report?viewlet=GettingStarted.cpt",
    //参数
    "para":{
    "地区":"华东"
    },
    "target":"_dialog",    //对话框方式打开
    "feature":{
    "width":700,
    "height":500,
    "title":"销售报表"
    }
    })
      应用示例

    点击按钮,打开标题为“销售报表”,内容为华东地区销量情况,宽 700、高 500对话框:

     详细内容介绍可参考:JS实现对话框打开超链

    2021-09-18_16-11-11.gif

       移动端支持移动端

    doHyperlinkByPost

    方法doHyperlinkByPost(url,config,target,feature)Post 方法打开一个网页页面,可以传递参数,可以设置页面属性
         参数

    URL :object

    config :object

    target :object

    feature :object

    URL:URL 或 Json 超链定义,必填

    支持的绝对路径如:

    http://192.168.100.1:8080/webroot/decision/view/report?viewlet=GettingStarted.cpt

    相对路径如:

    /webroot/decision/view/report?viewlet=GettingStarted.cpt

    config:传递的参数,可以不写

    target:超链子页的打开位置,可以不写

    • _dialog:对话框

    • ­_self:当前页

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

    feature:超链打开位置的属性,可以不写

    注:移动端不支持 target 和 feature 参数效果。

       返回值void
         示例

    打开内置模板 GettingStarted.cpt,一个为“销售报表”,传递参数“华东”和是否显示参数面板,打开方式为对话框,对话框宽 700、高 500:

    FR.doHyperlinkByPost({
    //报表路径
    "url":"/webroot/decision/view/report?viewlet=GettingStarted.cpt",
    //参数
    "para":{
    "地区":"华东"
    },
    "target":"_dialog",    //对话框方式打开
    "feature":{
    "width":700,
    "height":500,
    "title":"销售报表"
    }
    })
      应用示例

    点击按钮,打开标题为“销售报表”,内容为华东地区销量情况,宽 700、高 500对话框:

    详细内容介绍可参考:JS实现对话框打开超链

    2021-09-18_16-11-11.gif

       移动端支持移动端

    doURLPrint

    方法doURLPrint(config)调出打印工具,打印报表
         参数config:objectconfig :打印参数,参数格式见 doURLPrint
       返回值Void
         示例

    见:doURLPrint

      应用示例

    自定义打印按钮,以「零客户端」方式打印报表

    2021-09-28_14-59-47.gif

       移动端不支持移动端

    Msg

    方法MsgFR 内置的统一风格的消息框,可以替代 Window 中的 alert、confirm 以及 prompt,
         参数-

    需调用其方法使用,详细内容可见 :Msg

       返回值Void
         示例

    见:Msg

      应用示例给「文本控件」增加「编辑结束」事件,当填入的工号长度不是 6 时,弹窗提示:工号必须为 6 位:

    2021-09-22_10-04-51.gif

       移动端支持移动端

    remoteEvaluate

    方法remoteEvaluate(formula)

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

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

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

         参数formula:String

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

       返回值object
         示例

    调用 FR 中 sum 函数对 A1、A2 求和:

    FR.remoteEvaluate("sum(A1,A2)");

    调用 FR 中字符串拼接函数 CONCATENATE 拼接字符串

    FR.remoteEvaluate('CONCATENATE("001","1201110")');
      应用示例-
       移动端支持移动端

    注意事项:

    使用FR.remoteEvaluate接口存在安全风险,可能会导致攻击者对数据库进行增删改查等操作,其风险等级相当于远程执行。所以在「数据决策系统」中增加了「脚本调用公式限制」功能且默认开启,当用户使用了FR.remoteEvaluate接口,且开启了脚本调用公式限制开关,则效果预览时会弹出提示框信息:此调用存在安全风险,如需使用请在安全管理中修改脚本调用公式限制。如下图所示:

    如果用户想要取消此消息弹窗,需要在平台中关闭此开关。如何操作可查看:安全防护

    jsonEncode

    方法jsonEncode(String)

    对字符串进行 jsonEncode 编码

         参数-

    -

       返回值String
         示例

    对报表路径进行  jsonEncode 编码

    FR.jsonEncode("/webroot/decision/view/report?viewlet=GettingStarted.cpt");
      应用示例-
       移动端不支持移动端

    jsonDecode

    方法jsonDecode(jsonEncode String)

    对字符串进行 jsonEncode 解码

         参数-

    -

       返回值String
         示例

    对转码过的报表路径进行  jsonEncode 解码:

    FR.jsonDecode(FR.jsonEncode(
    "/webroot/decision/view/report?viewlet=GettingStarted.cpt");
      应用示例-
       移动端不支持移动端

    ajax

    方法ajax(options)

    封装过的 jQuery.ajax() 函数,对 data 参数做了中日韩文编码处理,可以通过 FR.ajax(options) 在任何可以用 JS 的地方进行调用

         参数options

    Ajax 参数,JSON 格式,说明见:ajax

       返回值void
         示例

    见:ajax

      应用示例-
       移动端支持移动端

    isEmpty

    方法isEmpty(object)

    判断对象是否为空

         参数object

    对象

       返回值Boolean

    是否为空,布尔型

    • true :是

    • false:否

         示例

    查看是否存在「文本框控件」text0:

    var a = FR.isEmpty(g().getParameterContainer().getWidgetByName("text0"));
    alert(a);
      应用示例-
       移动端不支持移动端

    isArray

    方法isArray(object)

    判断对象是否为数组

         参数object

    对象

       返回值Boolean

    是否为空,布尔型

    • true :是

    • false:否

         示例

    定义一个数组,查看其是否为数组:

    var txt = new Array("I","love","FR");
    FR.isArray(txt);
      应用示例-
       移动端不支持移动端

    cellStr2ColumnRow

    方法cellStr2ColumnRow(cell)

    根据单元格编号获取行列索引

         参数cell

    单元格编号

       返回值{col:colindex, row:rowindex}

    行列索引,json 格式

    • col:列索引,从 0 开始

    • row:行索引,从 0 开始

         示例

    示例1:返回 A1 单元格的行列信息

    FR.cellStr2ColumnRow("A1");

    示例2:打印 A1 单元格的行

    var a=FR.cellStr2ColumnRow("A1").col+1;
    FR.Msg.alert("提示", "A1单元格的行号为"+a);
      应用示例

    点击按钮,打印  A1 单元格的行号,如下图所示:

    2021-10-19_17-33-23.gif

       移动端支持移动端

    columnRow2CellStr

    方法columnRow2CellStr({col:colindex, row:rowindex})根据行列号获取单元格编号
         参数{col:colindex, row:rowindex}

    行列索引,json 格式

    • col:列索引,从 0 开始

    • row:行索引,从 0 开始

       返回值cell

    单元格编号

         示例

    示例1:返回行索引为 3,列索引为 1 的单元格编号

    FR.columnRow2CellStr({col:1, row:3});

    示例2:打印行索引为 3,列索引为 1 的单元格编号

    var a=FR.columnRow2CellStr({col:1, row:3})
    FR.Msg.alert("提示", "行索引3,列索引为1的单元格编号为"+a);
      应用示例

    打印行索引为 3,列索引为 1 的单元格编号,如下图所示:

    2021-10-19_17-46-40.gif

       移动端不支持移动端


    附件列表


    主题: 二次开发
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    在线QQ:800049425

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

    总裁办24H投诉

    热线电话:173-1278-1526

    文 档反 馈

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭