最近对移动端的报表开发颇有研究,细磨精算了好久,虽然到现在还是“囊中羞涩”,但决定还是先抛砖引玉,拿点小干货出来和大家分享。

研究的工具是比较有代表性的FineReport。

1、  移动端哪些地方支持调用js

web事件 分页预览 填报预览
加载结束事件 √ X
填报成功事件 -- √
报表内部js 单元格 图表
超级链接js √ √
控件事件 参数控件 填报控件 表单控件
初始化后事件 √ √ X
编辑前 √ √ X
编辑后 √ √ X
编辑结束 √ √ X
点击 √ √ X
状态改变 √ √ √

2、报表控件支持的脚本函数

函数名 函数描述 填报控件 参数控件 表单控件
setEnable 设置控件的可用性 √ √ √
isEnable 判断控件是否可用 √ √ √
setVisible 设置控件的可见性 √ √ √
isVisible 判断控件的可见性 √ √ √
setValue 设置控件值 √ √ √
getValue 获取控件的值 √ √ √
setText 设置控件的显示值 √ √ √
getText 获取控件的显示值 √ √ √
reset 重置控件 √ √ √
fireEvent 触发指定名字的事件 √ √ √

3、报表控件支持的脚本函数

函数名 函数描述 补充说明 实现
contentPane 当前报表对象 无 √
currentPageIndex 当前所在页 contentPane常用属性 只有分页预览报表才有 √
reportTotalPage 总页数 contentPane常用属性 只有分页预览报表才有 √
gotoFirstPage 首页 无 √
gotoPreviousPage 上一页 无 √
gotoNextPage 下一页 无 √
gotoLastPage 末页 无 √
gotoPage(n) 跳转到某一页 包含1个参数,表示跳转到第几页 √

4、  填报预览报表支持的脚本函数

函数名 函数描述 补充说明 实现
contentPane 当前报表对象 无 √
verifyReport 数据校验 只有填报表才可以用,contentPane常用方法 √
writeReport 提交报表 只有填报表才可以用,contentPane常用方法 √
verifyAndWriteReport 数据校验后提交报表 只有填报表才可以用,contentPane常用方法 √
curLGP current logicpane contentPane常用属性,只有填报预览及表单预览下才有 √
getCellValue(cell) 获取指定格子的值 包含1个参数,单元格,只有填报下有,curLGP常用方法 √
getCellValue(col, row) 获取指定格子的值 包含2个参数,列和行,只有填报下有,curLGP常用方法 √
setCellValue(cell, null, value) 设置指定格子的值 包含3个参数,单元格,空和值,只有填报下有,curLGP常用方法 √
setCellValue(col, row, value) 设置指定格子的值 包含3个参数,列,行和值,只有填报下有,curLGP常用方法 √
getWidgetByCell 获取指定单元格中的控件 包含1个参数,单元格,contentPane常用方法 √
getWidgetByName 获取指定名字的控件 包含1个参数,控件名,contentPane常用方法 √
getWidgetsByName 获取指定名称的扩展控件,返回一个数组 包含1个参数,控件名,contentPane常用方法 √

5、常用的工具类脚本函数

函数名 函数描述 补充说明 实现
FR.Msg.alert 弹出消息框函数 包含3个参数,分别表示:标题,内容,回调函数 √
FR.Msg.confirm 值确认弹出框函数 包含3个参数,分别表示:标题,值,回调函数 √
FR.Msg.prompt 可修改值的值确认弹出框函数 包含4个参数,分别表示:标题,说明,值,回调函数 √
FR.Msg.toast 在页面边缘出现的消息提示块,一小段时间后自动消失 包含1个参数,表示要提示的信息 √
FR.cjkEncode 进行cjk编码 包含1个参数,字符串 √
FR.cjkDecode 进行cjk解码 包含1个参数,字符串 √
FR.location 地理位置获取 包含一个回掉函数返回获取状态及信息 √
FR.doHyperlinkByGet /FR.doHyperlinkByPost 超级连接 包含2个参数,分别表示:超链的url, 传递的参数 √
FR.ajax 异步请求函数 / √
_g().parameterCommit() 分页预览及填报预览自动查询 / √
contentPane.setAppearRefresh() 页面再现的时候自动刷新 / √

以上对应着报表的功能大致罗列了以下框架,下面先举一些小示例

获取控件的一系列方法

this.options.form.getWidgetByName("控件名");  //参数界面及表单中获取控件 
contentPane.getWidgetByCell("单元格");  //填报界面获取控件
contentPane.getWidgetByName("控件名");   //填报界面获取控件  

填报成功后刷新当前页

var url = "/WebReport/ReportServer?reportlet=js/shauxindangqian.cpt&op=write&__replaceview__=true";
FR.doHyperlinkByGet(url,{para:paravalue});  //刷新当前页面  

js获取表单图表组件并刷新数据

var c=FR.Chart.WebUtils.getChart("chart0");
c.dataRefresh();  

 延时函数

setTimeout(function() {  }, 500);  

A超链至B填报,B提交数据后返回A时,A自动刷新显示新的数据

contentPane.setAppearRefresh();  //在A的加载结束后事件中添加js

以后会陆续分享一些移动端实用功能的应用实例,还有HTML5,欢迎一起探讨。

移动端报表JS开发示例的更多相关文章

  1. 移动端报表JS开发示例--获取定位

    上次分享了移动端报表JS开发的系统概念,后来我又回去摸索了一些案例.之前接触到的FineReport的APP客户端可以用来打卡签到,就好奇研究了以下,这次就来聊一聊报表移动端开发如何实现定位功能. 1 ...

  2. 移动端报表JS开发演示样例

    近期对移动端的报表开发颇有研究,细磨精算了好久,尽管到如今还是"囊中羞涩",但决定还是先抛砖引玉,拿点小干货出来和大家分享. 研究的工具是比較有代表性的FineReport. 1. ...

  3. 关于Finereport移动端报表二次开发的两个小例子

    例1:刷新页面 1. 问题描述 A超链至B填报,B提交数据后返回A时,A自动刷新显示新的数据. 2. 解决方案 1. contentPane.setAppearRefresh();  //在A的加载结 ...

  4. 原生js开发,无依赖、轻量级的现代浏览器图片懒加载插件,适合在移动端开发使用

    优势 1.原生js开发,不依赖任何框架或库 2.支持将各种宽高不一致的图片,自动剪切成默认图片的宽高 比如说你的默认图片是一张正方形的图片,则各种宽度高度不一样的图片,自动剪切成正方形. 完美解决移动 ...

  5. SharePoint 2013 APP 开发示例 (六)服务端跨域访问 Web Service (REST API)

    上个示例(SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API))是基于JavaScript,运行在web browser内去访问REST AP ...

  6. 基于node.js 的 websocket的移动端H5直播开发

    这一篇介绍一下基于node.js 的 websocket的移动端H5直播开发, 下载文章底部的源码,我是用vscode打开, 首先在第一个终端运行 npm run http-server 这个指令是运 ...

  7. Node.js学习笔记——Node.js开发Web后台服务

    一.简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.j ...

  8. Node.js开发Web后台服务

    一.简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.j ...

  9. 用Vue.js开发微信小程序:开源框架mpvue解析

    前言 mpvue 是一款使用 Vue.js 开发微信小程序的前端框架.使用此框架,开发者将得到完整的 Vue.js 开发体验,同时为 H5 和小程序提供了代码复用的能力.如果想将 H5 项目改造为小程 ...

随机推荐

  1. 如何搭建git服务器

    一.前言 现在越来越多的公司用git进行版本控制,不过git是默认是开源的,如果私有的话是需要付费的,如果不想付费自己可以搭建一个git服务器用来版本控制. 二.服务器端操作 1.安装git sudo ...

  2. chattr用法

    [root@localhost tmp]# umask 0022 一.chattr用法 1.创建空文件attrtest,然后删除,提示无法删除,因为有隐藏文件 [root@localhost tmp] ...

  3. 1199 Problem B: 大小关系

    求有限集传递闭包的 Floyd Warshall 算法(矩阵实现) 其实就三重循环.zzuoj 1199 题 链接 http://acm.zzu.edu.cn:8000/problem.php?id= ...

  4. Spring MVC初始化参数绑定

    初始化参数绑定与类型转换很类似,初始化绑定时,主要是参数类型 ---单日期 在处理器类中配置绑定方法  使用@InitBinder注解 在这里首先注册一个用户编辑器 参数一为目标类型   proper ...

  5. .NET Core dotnet 命令大全

    dotnet 命令大全,让你理解dotnet 命令. 本文将以一个实例串起 dotnet 所有命令,让你玩转dotnet 命令. 本篇文章编写环境为windows 10 ,dotnet 命令同样适用于 ...

  6. .NET基础拾遗(4)委托、事件、反射与特性

    Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...

  7. Goodbye2014,Hello2015

    正如我在研发会议上说的,总结是为了更好的计划:而计划,则是让你做事有目标,有方向:有了目标和方向,你才能真正把事情做成! 总的来说2014年可以归纳为下图: 2014年总结 一年的活动,基本可以归纳为 ...

  8. 使用T4模板生成不同部署环境下的配置文件

    在开发企业级应用的时候,通常会有不同的开发环境,比如有开发环境,测试环境,正式环境,生产环境等.在一份代码部署到不同环境的时候,不同环境的配置文件可能需要根据目标环境不同而不同.比如在开发环境中,数据 ...

  9. 小丁带你走进git的世界二-工作区暂存区分支

    小丁带你走进git的世界二-工作区暂存区分支 一.Git基本工作流程 1.初始化一个仓库 git  init git  clone git仓库分为两种情况: 第一种是在现有项目或目录下导入所有文件到 ...

  10. [APUE]不用fcntl实现dup2函数功能

    dup2的函数定义为: #include <unistd.h> int dup2(int src_fd, int new_fd); 自己实现dup2函数有几个关键点: 1,检查给定的源fd ...