历史版本39 :全局接口-FR 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

版本编辑

版本功能变动
11.0

和 10.0 区别:

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

11.0.7

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

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

11.0.9remoteEvaluate 支持 FVS大屏编辑模式 插件 V1.15.0 及之后版本
11.0.10showDialog、doHyperlinkByGet 参数支持 json 格式

注意事项必看

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

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

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;
duchamp.serverURL;
  应用示例-
   移动端普通报表、决策报表不支持,FVS大屏模板支持移动端

server编辑

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

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

http://localhost:8075/webroot


     示例

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

FR.server;

FVS 大屏模板示例:

duchamp.server;
  应用示例-
   移动端普通报表、决策报表不支持,FVS大屏模板支持移动端

fineServletURL编辑

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

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

/webroot/decision


     示例

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

FR.fineServletURL;

FVS 大屏模板示例:


duchamp.fineServletURL;
  应用示例-
   移动端普通报表、决策报表不支持,FVS大屏模板支持移动端

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

   移动端不支持移动端
方法MsgFR 内置的统一风格的消息框,可以替代 Windows 中的 alert、confirm 、 prompt 以及 toast
     参数-

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

   返回值Void
     示例

见:Msg

  应用示例

见:Msg

   移动端支持移动端

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")');

FVS 大屏模板示例(支持 V1.15.0 及之后版本):

duchamp.remoteEvaluate("sum(A1,A2)");
  应用示例-
   移动端

支持移动端

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

注意事项:

使用remoteEvaluate接口存在安全风险,可能会导致攻击者对数据库进行增删改查等操作,其风险等级相当于远程执行。

所以在「数据决策系统」中增加了「脚本调用公式限制」功能且默认开启,当用户使用了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:否

     示例

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

普通报表、决策报表(参数面板中的控件)示例:

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

FVS 大屏模板示例:

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

2)查看文本框控件」text0 是否为空值

普通报表、决策报表(参数面板中的控件)示例:

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

FVS 大屏模板示例:

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


  应用示例-
   移动端普通报表、决策报表不支持移动端,FVS大屏模板支持移动端

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));


  应用示例-
   移动端普通报表、决策报表不支持移动端,FVS大屏模板支持移动端

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

   移动端普通报表、决策报表不支持移动端;FVS大屏模板支持移动端