You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenEdge Browse中按Enter键跳转至右侧单元格的需求

自定义OpenEdge Browse组件Enter键跳转行为

要修改特定Browse组件的Enter键行为,让按下Enter时跳转到当前单元格右侧单元格,而非同一列下一行,可以通过拦截Browse的KEY事件实现,具体步骤如下:

  • 拦截Enter键事件:在目标Browse的KEY触发器中捕获Enter键(ASCII码10),覆盖默认逻辑。
  • 获取当前单元格位置:通过Browse的CURRENT-COLUMN和CURRENT-ROW属性获取当前选中的列、行索引。
  • 计算目标单元格:将当前列索引+1,若到达最后一列则可根据需求重置为第一列。
  • 设置新选中单元格:调用SET-CELL()方法定位到目标单元格,再通过SET-FOCUS()确保焦点转移,最后用RETURN NO-APPLY阻止默认行为。

示例代码

/* 替换browse-name为你的Browse组件名称 */
ON KEY OF browse-name DO:
    IF LASTKEY = 10 THEN { /* 捕获Enter键 */
        DEFINE VARIABLE iCurrCol AS INTEGER NO-UNDO.
        DEFINE VARIABLE iNextCol AS INTEGER NO-UNDO.
        DEFINE VARIABLE iCurrRow AS INTEGER NO-UNDO.

        /* 获取当前选中的列和行 */
        iCurrCol = browse-name:CURRENT-COLUMN.
        iCurrRow = browse-name:CURRENT-ROW.

        /* 计算下一列,最后一列则跳转至第一列 */
        iNextCol = iCurrCol + 1.
        IF iNextCol > browse-name:NUM-COLUMNS THEN
            iNextCol = 1.

        /* 定位到目标单元格并设置焦点 */
        browse-name:SET-CELL(iCurrRow, iNextCol).
        browse-name:SET-FOCUS().

        /* 阻止默认的Enter键行为 */
        RETURN NO-APPLY.
    }
END.

针对特定列的扩展

如果仅需要指定列(如示例中的“Sacar de Lima”列)触发该行为,其他列保留默认逻辑,可添加列名判断:

ON KEY OF browse-name DO:
    IF LASTKEY = 10 THEN {
        DEFINE VARIABLE iCurrCol AS INTEGER NO-UNDO.
        DEFINE VARIABLE iNextCol AS INTEGER NO-UNDO.
        DEFINE VARIABLE iCurrRow AS INTEGER NO-UNDO.

        iCurrCol = browse-name:CURRENT-COLUMN.
        iCurrRow = browse-name:CURRENT-ROW.

        /* 仅对指定列执行自定义跳转 */
        IF browse-name:COLUMN(iCurrCol):NAME = "Sacar de Lima" THEN {
            iNextCol = iCurrCol + 1.
            IF iNextCol > browse-name:NUM-COLUMNS THEN
                iNextCol = 1.

            browse-name:SET-CELL(iCurrRow, iNextCol).
            browse-name:SET-FOCUS().
            RETURN NO-APPLY.
        } ELSE {
            /* 其他列保留默认Enter键行为 */
            RETURN APPLY.
        }
    }
END.

该方案适用于OpenEdge 11.6.4版本,无论Browse是基于临时表还是物理表的freeform query创建,均可正常生效。

内容的提问来源于stack exchange,提问作者Ezequiel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 09:59:58