填报表里关于光标的控制说明

1. 问题概述
A:润乾报表提供了强有力的填报功能,支持多表回填、来去无关,从而比起简单的单表直接填报更能适应复杂的业务需求。
B:在填报表中我们通常可能会利用鼠标来定位具体的单元格,然后进行填报操作,
但对于一些银行操作员等,更习惯于利用键盘的方式来控制光标的移动.这样就需要我们对润乾填报表中是光标的跳转顺序有所了解,这样就能根据不同的情况进行调整.

首先介绍一下润乾填报表中是如何控制光标的跳转顺序。
Enter 向右移动(多行输入框中要按住Ctrl键)
Ctrl + left 向左移动
Ctrl + right 向右移动
up 向上移动(多行输入框中要按住Ctrl键)
down 向下移动(多行输入框中要按住Ctrl键)
左右移动可以在全表中循环,上下移动只能在同列中移动。

注意:对于下拉框、下拉日历、下拉树这几种编辑风格,除了点鼠标,任何一种方式均不可移动光标。

2. 原理说明

 

光标跳转是通过com.runqian.report4.input下的input.js文件中的_editorKeyPress()函数控制的,如果对我们默认的跳转方式不满意,可以修改这个js函数,比如:润乾默认情况下,down键是跳到下一行,回车是跳到下一格,如果希望将这两个键的功能对调一下,按down键是跳到下一格,回车是跳到下一行,修改的js函数如下:(13是回车键,40down方向键,将这两个数字对调一下即可)

function _editorKeyPress() {

var keyCode = event.keyCode;

var flag = -1;

var gotoNext = false;

var editor = event.srcElement;

if( keyCode == 39 && event.ctrlKey ) //right

flag = 3;

gotoNext = true;

}

if( keyCode == 13 ) {

flag = 3;

gotoNext = true;

if( editor.tagName == “TEXTAREA” && !event.ctrlKey ) gotoNext = false;

}

if( keyCode == 37 && event.ctrlKey ) //left

flag = 1;

gotoNext = true;

}

if( keyCode == 9 ) {

flag = event.shiftKey ? 1 : 3;

gotoNext = true;

}

if( keyCode == 38 || keyCode == 40 ) {

if( keyCode == 38 ) flag = 2;

if( keyCode == 40 ) flag = 4;

gotoNext = true;

if( editor.tagName == “TEXTAREA” && !event.ctrlKey ) gotoNext = false;

}

if( gotoNext ) {

var cell = _lookupNextCell( editor.editingCell, flag );

if( cell != null ) _bindingEditor( cell );

}

if( keyCode == 9 ) return false;

return true;

}

3. PS:部分KEYCODE常数ASCII码一览表

常数 值 描述
vbKeyLButton 0×1 鼠标左键
vbKeyRButton 0×2 鼠标右键
vbKeyCancel 0×3 CANCEL 键
vbKeyMButton 0×4 鼠标中键
vbKeyBack 0×8 BACKSPACE 键
vbKeyTab 0×9 TAB 键
vbKeyClear 0xC CLEAR 键
vbKeyReturn 0xD ENTER 键
vbKeyShift 0×10 SHIFT 键
vbKeyControl 0×11 CTRL 键
vbKeyMenu 0×12 MENU 键
vbKeyPau** 0*13 PAUSE 键
vbKeyCapital 0×14 CAPS LOCK 键
vbKeyEscape 0×1B ESC 键
vbKeySpace 0×20 SPACEBAR 键
vbKeyPageUp 0×21 PAGE UP 键
vbKeyPageDown 0×22 PAGE DOWN 键
vbKeyEnd 0×23 END 键
vbKeyHome 0×24 HOME 键
vbKeyLeft 0×25 LEFT ARROW 键
vbKeyUp 0×26 UP ARROW 键
vbKeyRight 0×27 RIGHT ARROW 键
vbKeyDown 0×28 DOWN ARROW 键
vbKeySelect 0×29 SELECT 键
vbKeyPrint 0×2A PRINT SCREEN 键
vbKeyExecute 0×2B EXECUTE 键
vbKeySnapshot 0×2C SNAPSHOT 键
vbKeyInsert 0×2D INSERT 键
vbKeyDelete 0×2E DELETE 键
vbKeyHelp 0×2F HELP 键
vbKeyNumlock 0×90 NUM LOCK 键

4. PS:部分JAVASCRIPT KEYCODE 使用说明

值 键盘
keycode 8 = BackSpace BackSpace
keycode 9 = Tab Tab
keycode 12 = Clear
keycode 13 = Enter
keycode 16 = Shift_L
keycode 17 = Control_L
keycode 18 = Alt_L
keycode 19 = Pause
keycode 20 = Caps_Lock
keycode 27 = Escape Escape
keycode 32 = space space
keycode 33 = Prior
keycode 34 = Next
keycode 35 = End
keycode 36 = Home
keycode 37 = Left
keycode 38 = Up
keycode 39 = Right
keycode 40 = Down
keycode 41 = Select
keycode 42 = Print
keycode 43 = Execute
keycode 45 = Insert
keycode 46 = Delete
keycode 47 = Help

本文标签: