Skip to main content
Skip table of contents

SL_Calc()

SL_Calc() – Varianten-Stückliste erzeugen

Die Funktion erzeugt für einen übergebenen Varianten-Artikel und einen übergebenen "SL_MEMO"-Text eine Varianten-Stückliste und führt die Kalkulation der Preise durch.

Parameter

Beschreibung

cArtNr:C

Artikel-Nummer der Varianten. Die Artikelnummer muss eine Varianten-Stückliste besitzen.

nPreisNr:N

Kunden-Preisnummer als Basis für die Preis-Kalkulation

nEPreis:N

Verkaufspreis-Basis des Hauptprodukts. Bei Übergabe von 0 wird die Verkaufspreis-Basis aus dem der übergebenen Preisnummer entsprechenden VK-Preis-Feld des Artikels cArtNr:C übernommen.

cSLText:C

"SL_MEMO"-Text entsprechend z.B. Dab055:SL_MEMO. Wird als Basis für die Erzeugung der Stückliste verwendet.

nEkPreis:R

Referenz-Parameter: Errechneter Einkaufs-Preis

nVkPreis:R

Referenz-Parameter: Errechneter Verkaufs-Preis

oMemTable:O

TMemCalcTable-Objekt, welches mit der errechneten Stückliste befüllt wird. Die übergebene Tabelle wird strukturell von der Funktion angepasst.

lCopyMemos:L

Varianten-Mengenfelder "SL_Memo" und "SL_FixMemo" mit Basis-Werten aus der zugrunde liegenden Variantenstückliste füllen. Default=false

Rückgabewert


Logisch - Varianten-Stückliste wurde erfolgreich berechnet / erzeugt

Beispiel

CODE
| nEkPreis, nVkPreis, oMemTable |

// ohne SL-Ausgabe

if SL_Calc('45520040', , , , nEkPreis, nVkPreis) then
   WriteLn('EK: ' + FormatFloat('#,##0.00', nEkPreis)),
   WriteLn('VK: ' + FormatFloat('#,##0.00', nVkPreis)),
else
   WriteLn('Kalkulationsfehler!')
endif,
WriteLn(),

// mit SL-Ausgabe, Preis-Nr 2

oMemTable := CreateObject('TMemCalcTable'),
startseq,
   if SL_Calc('45520040', 2, , , nEkPreis, nVkPreis, oMemTable) then
      WriteLn('EK: ' + FormatFloat('#,##0.00', nEkPreis)),
      WriteLn('VK: ' + FormatFloat('#,##0.00', nVkPreis)),
      WriteLn('Stückliste: '),
      DBGoTop(oMemTable),
      while !EoF(oMemTable) do
         WriteLn('- ' + Trim(oMemTable:ArtNr1) + ' x ' + Str(oMemTable:Menge)),
         DBSkip(1, oMemTable)
      end,
   else
      WriteLn('Kalkulationsfehler!')
   endif,
always,
  DestroyObject(oMemTable),
stopseq

Weitere Verknüpfungen


JavaScript errors detected

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

If this problem persists, please contact our support.