charge in Excel

sconrad

Aktives Mitglied
Teammitglied
Hallo zusammen,
ich bin gerade dabei einen kleinen Beleggenerator in Excel zu schreiben und mir gelingt es nicht die Charge an die Position zuu heften. Was mache ich falsch ? Anbei der Source aus dem Excel-Beispiel, der nicht klappt:

'Einzelne Rechnungspositionen dem Beleg hinzugefügen:
'Dies geschieht in einer Schleife, welche alle Excel-Zeilen von 14 bis 99 nach
'Einträgen für Artikel- und Textpositionen duchsucht
Private Function bSetPositionen() As Boolean

Dim nPosType As Integer
Dim sPos As String
Dim sPosText As String
Dim sArtikelnummer As String
Dim sCharge As String
Dim cEinzelpreis As Currency
Dim bManuellerPreis As Boolean
Dim cMenge As Currency
Dim i As Integer
Dim oCharge As ChargenEintrag
Dim oChargen As ChargenEintraege
Dim oLagerPos As clsAbfLagerPosition


Stop

For i = 13 To 20

sPos = CStr(oSheet.Cells(i, 1))
sPosText = CStr(oSheet.Cells(i, 2))
sCharge = CStr(oSheet.Cells(i, 5))

'ggf. Erzeugen der Positionen beenden
If (gbNull(sPos) And gbNull(sPosText)) Then
Exit For
End If

'Erzeugen und initialisieren eines neuen Positionsobjekts im Beleg
Set oPos = New AbfBelegPosition
bOk = oPos.bCreate(oBeleg)

If gbNull(sPos) Then
bOk = oPos.bInitialize(AbfPositionstyp.olText)
oPos.sLangText = sPosText
Else
sArtikelnummer = sPosText
bManuellerPreis = Not IsEmpty(oSheet.Cells(i, 3))
cEinzelpreis = gcCCur(oSheet.Cells(i, 3))
cMenge = gcCCur(oSheet.Cells(i, 4))
bOk = oPos.bInitialize(AbfPositionstyp.olArtikel)
oPos.sPosition = sPos
bOk = oPos.bSetArtikel(sArtikelnummer, 0)
oPos.cMenge = cMenge

If oPos.bChargenPflicht Then

Set oCharge = New ChargenEintrag

oCharge.Charge = gsCStr(sCharge)
' oCharge.lBestandsID = mlBestandID
oCharge.Menge = 1
oCharge.lBestandsID = 367124

Set oPos.colPrevChargen = New ChargenEintraege
oPos.colPrevChargen.Add oCharge


End If




If bManuellerPreis Then
'Wenn in der Excel Tabelle in Spalte 3 ein Preis eingetragen ist,
'ersetzt dieser den Artikelpreis und das Kennzeichen für manuellen Preis wird gesetzt
oPos.cEinzelpreis = cEinzelpreis
oPos.bEinzelpreisManuell = True
End If
End If
'Basismenge neu ermitteln
oPos.RefreshMengen True, 0
'Menge aus Basismenge neu ermitteln
oPos.RefreshMengen2 True, 0

'Neuberechnung der Position
oPos.Recalc

'Hinzufügen der oben definierten Position zum Beleg
oBeleg.oPositionen.oAdd oPos

Next i

bSetPositionen = bOk

End Function
 
Die Chargen Collection hängt nicht direkt an der Position, sondern an der Collection vom Lagerplatz.

C#:
oPos.colLagerplaetze[1].colChargen.Add(oCharge)

Code mag nicht komplett richtig sein, da ich das unter VB(a) nicht mehr im Kopf habe aber so ähnlich müsste das sein.
 
Zurück
Oben