报表JS调用接口

开发的js可以直接调用AnyReport提供的JS API方法,可以获取参数、操作报表、获取表格内容,直接通过报表数据集名称查询数据等
调用示例:获取单元格对象 anyrt.getCellByRowColNum(1,1)

API方法
1. anyrt.getCellByRowColNum(rowNum, colNum)
报表表格通过行号与列号获取单元格的对象(td的jquery对象)
rowNum: table 行号
colNum: table 列号

2. anyrt.getArgCellByRowColNum(rowNum, colNum)
参数表格通过行号与列号获取单元格的对象(td的jquery对象)
rowNum: table 行号
colNum: table 列号

3. anyrt.getCellByPos(pos)
报表表格通过类excel位置获取单元格的对象(td的jquery对象)
pos: table单元格位置,如 A1,B2等单元格

4. anyrt.getArgCellByPos(pos)
报表参数表格通过通过类excel位置获取单元格的对象(td的jquery对象)
pos: table单元格位置,如 A1,B2等单元格

5. anyrt.getGridObject()
获取报表表格对象(table的jquery对象)

6. anyrt.getArgGridObject()
获取报表参数表格对象(table的jquery对象)

7. anyrt.getRows()
获取报表表格所有行数组对象(tr数组)
示例:

  1. var rows = anyrt.getRows();
  2. for(var i = 0; i < rows.length; i++) {
  3. var row = rows[i];
  4. var cols = anyrt.getCols(row);
  5. for(var j = 0; j < cols.length; j++) {
  6. //td对象
  7. var tdObj = $(cols[j]);
  8. }
  9. }

8. anyrt.getCols(row)
获取报表表格行所有列数组对象(tr中td数组)
row:tr对象

9. anyrt.getArgRows()
获取报表参数表格所有行数组对象(tr数组)

10. anyrt.getArgCols(row)
获取报表参数表格行中所有列数组对象(tr中td数组)
row:tr对象

11. anyrt.getParams()
获取报表页面参数值,报表form中的name与value,如报表ID,及访问该报表URL中的参数
返回类型:JSON 对象
示例:{rptId:100}

12. anyrt.linkReport(rptId, target, param)
链接报表,一般通过点击文本、按钮、图表等链接另一个报表
rptId:链接报表的ID, 报表作品页面URL中包含报表的ID

target:参数为”_blank” 或是 “”, _blank 是打开一个新页面加载链接报表,””是当前页面加载报表
param:param为json对象格式,可以通过anyrt.getParams()获取参数页面参数

13. anyrt.linkWinReport(rptId, width, height, param)
弹出窗口访问报表页面,是在本页面弹出模态窗口展示报表
rptId:报表ID,同2.17报表ID
width:模态窗口宽度
height:模态窗口高度
param:param为json对象格式,可以通过anyrt.getParams()获取参数页面参数

14. anyrt.openReport(rptId, width, height, title, param, yesFun, cancelFun)
弹出窗口访问报表页面,模态窗口底部存在”确定”与”取消”按钮,点击确定按钮回调yesFun,点击取消按钮回调cancelFun函数
rptId:报表ID,同2.17报表ID
width:模态窗口宽度
height:模态窗口高度
title:模态窗口标题
param:param为json对象格式,可以通过anyrt.getParams()获取参数页面参数
yesFun:确定回调函数,回调传入参数为rptWin, 报表页面对象
cancelFun:取消回调函数,回调传入参数为rptWin, 报表页面对象
示例:
anyrt.openReport(100,600,400,"test",{_userName:"admin"}, function(rptWin){
//rptWin可获取报表页面的值
},function(rptWin){
});

15. anyrt.alert(text)
弹出警告窗口
text:弹出窗口文本内容

16. anyrt.msg(text, time)
页面显示提示信息
text:提示信息内容
time:提示框消失的时间,可为空

17. anyrt.linkageChart(targetCell, chartId, params)
图表联动,可点击文件、按钮、图表等联动图表,传入的参数不同,联动图表显示不同数据
targetCell:图表的单元格位置如 A1
chartId:图形报表ID,可查看生成的报表页面该图表的id
params:param为json对象格式,可以通过anyrt.getParams()获取参数页面参数

18. anyrt.linkageDivChart(divId, params)
图表联动,可点击文件、按钮、图表等联动图表,传入的参数不同,联动图表显示不同数据
divId:大屏设计区域div的ID,可查看生成的报表页面该图表的区域id
params:param为json对象格式,可以通过anyrt.getParams()获取参数页面参数

19. anyrt.linkageReport(targetCell, params)
报表联动,可点击文件、按钮、图表等联动图表,传入的参数不同,联动报表显示不同数据
targetCell:报表的单元格位置如 A1
params:param为json对象格式,可以通过anyrt.getParams()获取参数页面参数

20. anyrt.select(dsName, params)
依据当前报表数据集名称查询数据
dsName: dsName为数据集名称
params :param为json对象格式,可以通过anyrt.getParams()获取参数页面参数
返回类型: json对象数组格式,如[{id:1,name:”demo”},{id:2, name:”test”}]

21. anyrt.selectSql(sourceName, sql, params)
依据数据源名称,sql语句查询数据
sourceName: 数据源名称
sql : sql语句,可支持sql表达式
params : param为json对象格式,可以通过anyrt.getParams()获取参数页面参数
返回类型 : json对象数组格式,如[{id:1,name:”demo”},{id:2, name:”test”}]
示例:anyrt.selectSql("demo", "select * from rpt_value where NAME=:name", {name:"上海"})
var sql = select * from rpt_value where 1=1 <if test="name !=null">NAME=:name</if> anyrt.selectSql("demo", sql, {name:"上海"})

22. anyrt.reportSelectSql (sourceName, sql, params)
此方法同selectSql方法相同,reportSelectSql方法默认会传递报表ID,当此报表登陆勾选去掉不需要登陆可以访问此报表,如果使用到JS调用接口使用reportSelectSql方法

23. anyrt.reportExeSql(sourceName, sql, params)
依据数据源名称,sql语句执行SQL语句,成功返回true,错误返回false
sourceName: 数据源名称
sql : sql语句,insert、update、delete 等操作语句,存储过程调用

params : param为json对象格式,可以通过anyrt.getParams()获取参数页面参数
返回类型 : boolean anyrt.reportExeSql(“jreport”, “{call in_param(1, ‘name’)}”);

24. anyrt.loadReportContent()
查询报表页面内容,不包含报表参数部分,异步改变当前报表页面内容

25. anyrt.loadReportContentById(rptId)
依据报表ID查询报表页面内容,不包含报表参数部分,异步改变当前报表页面内容
rptId:报表ID,同2.17报表ID

26. anyrt.loadReportContentByParams(rptId, param)
依据报表ID与参数查询报表页面内容,不包含报表参数部分,异步改变当前报表页面内容
rptId :报表ID,同2.17报表ID
params:param为json对象格式,可以通过anyrt.getParams()获取参数页面参数

27. anyrt.pdfPrinter(rptId, param, paramArrFlag)
JS调用pdf打印报表,
rptId :报表ID,多个报表ID以逗号隔开
params:param为json对象格式,打印pdf传递的参数与值
paramArrFlag:表示报表批量打印,rptId多个报表ID的情况下, 相同名称的参数通过数组传递

28. anyrt.pdfPrinter(type, rptId, params, fileName, paramArrFlag, sheetFlag)
依据报表ID输出文件
type:文件类型,0=xls,9=xlsx
rptId :报表ID,多个报表ID以”,”间隔
params:param为json对象格式参数
fileName:导出文件的名称
paramArrFlag:表示报表批量导出,rptId多个报表ID的情况下, 相同名称的参数通过数组传递
sheetFlag:表示导出多个报表是否导入到一个Excel的不同sheet中

29. anyrt.changeArgDateFormat(dateInput, format)
改变日期下拉框显示的日期格式
dateInput: 日期input type=”text” 对应的输入框对象
format:日期格式如:yyyy-MM-dd

30. anyrt属性
anyrt.PATH
PATH是为了解决相对路径的问题,获取系统的根路径。
报表设计器》开发》javascript
如访问报表:location.href = anyrt.PATH + “/535.rpt”