Der fertige Quelltext
23.11.2006 16:33:42
Marie
Hier der fertige Source:
'Deklarationszwang
Option Explicit
'*********************************************************************************
'Deklaration der benötigten Variablen
'*********************************************************************************
Dim objBAPIControl As Object
Dim objConnection As Object
Dim objDisplay As Object
Dim login As Boolean
Dim objTable As Table
'Parameter
Dim oParam1 As Object
Dim oParam2 As Object
Dim oParam3 As Object
Dim oParam4 As Object
Dim oParam5 As Object
Dim oParam6 As Object
Dim oParam7 As Object
'Zur Ausgabe
Dim i As Integer
Dim n As Integer
Dim strTeilstring()
Dim Cont As String
Dim Entry As String
Dim EAN As String
Dim Name As String
Dim Num As String
'*********************************************************************************
'Cancel-Button
Private Sub cmdCancel_Click()
MatNrQuery.Hide
End Sub
'Okay-Button
Private Sub cmdOK_Click()
If login = False Then
' Verbindungsaufbau
Set objBAPIControl = CreateObject("SAP.Functions")
Set objConnection = objBAPIControl.Connection
objConnection.System = "***"
objConnection.HostName = "****"
objConnection.SystemNumber = "****"
objConnection.client = "***"
objConnection.User = ""
objConnection.Password = ""
objConnection.Language = "DE"
If objConnection.Logon(0, False) Then
login = True
MsgBox "Verbunden"
End If
' Auslesen der Daten über den Baustein
' ZL_LESEN_DISPLAY_STUECK (aus der Tabelle TABENTRY)
Set objDisplay = objBAPIControl.Add("ZL_LESEN_DISPLAY_STUECK")
' EXPORTS
'Materialnummer
Set oParam1 = objDisplay.exports("I_MATNR")
'Werksnummer
Set oParam2 = objDisplay.exports("I_WERKS")
'Stücklistennummer
Set oParam3 = objDisplay.exports("I_STLTY")
' IMPORTS
'Returncode (muss 0 sein, sonst Fehler!)
Set oParam4 = objDisplay.imports("RC")
'Materialbezeichnung (Display)
Set oParam5 = objDisplay.imports("E_MAT_BEZ")
'EAN-Nummer (Display)
Set oParam6 = objDisplay.imports("E_EANNR")
'Display-Bezeichnung
Set oParam7 = objDisplay.imports("E_DIS_BEZ")
'Tabelle
Set objTable = objDisplay.Tables("TABENTRY")
'Wertzuweisung
oParam1.Value = txtMatNr
oParam2.Value = "3030"
oParam3.Value = "5"
'Aufruf
objDisplay.Call
' Ausgabe der Daten
'Anzahl der Einträge (Zeilen der SAP-Tabelle)
Entry = objTable.RowCount
If oParam4 'ungleich' "0" Then
MsgBox ("Ein Fehler ist aufgetreten. Der Returncode muss NULL sein (RC = " & oParam4 & "). Bitte überprüfen Sie Ihre Eingabe!")
Else
'Schleifendurchlauf von Eintrag 1 bis n
For i = 1 To Entry
'Tabelle zeilenweise auslesen
Cont = objTable.Cell(i, 1)
'Letzten 3 Zeichen entfernen - werden nicht benötigt
Cont = Replace(Cont, " EA", "")
'EAN Nummer ausschneiden und Leerzeichen davor und danach entfernen
EAN = Left(Cont, "15")
EAN = LTrim(EAN)
'Anzahl ausschneiden und Leerzeichen....
Num = Right(Cont, "10")
Num = LTrim(Num)
'Packungsbezeichnung ausschneiden und Leerzeichen....
Name = Mid(Cont, "15", "50")
Name = LTrim(Name)
'Wenn weniger als oder genau 10 und mehr als 0 Einträge vorhanden sind -> Ausgabe in A5
If Entry 'kleinergleich' "10" And Entry 'ungleich' "0" Then
Sheets(2).Cells(i * 2 + 5, 2) = Num
Sheets(2).Cells(i * 2 + 5, 4) = Name
Sheets(2).Cells(i * 2 + 5, 8) = Num
Sheets(2).Cells(i * 2 + 5, 10) = EAN
'Wenn weniger als oder genau 20 und mehr als 10 Einträge vorhanden sind -> Ausgabe A4 -A
ElseIf Entry 'kleinergleich' "20" And Entry 'größer' "10" Then
Sheets(3).Cells(i * 2 + 5, 2) = Num
Sheets(3).Cells(i * 2 + 5, 4) = Name
Sheets(3).Cells(i * 2 + 5, 9) = Num
Sheets(3).Cells(i * 2 + 5, 11) = EAN
'Wenn weniger als oder genau 30 und mehr als 20 Einträge vorhanden sind -> Ausgabe A4 -B
ElseIf Entry 'kleinergleich' "30" And Entry 'größer' "20" Then
Sheets(4).Cells(i * 2 + 5, 2) = Num
Sheets(4).Cells(i * 2 + 5, 4) = Name
Sheets(4).Cells(i * 2 + 5, 9) = Num
Sheets(4).Cells(i * 2 + 5, 11) = EAN
End If
Next i
If Entry 'kleinergleich' "10" And Entry 'ungleich' "0" Then
Sheets(2).Range("D1") = oParam5
Sheets(2).Range("D2") = oParam7
Sheets(2).Range("J2") = oParam1
Sheets(2).Range("F27") = oParam6
MsgBox ("Die Daten wurden in ""Etikett A5"" eingetragen")
ElseIf Entry 'kleinergleich' "20" And Entry 'größer' "10" Then
Sheets(3).Range("D1") = oParam5
Sheets(3).Range("D2") = oParam7
Sheets(3).Range("J2") = oParam1
Sheets(3).Range("F47") = oParam6
MsgBox ("Die Daten wurden in ""Etikett A4 Variante A - 20"" eingetragen")
ElseIf Entry 'kleinergleich' "30" And Entry 'größer' "20" Then
Sheets(4).Range("D1") = oParam5
Sheets(4).Range("D2") = oParam7
Sheets(4).Range("K2") = oParam1
Sheets(4).Range("F67") = oParam6
MsgBox ("Die Daten wurden in ""Etikett A4 Variante B - 30"" eingetragen")
Else
MsgBox ("Fehler! Entweder sind 0 oder mehr als 30 Einträge vorhanden. Es wurden keine Daten eingetragen.")
End If
End If
Else
login = False
objConnection.Logoff
Set objConnection = Nothing
Set objBAPIControl = Nothing
End If
End Sub