起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 29602|回复: 12

[结贴] 报表中如何实现用键盘的上下左右键移动单元格的光标

[复制链接]

170

主题

838

帖子

2140

积分

金牌会员

Rank: 6Rank: 6

积分
2140
QQ
发表于 2020-5-7 11:14:11 | 显示全部楼层 |阅读模式
版本: BeX5V3.5 小版本号:
数据库: Oracle 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 其它 浏览器: Chrome
如题,由于报表较大,为了方便用户填写数据,想实现通过上下左右键移动单元格的光标。
你不向前奔跑,没有人愿意停下来等你!

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2020-5-7 13:16:05 | 显示全部楼层
报表中本来就不能编辑
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

170

主题

838

帖子

2140

积分

金牌会员

Rank: 6Rank: 6

积分
2140
QQ
 楼主| 发表于 2020-5-8 11:47:40 | 显示全部楼层
jishuang 发表于 2020-5-7 13:16
报表中本来就不能编辑

用的是excelLayout,里面放的input控件
你不向前奔跑,没有人愿意停下来等你!
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2020-5-8 13:34:34 | 显示全部楼层
input组件好像默认就会左右移动按Tab键看看。如果不行就需要自己在input上键盘事件中需要自己控制,跟html中控制一样
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

170

主题

838

帖子

2140

积分

金牌会员

Rank: 6Rank: 6

积分
2140
QQ
 楼主| 发表于 2020-5-8 19:05:44 | 显示全部楼层
jishuang 发表于 2020-5-8 13:34
input组件好像默认就会左右移动按Tab键看看。如果不行就需要自己在input上键盘事件中需要自己控制,跟html ...

用户不习惯用tab键,也没有上下左右键填数据方便,请问有类似案例或者参考代码吗?
你不向前奔跑,没有人愿意停下来等你!
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2020-5-8 19:41:18 | 显示全部楼层
没有
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复

使用道具 举报

170

主题

838

帖子

2140

积分

金牌会员

Rank: 6Rank: 6

积分
2140
QQ
 楼主| 发表于 2020-5-8 19:56:13 | 显示全部楼层
本帖最后由 hua_love2011 于 2020-5-8 20:02 编辑

请问在一个表格里面如何获取下一行当列的单元格,不然按照下面的方式实现得把人累死。表样如下图。大一点的报表能有近200个字段
Model.prototype.input5Keydown = function(event) {
                this.moveInputFocus(event, "", "", "input1", "input6");
        };

        Model.prototype.input1Keydown = function(event) {
                this.moveInputFocus(event, "input5", "", "input49", "input53");
        };

        Model.prototype.moveInputFocus = function(event, leftId, upId, rightId, nextId) {
                var keyCode = event.keyCode;

                if (keyCode == 37) { // 向左
                        $(this.getElementByXid(leftId)).focus();
                } else if (keyCode == 38) {// 向上
                        $(this.getElementByXid(upId)).focus();
                } else if (keyCode == 39) {// 向右
                        $(this.getElementByXid(rightId)).focus();
                } else if (keyCode == 40) {// 向下
                        $(this.getElementByXid(nextId)).focus();
                }
        } QQ截图20200508200020.png
你不向前奔跑,没有人愿意停下来等你!
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2020-5-9 09:06:11 | 显示全部楼层
excel布局最终运行后是table就标准的js中table的解析,或者就直接找固定的input组件
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

170

主题

838

帖子

2140

积分

金牌会员

Rank: 6Rank: 6

积分
2140
QQ
 楼主| 发表于 2020-5-9 09:23:26 | 显示全部楼层
jishuang 发表于 2020-5-9 09:06
excel布局最终运行后是table就标准的js中table的解析,或者就直接找固定的input组件 ...

如果一个模块里面有2个或3个选项卡,里面有用到excelLayout和report,我昨天根据excelLayout或report的ID取不到我具体要操作的table,您说的后者就指我当前用的方法吧
你不向前奔跑,没有人愿意停下来等你!
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2020-5-9 13:19:08 | 显示全部楼层
是的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-26 00:38 , Processed in 0.115902 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表