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

研究的工具是比較有代表性的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. Androidclient与服务端交互之登陆演示样例

    今天了解了一下androidclient与服务端是如何交互的,发现事实上跟web有点类似吧,然后网上找了大神的登陆演示样例.是基于IntentService的 1.后台使用简单的servlet,支持G ...

  3. 移动端报表JS开发示例

    最近对移动端的报表开发颇有研究,细磨精算了好久,虽然到现在还是“囊中羞涩”,但决定还是先抛砖引玉,拿点小干货出来和大家分享. 研究的工具是比较有代表性的FineReport. 1.  移动端哪些地方支 ...

  4. Android 编程之第三方开发 MaoZhuaWeiBo微博开发演示样例-1

    在大学期间我做过非常多类似这种APP.这个是我们小组之前做的,我后期增加非常多新元素.完好了这个应用,由于为了加强 专业技术嘛.也是常常熬夜写些小东西,嘿嘿.只是还算不错.起码技术长进了不少嘛,还是非 ...

  5. Java连接redis的使用演示样例

    Java连接redis的使用演示样例 Redis是开源的key-value存储工具,redis通经常使用来存储结构化的数据,由于redis的key能够包括String.hash.listset和sor ...

  6. SNF快速开发平台MVC-各种级联绑定方式,演示样例程序(包含表单和表格控件)

    做了这么多项目,经常会使用到级联.联动的情况. 如:省.市.县.区.一级分类.二级分类.三级分类.仓库.货位. 方式:有表单需要做级联的,还是表格行上需要做级联操作的. 实现:实现方法也有很多种方式. ...

  7. AppCan移动应用开发平台新增9个超有用插件(内含演示样例代码)

    使用AppCan平台进行移动开发.你所须要具备的是Html5+CSS +JS前端语言基础.此外.Hybrid混合模式应用还需结合原生语言对功能模块进行封装,对于没有原生基础的开发人员,怎样实现App里 ...

  8. 构造Scala开发环境并创建ApiDemos演示样例项目

    从2011年開始写Android ApiDemos 以来.Android的版本号也更新了非常多,眼下的版本号已经是4.04. ApiDemos中的样例也添加了不少,有必要更新Android ApiDe ...

  9. 让你提前认识软件开发(19):C语言中的协议及单元測试演示样例

    第1部分 又一次认识C语言 C语言中的协议及单元測试演示样例 [文章摘要] 在实际的软件开发项目中.常常要实现多个模块之间的通信.这就须要大家约定好相互之间的通信协议,各自依照协议来收发和解析消息. ...

随机推荐

  1. Web Service 或 WCF调用时读取 XML 数据时,超出最大字符串内容长度配额(8192)解决方法

    1.调用服务时服务 当我们使用 Web Service 或 WCF 服务时,常把读取的数据转化为string类型(xml格式),当数据量达到一 定数量时,会出现以下异常: 错误:格式化程序尝试对消息反 ...

  2. iphone5刷机教程

    如果不想麻烦可以在越狱之后添加源,cydia.china3gpp.com打ios7的补丁就可以了 机器为iphone5 美国sprint有锁版 1. 首先备份需要的程序和数据(把各种缓存的影片删掉再备 ...

  3. PHP取整,四舍五入取整、向上取整、向下取整、小数截取

    PHP取整数函数常用的四种方法: 1.直接取整,舍弃小数,保留整数:intval(): 2.四舍五入取整:round(): 3.向上取整,有小数就加1:ceil(): 4.向下取整:floor(). ...

  4. IOS6 IOS7 Mapkit draw Rout(地图划线)

    IOS7  比较简单 CLLocationCoordinate2D  _start2D; CLLocationCoordinate2D  _end2D; NSArray *_routes; IOS6 ...

  5. Modelsim添加Lattice库

    Step 1 安装好modelsim,并将modelsim的目录添加到系统PATH中. (确认方法:在任意位置同时按下Shift+鼠标右键,在出来的菜单里选择“在此处打开命令窗口”,然后输入vsim, ...

  6. Android数据库高手秘籍(零)——前言

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/38083103 在我刚開始接触Android的时候甚至都不敢相信.Android系统 ...

  7. Vue.js使用-http请求

    Vue.js使用-ajax使用 1.为什么要使用ajax 前面的例子,使用的是本地模拟数据,通过ajax请求服务器数据. 2.使用jquery的ajax库示例 new Vue({ el: '#app' ...

  8. [转] lua 获取本地当月天数

    亲测,无误. 原文传送门:lua 获取本地当月天数 开发中有用到,记录一下. local year,month = os.date("%Y", os.time()), os.dat ...

  9. 【线程】linux之多线程同步互斥技术

      1.同步机制      线程同步机制主要有:互斥量/信号量/条件变量/读写锁等. 2.技术示例 创建2个计数线程A和B,每次计数加1,当为偶数时,A线程计数:当为奇数时,B线程计数.    源码: ...

  10. Linux中查看GNOME版本号

    在使用图形终端时,可以在虚拟终端中直接输入gnome-about,会弹出如下窗口. 或者在纯命令行模式下使用下面命令: $ gnome-about --gnome-version 注:Gnome 3. ...