Ziel dieses Tutorials soll sein, Daten aus einem Excel-Arbeitsblatt auszulesen und auf der SAP Maske anzuzeigen.
Uns liegt dazu ein kleiner Dienstplan vor, der Schadensmeldungscodes Mitarbeitern zuordnet. Wir möchten diesen Mitarbeiter
anhand eines eingegebenen Codes automatisch ermitteln:
In der SAP Maske fügen wir ein Eingabefeld, einen Pushbutton sowie ein
Ausgabefeld ein:
inputfield
(20,1)
"Lese Benutzer zu Code aus Excel Datei"
(20,35)
size="25"
name="code"
default="TSC99"
-upperCase
inputfield
(20,70)
size="15"
name="usertocode"
-upperCase
-noLabel
pushbutton
(20,62)
"ok"
process="read_excel_va03.txt"
Im Inputscript
"read_excel_va03.txt" rufen wir eine VB.NET Methode auf und übergeben den
Dateinamen und Schadenscode als Parameter:
callvb utilities.exceldotnet.TestReadCellsExcel
"D:\Excel\Dienstplan.xlsx"
"&V[code]"
return
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | Imports Microsoft.Office.Interop Imports guinet Public Class exceldotnet Public Function TestReadCellsExcel(ByVal filename As String, ByVal code As String) As String Dim returncode = "1" Dim oXL As New Excel.Application Dim g As New guixt Try Dim oWB As Excel.Workbook Dim oSheet As Excel.Worksheet oXL = CreateObject("Excel.Application") oXL.Visible = False oWB = oXL.Workbooks.Open(filename) oSheet = oWB.ActiveSheet Dim range As Excel.Range = oSheet.UsedRange Dim c As Integer = 1 For Each r In range.Rows If oSheet.Cells(c, 1).Value.ToString = code Then g.SetVariable("usertocode", oSheet.Cells(c, 2).Value.ToString) returncode = "0" Exit For End If c += 1 Next Catch oXL.ActiveWorkbook.Close(False) oXL.Quit() Return "Exception" End Try oXL.ActiveWorkbook.Close(False) oXL.Quit() Return returncode End Function End Class |