上次分享了移动端报表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移动端app js接口列表的详细知识点: ### FineReport移动端JS接口概览 #### FineReport移动端支持调用JS的位置 - web事件:包括分页、预览、填报...
在移动应用开发中,日历插件是一种常见且重要的组件,尤其在JavaScript开发中,它为用户提供了方便的方式来查看和管理日期相关的事件。"Calendar 移动端日历插件"是一个专为移动设备设计的JavaScript日历解决方案,...
"基于umi+antd-mobile的移动端项目模板"是一个针对移动端应用开发的高效解决方案,它结合了两个强大的工具:umi框架和antd-mobile组件库。这个模板提供了一个快速启动的项目结构,旨在帮助开发者更高效地构建高质量...
微信小程序,作为腾讯倾力打造的一款轻量级应用,凭借其独特的优势在移动开发领域崭露头角。它无需下载安装,用户扫一扫或搜一下即可打开应用,体验上更加便捷高效。小程序不仅拥有近似原生App的用户体验,还完美...
现在,我们为您提供了微信小程序的项目源码,包括原生开发框架和效果截图示例。这份资源不仅能让您深入了解微信小程序的开发流程,还能直接复用其中的代码和设计,加速您的项目开发进程。无论是个人学习还是企业项目...
7. **错误处理和调试**:在开发过程中,要关注可能出现的兼容性问题,尤其是在不同设备和浏览器上的表现。使用开发者工具的模拟器和远程调试功能可以帮助定位和解决问题。 在名为`relation-graph`的压缩包文件中,...
- `js` 文件夹存放JavaScript代码,包括框架的核心库和可能的插件脚本。 - `css` 文件夹包含了CSS样式表,用于定义界面的样式和布局。 - `demo` 文件夹提供了更多组件的演示,帮助开发者更直观地学习和运用HUI。 ...
现在,我们为您提供了微信小程序的项目源码,包括原生开发框架和效果截图示例。这份资源不仅能让您深入了解微信小程序的开发流程,还能直接复用其中的代码和设计,加速您的项目开发进程。无论是个人学习还是企业项目...
ACCESS数据库示例-C_源代码 ACCESS数据库示例-C_源代码
在移动端开发中,日历组件是一个非常常见的需求,它用于展示日期并允许用户进行选择或交互。本项目名为“移动端日历calendar-原生js”,它完全基于JavaScript(不依赖任何第三方库)来实现,提供了丰富的功能,如...
JavaScript允许开发人员添加交互性,比如表单验证、动画效果、响应用户事件等。在H5项目中,JavaScript通常与HTML和CSS(样式表)配合工作,构成前端的“三位一体”技术栈。 `JS`、`CSS`和`style`目录分别包含了...
BI示例-中国式报表可视化分析
在移动端应用开发中,图片浏览是一个非常常见的需求,特别是在社交平台或者个人相册类应用中。"移动端图片浏览示例" 提供了一种解决方案,它借鉴了QQ空间和微信朋友圈的图片浏览体验,旨在为用户提供流畅且交互丰富...
原生js移动端整屏滑动效果,上下滑屏。兼容Android,ios
总而言之,Turn.js是一款优秀的JavaScript库,特别适合用于移动端H5开发中实现翻书效果。它不仅支持在浏览器上运行,还能在iOS和Android等移动设备上提供良好的交互体验。通过本文的介绍,相信开发者们可以更好地...
在移动端查看报表之前,我们需要准备和执行一系列操作。首先,必须下载适用于手机端的报表软件应用程序。以FineReport报表工具为例,这个过程涉及在Android的Google Play商店或iOS的App Store中搜索并下载应用程序。...
### 移动端接口文档示例解析 #### 一、用户接口 在移动应用开发过程中,用户接口的设计至关重要,它不仅决定了用户与系统的交互方式,还直接影响着用户体验的好坏。以下将详细介绍“用户接口”部分的相关知识点。 ...
本示例关注的是Xamarin移动端开发中的HTTP POST和GET请求,这是任何网络应用基础通信的关键部分。 首先,让我们深入理解HTTP(超文本传输协议)的基本概念。HTTP是互联网上应用最广泛的一种网络协议,用于从万维网...