Skip to main content
Skip table of contents

TbeCbCostVector

Diese Klasse wurde speziell für das Codeblock Package “Lagerbuchführung” entwickelt.

Voraussetzung für die korrekte Verwendung der des TbeCbCostVector ist die Pflege der Tabellen DabLBK (LBF - Bewertungskreise) und DabLKA (LBF - Kostenarten)

TbeCostTypeValue

Die Klasse TbeCostTypeValue beschreibt die Objekte die in TbeCbCostVector gehalten werden. Diese Objekte beinhalten immer jeweils eine Kostenart und einen dazugehörigen Wert.

Eigenschaften

CostType:N

ID der Kostenart (Nur lesend)

Value:N

Wertbetrag (Nur lesen)

TbeCbCostVector

Die Klasse TbeCbCostVector beschreibt einen Sonderfall eines Variablentyps zur Darstellung von Kostenvektoren.

Ein Kostenvektor besteht dabei aus einem Bewertungskreis und beliebig vielen Kostenarten. Der Bewertungskreis ist die Organisationsebene auf dem eine Bewertung durchgeführt wird.

Im Gegensatz zu anderen Codeblockklassen muss TbeCbCostVector nicht erzeugt werden.

Das geschieht durch die Deklaration als Kostenvektor < | vKostenVektor:CV | >

Eigenschaften

ValuationID:N

ID des Bewertungskreises setzen oder lesen.

Decimals:N

Gibt die Anzahl der Nachkommastellen der Beträge zurück (Nur lesend)

UseCustomValuation:L

Gibt zurück, ob es sich um einen Individuellen Bewertungskreis handelt (Nur lesend)

Funktionen / Methoden

Count():N

Gibt die Anzahl aller hinterlegter Elemente zurück.

ItemByIndex():O

Gibt das jeweilige TbeCostTypeValue Objekt anhand des Index zurück.

Parameter

  • nIndex:N Index

ItemByCostType():O

Gibt das jeweilige TbeCostTypeValue Objekt anhand der Kostenart zurück.

Parameter

  • nCostType:N ID der gesuchten Kostenart

ToJSONString():O

Wandelt das Objekt in einen JSON String um.

ToString():C

Wandelt das Objekt in eine Stringschreibweise um.

Parameter

  • lWithValuationArea:L Wenn true dann werden alle Eigenschaften des Bewertungskreises mit angegeben.

FromJSONString():C

Wandelt einen JSON String in ein TbeCbCostVector Objekt um.

Add()

Fügt eine Kostenart und einen entsprechenden Wert hinzu.

Parameter

  • nConstType:N ID der Kostenart

  • nCostValue:N Wertbetrag

Subtract()

Subtrahiert einer Kostenart einen gewissen Betrag.

Parameter

  • nCostType:N ID der Kostenart

  • nCostValue:N Wertbetrag

Multiply()

Multipliziert die Beträge der Kostenarten mit dem übergebenen Faktor.

Parameter

nFactor:N Faktor mit dem multipliziert wird

Divide()

Dividiert die Beträge der Kostenarten mit dem übergebenen Dividend.

Parameter

nFactor:N Dividend

ToggleSign()

Dreht das Vorzeichen aller Werte der Kostenarten um.

RemoveNullValues()

Entfernt dem Kostenvektor alle Kostenarten mit einem Betrag von 0.

Sum():N

Summiert alle Werte eines Kostenvektors auf und gibt die Summe zurück.

Rückgabe: Numerisch

RatedSum():N

Summiert alle Beträge von Kostenarten die in dem zugehörigen Bewertungskreis als “Für die Bewertung relevant” gekennzeichnet sind auf und gibt die Summe zurück.

Rückgabe: Numerisch

IsRatedCostType():L

Prüft ob Kostenart für die Bewertung relevant ist.

Rückgabe: Logisch

Beispiel

CODE
//##############################################################################
// Codeblockbeispiel zur Verwendung des Typs TbeCbCostVector
// Alternativ kann die Deklaration der Varialble über die Schreibweise
//             | vCostVector:CV:='<Bewertungskreis-ID>' |
// erfolgen.
//##############################################################################

| vCostVector:CV, vCostVector2:CV, oItem, nDabLbkID, i, cJSONString |

// ValuationID (ID des Bewertungskreises) aus der DabLBK ermitteln
nDabLbkID := LookUP(waDabLBK, 'ID', {{1}}, 'ID'),

// Intitialisierung des Kostenvektors durch Zusweisung einer ValuationID
vCostVector.ValuationID := nDabLbkID,

// Hinzufügen von Kostenarten
vCostVector.Add(koaMEK, 100.10),
vCostVector.Add(koaEEK, -200.20),
vCostVector.Add(koaEGK, 300.30),
vCostVector.Add(koaFEK, -400.40),

writeln(vCostVector), // Ausgabe: {"MEK": 100.1,"EEK": -200.2,"EGK": 300.3,"FEK": -400.4}

// Zweiten Kostenvektorn mit gleichem Bewertungskreis initialisieren
vCostVector2.ValuationID := vCostVector.ValuationId,

// Kopieren aller Kostenarten und Werte in den neuen Kostenvektor
for i := 0 to vCostVector.Count() - 1 do
   oItem := vCostVector.ItemByIndex(i),
   vCostVector2.Add(oItem.CostType, oItem.Value),
end,

writeln(vCostVector2), // Ausgabe: {"MEK": 100.1,"EEK": -200.2,"EGK": 300.3,"FEK": -400.4}

// Kostenvektor Leeren
vCostVector.Clear(),
writeln(vCostVector),             // Ausgabe: {}
writeln(vCostVector.ValuationId), // Ausgabe: 1 <- Bewertungskreis wird nicht gelöscht

nDabLbkID := 2,
vCostVector.ValuationId := nDabLbkID,

vCostVector.Add(koaFEK_F, 10),
vCostVector.Add(koaMGK,   20),
vCostVector.Add(koaFEK_V, 30),

oItem := vCostVector.ItemByCostType(koaMGK),
writeln(oItem.Value), // Ausgabe: 20

cJSONString := vCostVector.ToJSONString(), // String des Objektes zum Speichern in die DB: {"FEK_F": 10,"MGK": 20,"FEK_V": 30}

vCostVector2.Clear(), // Ausgabe: {}

vCostVector2.FromJSONString(cJSONString),
writeln(vCostVector2), // Ausgabe: {"FEK_F": 10,"MGK": 20,"FEK_V": 30}

// Es wird die Kostenart von oItem hinzugefügt (MGK: 20)
vCostVector.Add(oItem.CostType, oItem.Value),
writeln(vCostVector), // Ausgabe: {"FEK_F": 10,"MGK": 40,"FEK_V": 30}

vCostVector.Subtract(koaFEK_F, 10),
writeln(vCostVector), // Ausgabe: {"FEK_F": 0,"MGK": 40,"FEK_V": 30}

// Entfernen von Beträgen mit Wert = 0
vCostVector.RemoveNullValues(), // Ausgabe: {"MGK": 40,"FEK_V": 30}

vCostVector.Multiply(2),
writeln(vCostVector), // Ausgabe: {"MGK": 80,"FEK_V": 60}

vCostVector.Divide(2),
writeln(vCostVector), // Ausgabe: {"MGK": 40,"FEK_V": 30}

vCostVector.Subtract(koaFEK_V, 60), // Ausgabe: {"MGK": 40,"FEK_V": -30}

// Umkehren der Vorzeichen
vCostVector.ToggleSign(),
writeln(vCostVector), // Ausgabe: {"MGK": -40,"FEK_V": 30}

vCostVector.Sum(), // Ausgabe: -10

vCostVector.RatedSum(), // Ausgabe: -40 (Ist abhänig vom jeweiligen Bewertungskreis!)

// Gibt alle Informationen des Kostenvektors und des Bewertungskreises in einem String zurück
vCostVector.ToString(true),
/*
  Ausgabe:
    'ValuationArea: 2
     Decimals:      3
     Rated:         EEK, EGK, FEK_F, MEK, MGK, FEK, FEK_EX, FEK_SONS, FGK, FGK_EX, FGK_SONS
     MGK: -40,000
     FEK_V: 30,000'
*/

// Gibt alle Informationen des Kostenvektors, ohne Bewertungskreis, in einem String zurück
vCostVector.ToString(false)
/*
  Ausgabe:
    'MGK: -40,000
     FEK_V: 30,000'
*/

Weitere Verknüpfungen

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.