对于企业大多数员工来说,由于其工作位置是固定的,可以有多种方式进行上班打卡签到以保证该员工有按时正常来上班,但是对于经常需要出差,去客户现场的员工来说,就无法保证他们是否有去上班,所以希望能通过手机位置定位来保证员工有正常上班。
上述情况可以通过FineReport模板添加一个按钮控件,点击该按钮的时候,获取当前地理位置,并将该位置信息复制给某个单元格,最后员工填报当前模板即可。
实现如下图所示效果,点击地理位置按钮获取当前位置与当前时间,并显示下下方对应的单元格中:
模板制作
打开设计器,新建一张模板,按照如下图所示样式设计模板,其中E2单元格为按钮控件,控件名称为地理位置,C5为下拉框控件,E5为时间控件:
获取当前地理位置
获取当前地理位置有两种方式,一个是点击按钮获取地理位置,一个是直接打开模板的时候就获取位置,示例中,想实现通过点击按钮获取地理位置。
<!--[if !supportLists]-->1)<!--[endif]-->通过点击按钮获取地理位置
打开按钮的控件位置,为该控件添加一个点击事件,如下图:
相应代码如下:
FR.location(function(status, message){ //获取地理位置
if(status=="success") {
//定位成功,message返回经纬度值
FR.Msg.alert("当前位置是" + message);
contentPane.setCellValue(2, 3, message);
} else {
//定位失败,message返回对应的错误信息
FR.Msg.alert(message); //定位失败
}
});
FineReport通过FR.location方法获取当前位置,如果status值为success,则表示获取地理位置成功,否则定位失败,如果定位成功,则将返回的地理位置信息赋值给C4单元格。
要注意的是该方法只在移动端有用,如果在web点击该按钮事件获取地理位置,则直接提示定位失败。
<!--[if !supportLists]-->2)<!--[endif]-->加载结束后获取当前位置
如果想在模板加载结束之后就获取到当前地理位置,那么只需要将上述代码添加到加载结束后事件中即可,打开模板,点击模板>模板web属性>填报页面设置,添加一个加载结束事件,如下图:
获取当前时间
在模板中还需要将当前签到时间也赋值过去,所以还需要在按钮的点击事件中获取到当前时间,即给E2单元格再添加一个点击事件,并赋值给E4单元格,代码如下:
var myDate = new Date();
var mytime=myDate.getFullYear()+"-"+myDate.getMonth()+1+"-"+myDate.getDate()+" "+myDate.getHours()+":"+myDate.getMinutes()+":"+myDate.getSeconds(); //获取当前时间
contentPane.setCellValue(4, 3, mytime);
按钮点击事件全部代码如下:
FR.location(function(status, message){ //获取地理位置
if(status=="success") {
//定位成功,message返回经纬度值
FR.Msg.alert("当前位置是" + message);
contentPane.setCellValue(2, 3, message);
var myDate = new Date();
var mytime=myDate.getFullYear()+"-"+myDate.getMonth()+1+"-"+myDate.getDate()+" "+myDate.getHours()+":"+myDate.getMinutes()+":"+myDate.getSeconds(); //获取当前时间
contentPane.setCellValue(4, 3, mytime);
} else {
//定位失败,message返回对应的错误信息
FR.Msg.alert(message); //定位失败
}
});
效果查看
将该模板添加到数据决策系统的节点树上,其中模板的预览方式为填报,如下图:
用移动端登录该系统,访问该张模板,点击地理位置按钮获取当前地理位置和当前时间,如下图:
FineReport中获取的地理位置是经纬度,如果需要确定其具体位置的话,还需要另外转换。
相关推荐
- `FR.location`:获取地理位置信息。 - `FR.doHyperlinkByGet/Post`:通过GET/POST请求打开超链接。 - `FR.ajax_g().parameterCommit()`:分页预览及填报预览自动查询。 #### 具体使用示例 - 获取控件的方法示例...
用户有自己的app,希望把报表的移动端【本文中以FineReport移动端为例】功能集成到他们的app里面去,而不需要安装两个app。Android端和IOS端的集成接口是不一样的,下面我们分开详述如何实现。
FR.location用于获取地理位置信息;FR.doHyperlinkByGet和FR.doHyperlinkByPost用于异步请求;FR.ajax_g().parameterCommit用于自动查询;contentPane.setAppearsRefresh用于页面的自动刷新。 最后,FineReport在JS...
移动端报表开发中的定位功能是移动应用中常用的一个功能,它能够帮助应用获取用户的地理位置信息。在JS开发中,实现定位功能主要涉及到JavaScript API的使用以及对移动端设备的兼容性考虑。本文将通过一个具体的案例...
最后,FineReport支持移动端展示,用户可以学习如何优化报表布局,使其适应手机和平板等不同设备的屏幕尺寸,实现跨平台的数据查看和分析。 总的来说,通过《FineReport自学习题 V2》这个压缩包,用户可以从理论到...
8. **移动端展示**:FineReport支持移动设备浏览,用户可以在手机或平板上查看报表。答案可能会介绍如何优化报表以适应不同屏幕尺寸。 9. **模板的保存与分享**:学习过程中,用户会学习到如何保存模板以便重复使用...
8. **移动设备支持**:随着移动办公的普及,FineReport支持移动端查看报表。文档会说明如何优化报表以适应不同屏幕尺寸,以及移动应用的配置方法。 9. **API与插件开发**:对于开发者,FineReport提供了API接口和...
为了满足这种需求,报表开发工具FineReport提供了针对移动端的自适应方案,确保报表能够在不同尺寸的移动设备上正常显示。本文将详细介绍FineReport普通报表的移动端自适应方案及其实施步骤,旨在帮助开发者更好地...
在FineReport中,数据集是报表设计的基础,它负责从数据库中获取数据。通过设置数据集参数,我们可以将用户的选择(比如需要显示的列)作为输入,动态地调整数据集的查询语句。在“实现动态列sql.txt”文件中,应该...
FineReport 需要连接数据库以获取数据。在本教程中,我们使用 MySQL 8.0.23 创建了一个名为 yimi 的数据库,并创建了一个名为 student 的表。用户需要了解如何创建数据库和表,并插入测试数据。 知识点 3:...
7. 移动报表配置:介绍如何在移动端查看报表,以及移动版FineReport的特色功能。 8. 数据填报功能:演示如何设计数据填报表单,设置验证规则,以及处理填报数据。 9. 自动化调度:详细说明如何设置定时任务,实现...
2. 移动端访问:FineReport提供了适应移动端的报表展示方案,用户可以在手机或平板上查看报表。 3. API集成:通过FineReport提供的API,可以将报表嵌入到其他业务系统中,实现数据的无缝对接。 五、相关说明 本教程...
FineReport手机端获取当前定位信息
开发者需要将其解压并按照FineReport的文档指示,将这些文件放置到正确的位置,以便在项目中使用。 总之,FineReport的jar包对于基于Java和SpringBoot的项目来说,是实现报表功能的重要组成部分。通过合理配置和...
在JavaScript中,可以通过FineReport提供的API,如`this.options.form.getWidgetByName("控件名称")`,获取到需要的控件对象。这样就可以操作控件的值了。值得注意的是,`getWidgetByName`中的参数“控件名称”应与...
数据分析软件FineReport(V7.1.1)移动端功能:介绍数据分析(FineAnalysis)是帆软软件有限公司针对移动平台推出的⼀款数据可视化分析工具。通过此移动客户端,用户可以充分利用零碎时间,不局限于场所,随时随地,...
如果无法直接通过Maven或Gradle获取,可以将提供的jar文件放到项目的`lib`目录下,并配置为本地库。 3. **配置应用**:在Spring Boot的配置文件`application.properties`或`application.yml`中,需要配置...
创建微应用的URL需要加上参数,例如&corpid=$CORPID$,以便FineReport后台可以获取到corpid并取到钉钉userid,实现单点登录。 在钉钉成员与报表用户的关联设置中,需要读取钉钉通讯录成员的相关信息,包括userid、...
《FineReport帮助文档Word版》是为了解决官方FineReport帮助文档在查看时可能存在不便的问题而制作的。原版文档的左侧导航树未完全展开,用户需要逐个点击才能查看具体内容,这无疑增加了查找和理解信息的时间成本。...