VBA in C++ übersetzen



  • Hallo Alle; 👍

    Ich bin grad fertig mit der programmierung eine COMschnittstelle mit C++Builder 2007...
    Jetzt möchte ich gern paar funtionen noch haben...Download von excel vergleich von zellen und speicherung in SAP....

    Was ich tun sollte siehst so aus im VBA code:

    Public Sub gDownload()

    Dim i As Long
    Dim j As Long
    Dim l1 As Long
    Dim l2 As Long

    Dim saRet() As String
    Dim saParam() As String
    Dim saErr() As String
    Dim sMessId As String
    Dim sQuery As String
    Dim sError As String
    Dim lRetCode As Long

    '*** INI-Datei mit Werten schreiben
    Call gWriteIni

    '*** Schnittstellen-DLL laden
    Set oIFace = CreateObject("SAPBAPI.clsInterface")

    ReDim saParam(9)

    '*** Messgerät-Id übergeben
    sMessId = Tabelle1.Cells(2, 2)

    '*** Parameterarray füllen
    saParam(0) = Tabelle1.Cells(3, 2)
    saParam(1) = Tabelle1.Cells(4, 2)
    saParam(2) = Tabelle1.Cells(5, 2)
    saParam(3) = Tabelle1.Cells(6, 2)
    saParam(4) = Tabelle1.Cells(7, 2)
    saParam(5) = Tabelle1.Cells(8, 2)
    saParam(6) = Tabelle1.Cells(9, 2)
    saParam(7) = Tabelle1.Cells(10, 2)
    saParam(8) = Tabelle1.Cells(11, 2)

    '*** alter Rückgabewert löschen
    Tabelle1.Cells(13, 1) = ""

    '*** Rückgabefelder löschen
    For i = 0 To 100
    For j = 0 To 60
    Tabelle1.Cells(i + 21, j + 1) = ""
    Next
    Next

    '*** Fehlerfelder löschen
    For i = 0 To 3
    For j = 0 To 2
    Tabelle1.Cells(i + 15, j + 1) = ""
    Next
    Next

    '*** Download ausführen
    lRetCode = oIFace.GetDataFromSAP(sMessId, saParam(), saRet(), sError, saErr(), sQuery)

    Set oIFace = Nothing

    '*** Rückgabewert und Meldung ausgeben
    Tabelle1.Cells(13, 1) = lRetCode & " " & sError

    '*** wenn Programmfehler aufgetreten
    If lRetCode <> 9999 Then

    '*** Rückgabearray in Tabelle anzeigen
    l1 = UBound(saRet, 1) - 1
    l2 = UBound(saRet, 2) - 1
    If l1 <> -1 Then
    For i = 0 To l1
    For j = 0 To l2
    Tabelle1.Cells(i + 21, j + 1) = saRet(i, j)
    Next
    Next
    End If

    '*** Fehlerarry in Tablle anzeigen
    l1 = UBound(saErr, 1) - 1
    l2 = UBound(saErr, 2) - 1
    If l1 <> -1 Then
    For i = 0 To l1
    For j = 0 To l2
    Tabelle1.Cells(i + 15, j + 1) = saErr(i, j)
    Next
    Next
    End If

    End If

    End Sub

    Meine Frage kann man VBA code in C++Builder übersetzen lassen? wenn ja auf was muss ich achten...

    Danke für alles. 😃



  • Hi,

    das kannst du nicht einfach so "übersetzen".
    Ich habe auch keine Lust, mir deinen Code da durchzulesen.



  • was steht denn genau in der excel tabellle?

    wäre es möglich die daten der tabelle in eine datenbank tabelle zu protieren? dann kannst du über ODBC etc. in C++ auf die datenbank zugreifen und deine schnittstelle benutzen...



  • BorisDieKlinge schrieb:

    was steht denn genau in der excel tabellle?

    wäre es möglich die daten der tabelle in eine datenbank tabelle zu protieren? dann kannst du über ODBC etc. in C++ auf die datenbank zugreifen und deine schnittstelle benutzen...

    Hallo Boris;

    Also ich habe n StringGrid gebaut(ich benutze c++borland 2007) und ich muss die Lotnummer die in meiner tabelle steht mit n prüflosnr aus der excel tabelle vergleichen...für's erste
    Dann wenn die beide miteinander stimmen sollte ich n Barcode aus der excel tabelle im StringGrid speichern und das ganze jetzt im SAP schicken...

    Ich hoffe dass ich alles bisschen verständlich gemacht habe.



  • In der FAQ des BCB-Forums gibt es mehrere Beiträge zum Zugriff auf Excel Tabellen.
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-39305.html



  • Braunstein schrieb:

    In der FAQ des BCB-Forums gibt es mehrere Beiträge zum Zugriff auf Excel Tabellen.
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-39305.html

    Danke ich schaue mir das mal an... 👍


Anmelden zum Antworten