代码之家  ›  专栏  ›  技术社区  ›  Singularity20XX

大型机(反射会话)-从Excel中确定光标位置

  •  1
  • Singularity20XX  · 技术社区  · 9 年前

    当从Excel控制大型机时,有几个功能可以用来导航和抓取数据。其中一些函数包括.GetString(x,y)、.Putstring(x,x)和.MoveTo(x,y),仅举几个例子。(x表示行#,y表示列#,想想这些类似的坐标)

    我在网上查阅了大量资料;(IBM红皮书、白皮书、谷歌、堆栈、反射api/vba管理器、tek提示、严格致力于大型机的网站等)

    我一直找不到的一个功能;返回大型机窗口中光标当前位置的函数。

    有没有办法做到这一点?

    1 回复  |  直到 9 年前
        1
  •  2
  •   Singularity20XX    9 年前

    我通过在反射的VBE中运行以下代码,找到了如何获得光标位置

    Sub getCoordinates()
    
    Dim ibmCurrentTerminal As IbmTerminal
    Dim ibmCurrentScreen As IbmScreen
    Dim returnValue As Integer
    Set ibmCurrentTerminal = ThisFrame.SelectedView.control
    Set ibmCurrentScreen = ibmCurrentTerminal.Screen
    '---------------------------------------------------------------------
    ibmCurrentTerminal.Productivity.ScreenHistory.ClearAllScreens
    ibmCurrentTerminal.Productivity.RecentTyping.ClearAllItems
    
    Dim CursorColumn As Integer
    Dim valueColumn As Integer
    Dim CursorRow As Integer
    Dim valueRow As Integer
    
    ibmCurrentScreen.CursorColumn = valueColumn
    ibmCurrentScreen.CursorRow = valueRow
    valueColumn = ibmCurrentScreen.CursorColumn
    valueRow = ibmCurrentScreen.CursorRow
    
    MsgBox "(" & valueRow & ", " & valueColumn & ")"
    
    End Sub
    

    如果您想检索光标位置,尽管是通过消息框,这仍然有效