'-Begin-----------------------------------------------------------------
'-ReadTableInArray------------------------------------------------------
Sub ReadTableInArray(TableName, ByRef ArrayName)
'-Reset the session---------------------------------------------------
session.findById("wnd[0]/tbar[0]/okcd").text = "/n"
session.findById("wnd[0]/tbar[0]/btn[0]").press
'-Open TAC SE16-------------------------------------------------------
session.findById("wnd[0]/tbar[0]/okcd").text = "/nSE16"
session.findById("wnd[0]/tbar[0]/btn[0]").press
'-View table----------------------------------------------------------
session.findById("wnd[0]/usr/ctxtDATABROWSE-TABLENAME").text = _
TableName
session.findById("wnd[0]/tbar[1]/btn[7]").press
session.findById("wnd[0]/tbar[1]/btn[8]").press
'-Open user specific parameters dialog--------------------------------
'-
'- Attention: Here is a language sprecific code
'-
'---------------------------------------------------------------------
Set Menu = session.findById("wnd[0]/mbar")
Set Einstellungen = Menu.FindByName("Einstellungen", "GuiMenu")
Set BenutzerPar = Einstellungen.FindByName("Benutzerparameter...", _
"GuiMenu")
BenutzerPar.Select()
'-Set the display-----------------------------------------------------
Set ALVGridView = session.findById("wnd[1]/usr/tabsG_TABSTRIP/" & _
"tabp0400/ssubTOOLAREA:SAPLWB_CUSTOMIZING:0400/" & _
"radRSEUMOD-TBALV_GRID")
If ALVGridView.Selected = vbFalse Then
ALVGridView.select()
End If
session.findById("wnd[1]/tbar[0]/btn[0]").press
Set BenutzerPar = Nothing
Set Einstellungen = Nothing
Set Menu = Nothing
'-Read data from table into array-------------------------------------
Set table = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell")
Rows = table.RowCount() - 1
Cols = table.ColumnCount() - 1
ReDim ArrayName(Rows + 1, Cols)
'-Get the title of all columns in the first array line----------------
Set Columns = table.ColumnOrder()
For j = 0 To Cols
ArrayName(0, j) = CStr(Columns(j))
Next
For i = 0 To Rows
For j = 0 To Cols
ArrayName(i + 1, j) = table.GetCellValue(i, CStr(Columns(j)))
'-Each 32 lines actualize the grid--------------------------------
If i Mod 32 = 0 Then
table.SetCurrentCell i, CStr(Columns(0))
End If
Next
Next
Set ALVGridView = Nothing
Set Columns = Nothing
Set table = Nothing
End Sub
'-Main------------------------------------------------------------------
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
If Not IsObject(session) Then
Set session = connection.Children(0)
End If
'-Read the table SFLIGHT in an array------------------------------------
Dim SFlight()
ReadTableInArray "SFLIGHT", SFlight
'-Get a part from the array---------------------------------------------
For i = 0 To Ubound(SFlight, 1)
MsgBox SFlight(i, 1) & "; " & SFlight(i, 2) & "; " & SFlight(i, 3)
Next
'-End-------------------------------------------------------------------