报表JS示例

1. 日期校验
参数页面存在日期选择框,开始日期、结束日期,js校验输入的结束日期不能小于开始日期

参数页面
参数页面定义开始日期控件、结束日期控件

添加js代码
进入报表设计器页面,选择参数页面tab,选择开发》javascript,添加js代码
进入报表设计器页面,选择参数页面tab,选择开发》javascript,添加js代码

  1. //获取查询按钮对象
  2. var btn = anyrt.getArgCellByPos("E1").find("input");
  3. //删除按钮默认的onclick事件
  4. btn.attr("onclick", "");
  5. //注册查询按钮click事件
  6. btn.click(function() {
  7. var startDateTd = anyrt.getArgCellByPos("B1");
  8. var startDate = Date.parse(startDateTd.find("input").val());
  9. var endDateTd = anyrt.getArgCellByPos("D1");
  10. var endDate = Date.parse(endDateTd.find("input").val());
  11. if(endDate < startDate) {
  12. anyrt.alert("结束时间不能小于开始时间");
  13. return false;
  14. }
  15. //校验通过加载当前报表页面
  16. anyrt.loadReportContent();
  17. });

预览
开始时间为大于结束时间

2. JS获取数据集数据
js根据数据名称获取数据集数据,并将数据遍历输出

添加JS代码
进入报表设计器页面,选择报表页面tab,选择开发》javascript,添加js代码

  1. //获取当前报表数据集ds的数据,返回json对象数组
  2. var datas = anyrt.select("ds");
  3. //获取table对象
  4. var table = anyrt.getGridObject();
  5. //清空table中内容
  6. table.empty();
  7. //遍历json对象数组
  8. for(var i = 0; i < datas.length; i++) {
  9. var json = datas[i];
  10. var html = "<tr>";
  11. html += "<td>" +json.name+ "</td>" + "<td>" +json.t_val+"</td>";
  12. html +="</tr>"
  13. table.append(html);
  14. }
  15. //根据参数条件查询数据集数据
  16. datas = anyrt.select("ds", {name:"上海"});
  17. for(var i = 0; i < datas.length; i++) {
  18. var json = datas[i];
  19. var html = "<tr style='background:#ccc'>";
  20. html += "<td>" +json.name+ "</td>" + "<td>" +json.t_val+"</td>";
  21. html +="</tr>"
  22. table.append(html);
  23. }

预览

3. JS通过SQL查询数据
js通过数据源名称及sql语句获取数据,并将数据遍历输出

添加JS代码
进入报表设计器页面,选择报表页面tab,选择开发》javascript,添加js代码

  1. //数据源名称demo
  2. var datas = anyrt.reportSelectSql ("demo", "select * from RPT_VALUE");
  3. //获取table对象
  4. var table = anyrt.getGridObject();
  5. //清空table中内容
  6. table.empty();
  7. //遍历json对象数组
  8. for(var i = 0; i < datas.length; i++) {
  9. var json = datas[i];
  10. var html = "<tr>";
  11. html += "<td>" +json.name+ "</td>" + "<td>" +json.t_val+"</td>";
  12. html +="</tr>"
  13. table.append(html);
  14. }
  15. //根据参数条件查询数据集数据
  16. var sql = "select * from RPT_VALUE where NAME=':name'";
  17. datas = anyrt.reportSelectSql ("demo", sql, {name:"上海"});
  18. for(var i = 0; i < datas.length; i++) {
  19. var json = datas[i];
  20. var html = "<tr style='background:#ccc'>";
  21. html += "<td>" +json.name+ "</td>" + "<td>" +json.t_val+"</td>";
  22. html +="</tr>"
  23. table.append(html);
  24. }

预览

4. JS调用报表存储过程
通过js调用报表存储过程

添加JS代码
进入报表设计器页面,选择报表参数页面tab,选择开发》javascript,添加js代码
在参数页面 第一个单元格定义一个 按钮

  1. var tdA1 = anyrt.getArgCellByPos("A1");
  2. tdA1.find("input").click(function() {
  3. var flag = anyrt.reportExeSql("jreport", "{call in_param(1, 'name')}");
  4. if(flag) {
  5. //success
  6. } else {
  7. //fail
  8. }
  9. });

jreport是数据源名称,in_param 存储过程名称,1,name 是 IN 模式参数

5. JS增加图片图标
在报表文本后增加一些自定义的图标
上传图片文件
进入报表设计器页面,选择参数页面tab,选择开发》javascript,选择静态文件上传图片

添加JS代码
进入报表设计器页面,选择参数页面tab,选择开发》javascript,添加js代码

  1. //获取报表table所有行
  2. var rows = anyrt.getRows();
  3. for(var i = 0; i < rows.length; i++) {
  4. //获取td单元格对象
  5. var td = anyrt.getCellByRowColNum(i, 1);
  6. var text = td.html();
  7. var _img = $("<img src='/dmp/anyrt/file/201803/9ad2c76e-d7ef-4997-951e-4b45c7f2bb0c.png'>");
  8. //将上传的图片放于文本后面
  9. td.empty().append(text).append(_img);
  10. }

预览