反馈已提交

网络繁忙

全局接口-FR

  • 文档创建者:RosieY
  • 历史版本:27
  • 最近更新:Alicehyy 于 2023-02-23
  • 版本

    版本功能变动
    11.0.10showDialog、doHyperlinkByGet 参数支持 json 格式
    11.0.7

    补充 FVS 大屏模板相关接口说明

    适用于安装了「FVS大屏编辑模式」插件 V1.8.0 及之后版本的用户

    11.0

    和 10.0 区别:

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

    注意事项必看

    1)在普通报表和决策报表, 以下 API 使用方式为 FR.xxx ,FVS 大屏模板中使用方式为 duchamp.xxx

    2)部分接口中,FVS 大屏模板参数为 json 格式,普通报表和决策报表中,参数为 字符串 格式,详情看以下接口介绍。

    3)FVS 大屏编辑模式插件 不支持移动端 ,以下 API 若标注支持移动端则只针对普通报表和决策报表。

    servletURL

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

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

    /webroot/decision/view/report


         示例

    普通报表、决策报表示例:

    FR.servletURL;

    FVS 大屏模板示例:

    duchamp.servletURL;


      应用示例-
       移动端

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

    serverURL

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

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

    http://localhost:8075


         示例

    普通报表、决策报表示例:

    FR.serverURL;

    FVS 大屏模板示例:

    duchamp.serverURL;


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

    server

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

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

    http://localhost:8075/webroot


         示例

    普通报表、决策报表示例:

    FR.server;

    FVS 大屏模板示例:

    duchamp.server;


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

    fineServletURL

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

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

    /webroot/decision


         示例

    普通报表、决策报表示例:

    FR.fineServletURL;

    FVS 大屏模板示例:

    duchamp.fineServletURL;


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

    SessionMgr.getSessionID

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

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

    62a0f071-c2c6-4623-91c3-3d58c6265c19


         示例

    普通报表、决策报表示例:

    FR.SessionMgr.getSessionID();

    FVS 大屏模板示例:

    duchamp.SessionMgr.getSessionID();


      应用示例

    点击按钮,打印报表的 sessionId

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

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

    FVS 大屏模板:打印sessionId.fvs

    96CCD25D-A4C1-4821-87B5-53651EE95722.GIF

       移动端支持移动端

    showDialog

    普通报表和决策报表

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

    title:string

    width:number

    height:number

    innerContent:iframe

    注:11.0.10 及以后版本参数支持 json 格式,如下:

    {

    title:string,

    width:number,

    height:number,

    innerContent:iframe

    }

    title:对话框标题,字符串

    width:对话框宽度

    height:对话框高度

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

       返回值

    void

         示例

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

    普通报表、决策报表示例:

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

    示例2:打开一个标题为“销量弹窗”,宽 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

       移动端不支持移动端

    FVS 大屏模板

    方法

    showDialog(

    {

    title:string,

    width:number,

    height:number,

    innerContent:iframe

    }

    )

    打开一个对话框
         参数

    title:string

    width:number

    height:number

    innerContent:iframe

    title:对话框标题,字符串

    width:对话框宽度

    height:对话框高度

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

       返回值

    string

         示例

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

    duchamp.showDialog(
    {
    title:"弹窗",
    width:600,
    height:400,
    innerContent:"Hello World"
    }
    )

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

    "use document";
    const iframe = document.createElement("iframe");
    iframe.width = "100%";
    iframe.height = "100%";
    iframe.scrolling = "no";
    iframe.frameborder = "0";
    iframe.src = "/webroot/decision/view/report?viewlet=GettingStarted.cpt";
    //弹出对话框
    duchamp.showDialog(
            {
                    title:"销量弹窗",
                    width:700,
                    height:500,
                    innerContent:iframe,
            }
    );


      应用示例

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

    点击下载模板:点击打开iframe对话框.fvs

    6AB60893-520F-4D4B-B536-D480186106C0.GIF

       移动端不支持移动端

    closeDialog

    方法closeDialog()关闭对话窗
         参数--
       返回值void
         示例

    普通报表、决策报表示例:

    FR.closeDialog();

    FVS 大屏模板示例:

    duchamp.closeDialog();


      应用示例

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

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

    1576133004442303.gif

       移动端不支持移动端

    doHyperlinkByGet

    普通报表和决策报表

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

    URL :object

    config :object

    target :object

    feature :object

    注:11.0.10 及以后版本参数支持 json 格式,如下:

    {

    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

       移动端支持移动端

    FVS 大屏模板

    方法

    doHyperlinkByGet(

    {

    url:object,

    para:object,

    target:object,

    feature:object

    }

    )

    Get 方法打开一个网页页面,可以传递参数,可以设置页面属性
         参数

    url:object

    para: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

    para:传递的参数,选填

    target:超链子页的打开位置,选填,默认为 _dialog

    • _dialog:对话框

    • ­_self:当前页

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

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

       返回值void
         示例

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

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


      应用示例

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

    点击下载模板Get 方法打开对话框.fvs

    35826FC3-ED7D-436E-975F-E84C2CF2E56C.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

       移动端支持移动端

    FVS 大屏模板

    方法

    doHyperlinkByPost(

    {

    url:object,

    config:object,

    target:object,

    feature:object

    }

    )

    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

    • _dialog:对话框

    • ­_self:当前页

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

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

       返回值void
         示例

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

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


      应用示例

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

    点击下载模板:Post 方法打开对话框.fvs

    35826FC3-ED7D-436E-975F-E84C2CF2E56C.GIF

       移动端不支持移动端

    doURLPrint

    注:FVS 大屏模板不支持 doURLPrint 。

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

    见:doURLPrint

      应用示例

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

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

       移动端不支持移动端

    Msg

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

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

       返回值Void
         示例

    见:Msg

      应用示例

    见:Msg

       移动端支持移动端

    remoteEvaluate

    注:FVS 大屏模板不支持 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")');
      应用示例-
       移动端

    支持移动端

    注:移动端 App 9.0 及之后的版本不再支持 FR.remoteEvaluate(formula) ,否则会报错 synchronous http requests are not supported 。

    注意事项:

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

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

    jsonEncode

    方法jsonEncode(code)

    对字符串进行 jsonEncode 编码

         参数code:String

    必填,需要转码的字符串

       返回值String
         示例

    对报表路径进行  jsonEncode 编码

    普通报表、决策报表示例:

    FR.jsonEncode("/webroot/decision/view/report?viewlet=GettingStarted.cpt");

    FVS 大屏模板示例:

    duchamp.jsonEncode("/webroot/decision/view/report?viewlet=GettingStarted.cpt");


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

    jsonDecode

    方法jsonDecode(jsonEncode)

    对进行过 jsonEncode 编码的字符串解码

         参数jsonEncode:String

    必填,需要解码的字符串

       返回值String
         示例

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

    普通报表、决策报表示例:

    FR.jsonDecode(FR.jsonEncode(
    "/webroot/decision/view/report?viewlet=GettingStarted.cpt");

    FVS 大屏模板示例:

    duchamp.jsonDecode(duchamp.jsonEncode(
    "/webroot/decision/view/report?viewlet=GettingStarted.cpt");


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

    ajax

    方法ajax(options)

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

         参数options

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

       返回值void
         示例

    见:ajax

      应用示例见:ajax
       移动端支持移动端

    isEmpty

    方法isEmpty(object)

    判断对象是否为空

         参数object:Object

    对象

       返回值Boolean

    是否为空,布尔型

    • true :是

    • false:否

         示例

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

    普通报表、决策报表示例:

    var a = FR.isEmpty(_g().getParameterContainer().getWidgetByName("text0"));
    alert(a);

    FVS 大屏模板示例:

    var a = duchamp.isEmpty(duchamp.getWidgetByName("text0"));
    alert(a);


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

    isArray

    方法isArray(object)

    判断对象是否为数组

         参数object:Object

    对象

       返回值Boolean

    是否为空,布尔型

    • true :是

    • false:否

         示例

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

    普通报表、决策报表示例:

    var txt = new Array("I","love","FR");
    FR.isArray(txt);

    FVS 大屏模板示例:

    var txt = new Array("I","love","FR");
    alert(duchamp.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").row+1;
    FR.Msg.alert("提示", "A1单元格的行号为"+a);

    示例3:FVS 大屏模板中,打印单元格的行列号

    var a=duchamp.cellStr2ColumnRow("A3").col+1;
    var b=duchamp.cellStr2ColumnRow("A3").row+1;
    //alert(a);
    duchamp.Msg.alert({
        title: "提示",
        message:  "A3单元格的列号为"+a,
    });
    duchamp.Msg.alert({
        title: "提示",
        message:  "A3单元格的行号为"+b,
    });


      应用示例

    普通报表示例:点击按钮,打印  A1 单元格的行号

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

    FVS 大屏模板示例:点击按钮,打印 A3 单元格的行列号

    点击下载模板:打印单元格的行列号.fvs

    91EAE7ED-B74F-42F7-83D3-4AC5E89200CB.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:FVS 大屏模板中,打印行索引为 3,列索引为 1 的单元格编号

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


      应用示例

    普通报表示例:打印行索引为 3,列索引为 1 的单元格编号

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

    FVS 大屏模板示例:打印行索引为 3,列索引为 1 的单元格编号

    点击下载模板:根据行列号获取单元格编号.fvs

    444E3679-ED38-4622-AD99-C911C6866038.GIF

       移动端不支持移动端


    附件列表


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

    售前咨询电话

    400-811-8890转1

    在线技术支持

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

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

    总裁办24H投诉

    热线电话:173-1278-1526

    文 档反 馈

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

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

    不再提示

    10s后关闭