上次分享了移动端报表JS开发的系统概念,后来我又回去摸索了一些案例。之前接触到的FineReport的APP客户端可以用来打卡签到,就好奇研究了以下,这次就来聊一聊报表移动端开发如何实现定位功能。
在用FineReport设计模板的时候添加一个按钮控件,点击该按钮的时候,获取当前地理位置,并将该位置信息复制给某个单元格,最后在客户端填报当前模板即可。
实现如下图所示效果,点击地理位置按钮获取当前位置与当前时间,并显示在下方对应的单元格中:
打开设计器,新建一张模板,按照如下图所示样式设计模板,其中E2单元格为按钮控件,控件名称为地理位置,C5为下拉框控件,E5为时间控件:
获取当前地理位置有两种方式,一个是点击按钮获取地理位置,一个是直接打开模板的时候就获取位置,示例中,我们是想实现通过点击按钮获取地理位置。
通过点击按钮获取地理位置
打开按钮的控件设置,为该控件添加一个点击事件,如下图:
js如下:
1. FR.location(function(status, message){ //获取地理位置 2. if(status=="success") { 3. //定位成功,message返回经纬度值 4. FR.Msg.alert("当前位置是" + message); 5. contentPane.setCellValue(2, 3, message); 6. } else { 7. //定位失败,message返回对应的错误信息 8. FR.Msg.alert(message); //定位失败 9. } 10. });
FineReport通过FR.location方法获取当前位置,如果status值为success,则表示获取地理位置成功否则定位失败,如果定位成功,则将返回的地理位置信息赋值给C4单元格。
但是该方法只在移动端有用,如果在web点击该按钮事件获取地理位置,则直接提示定位失败。
加载结束后获取当前位置
如果想在模板加载结束之后就获取到当前地理位置,那么只需要将上述代码添加到加载结束后事件中即可,打开模板,点击模板>模板web属性>填报页面设置,添加一个加载结束事件,如下图:
在模板中还需要将当前签到时间也赋值过去,所以还需要在按钮的点击事件中获取到当前时间,并赋值给E4单元格,js如下:
11. var myDate = new Date(); 12. var mytime=myDate.getFullYear()+"-"+myDate.getMonth()+1+"-"+myDate.getDate()+" "+myDate.getHours()+":"+myDate.getMinutes()+":"+myDate.getSeconds(); //获取当前时间 13. contentPane.setCellValue(4, 3, mytime);
按钮点击事件全部js如下:
14. FR.location(function(status, message){ //获取地理位置 15. if(status=="success") { 16. //定位成功,message返回经纬度值 17. FR.Msg.alert("当前位置是" + message); 18. contentPane.setCellValue(2, 3, message); 19. var myDate = new Date(); 20. var mytime=myDate.getFullYear()+"-"+myDate.getMonth()+1+"-"+myDate.getDate()+" "+myDate.getHours()+":"+myDate.getMinutes()+":"+myDate.getSeconds(); //获取当前时间 21. contentPane.setCellValue(4, 3, mytime); 22. 23. } else { 24. //定位失败,message返回对应的错误信息 25. FR.Msg.alert(message); //定位失败 26. } 27. });2.4 效果查看
将该模板添加到数据决策系统的节点树上,其操作方法请查看添加模板,其中模板的预览方式为填报,如下图:
根据添加服务器章节介绍的操作步骤,用移动端登录该系统,访问该张模板,点击地理位置按钮获取当前地理位置和当前时间,如下图:
但是,FineReport获取到的地理位置是经纬度,如需要确定其具体位置,就需要另外转换。
移动端的开发还在持续学习中,感兴趣的朋友可以和我一起探讨研究。
相关推荐
本文针对FineReport在移动端的JavaScript(JS)二次开发给出了一些示例和说明。以下详细知识点涵盖了移动端报表开发中如何利用FineReport的JS功能进行开发。 首先,了解移动端报表的概念及其发展趋势是非常重要的。...
《移动端App商城页面设计与开发详解》 在数字化时代的今天,移动端App已经成为人们日常生活中不可或缺的一部分,特别是在电商领域,移动商城App更是占据了主导地位。本资料包“全套移动端_app_页面-商城-html.zip”...
在压缩包中,"HTML5 资料"可能包含了关于HTML5新标签的详细解释、移动端开发的示例代码、教程或者相关工具的介绍。通过学习这些资料,开发者可以深入理解HTML5的新特性和如何将其应用于移动端开发,从而提升开发效率...
在移动应用开发中,日历插件是一种常见且重要的组件,尤其在JavaScript开发中,它为用户提供了方便的方式来查看和管理日期相关的事件。"Calendar 移动端日历插件"是一个专为移动设备设计的JavaScript日历解决方案,...
JavaScript应用实例-界面示例-登录.js
"基于umi+antd-mobile的移动端项目模板"是一个针对移动端应用开发的高效解决方案,它结合了两个强大的工具:umi框架和antd-mobile组件库。这个模板提供了一个快速启动的项目结构,旨在帮助开发者更高效地构建高质量...
7. **错误处理和调试**:在开发过程中,要关注可能出现的兼容性问题,尤其是在不同设备和浏览器上的表现。使用开发者工具的模拟器和远程调试功能可以帮助定位和解决问题。 在名为`relation-graph`的压缩包文件中,...
本文档旨在帮助开发者深入了解泛微OA移动端流程开发的操作步骤与注意事项,通过详细的指导,使开发者能够更好地利用现有资源进行高效开发。 #### 二、系统运行要求 为了确保泛微OA移动端流程开发工作的顺利进行,需...
JavaScript代码可以与C/C++代码进行交互,例如通过`wke.net函數`来执行JS代码或注册JS回调函数,以处理来自JavaScript的事件。 2. **示例项目** - **wke示例-杂志翻书.bat**:这个示例可能展示了一个模拟杂志翻页...
现在,我们为您提供了微信小程序的项目源码,包括原生开发框架和效果截图示例。这份资源不仅能让您深入了解微信小程序的开发流程,还能直接复用其中的代码和设计,加速您的项目开发进程。无论是个人学习还是企业项目...
现在,我们为您提供了微信小程序的项目源码,包括原生开发框架和效果截图示例。这份资源不仅能让您深入了解微信小程序的开发流程,还能直接复用其中的代码和设计,加速您的项目开发进程。无论是个人学习还是企业项目...
现在,我们为您提供了微信小程序的项目源码,包括原生开发框架和效果截图示例。这份资源不仅能让您深入了解微信小程序的开发流程,还能直接复用其中的代码和设计,加速您的项目开发进程。无论是个人学习还是企业项目...
在移动端开发中,日历组件是一个非常常见的需求,它用于展示日期并允许用户进行选择或交互。本项目名为“移动端日历calendar-原生js”,它完全基于JavaScript(不依赖任何第三方库)来实现,提供了丰富的功能,如...
JavaScript允许开发人员添加交互性,比如表单验证、动画效果、响应用户事件等。在H5项目中,JavaScript通常与HTML和CSS(样式表)配合工作,构成前端的“三位一体”技术栈。 `JS`、`CSS`和`style`目录分别包含了...
水晶报表(Crystal Reports)是一款功能强大的报表设计工具,它被广泛应用于.NET Framework环境下的应用程序开发,特别是与C#语言的结合。此压缩包提供的"水晶报表-C#-示例"包含了一系列的实例,旨在帮助开发者更好...
在移动端应用开发中,图片浏览是一个非常常见的需求,特别是在社交平台或者个人相册类应用中。"移动端图片浏览示例" 提供了一种解决方案,它借鉴了QQ空间和微信朋友圈的图片浏览体验,旨在为用户提供流畅且交互丰富...
原生js移动端整屏滑动效果,上下滑屏。兼容Android,ios
总而言之,Turn.js是一款优秀的JavaScript库,特别适合用于移动端H5开发中实现翻书效果。它不仅支持在浏览器上运行,还能在iOS和Android等移动设备上提供良好的交互体验。通过本文的介绍,相信开发者们可以更好地...