Beschreibung der Matrix-Kommando Maske

Mit der Matrix können zwei und dreidimensionale Tarife gerechnet werden.

Sie besteht aus der Achsendefinition für die x, y und Z-Achse und der zweidimensionalen Darstellung der Schnittpunkte auch Zellen genannt.

Wenn das Kontrollkästchen Berechnungsmatrix angehakt ist, wird in jeder Zeille eine Berechnung hinterlegt.

Im Standard wird im Schnittpunkt der "Wert" der Berechnung angezeigt, die anderen Felder werden im rechnten Bereich bearbeitet.

Mit Click auf den Spalten-/Zeilentitel können ganze Bereiche als "Mehrfachselektion" ausgewählt werden. Mit der "Shift"-Taste und Click auf einen weiteren Spalten-/Zeilentitel kann man auch ganze rechteckige Bereiche gleichzeitig marken. Beider Mehrfachselektion ist der Bereich rechts generell leer. Wenn dort Eingaben getätigt werden, gelten diese für alle markierten (blauen) Zellen. Beim Verlassen des Feldes wird die Eingabe in alle diese Zellen übernommen. Soll ein Wert entfernt werden, muss dazu im Feld die "Entfernen"-Taste gedrückt werden.

Zusätzlich zu den Feldern der Preisberechnung gibt es noch die Alternativrechnung - hier kann die Achse angegeben werden. Das bedeutet, dass zusätzlich zur ermittelten Zelle auch noch die Celle danach mit der "von Basis" aus dem Spaltentitel + dem Feld "Alternativerhöhung" berechnet und verglichen wird. Der niedrigere Wert wird benutzt.

Weiters gibt es noch die Vorberechnung für die Ermittlung von Staffelpreisen, wie z.b.

Die ersten 3 Packstücke kosten 10 für jedes weitere wird 2 berechnet. Auf der Achse müssen dann 3 und 9999 eingetragen werden. In der Zelle von 9999 muss als Vorberechnung die Koordinate 1/1/1 angegeben werden. Wenn man das Kontrollkästechen "Reduktion" anhakt, wird dann in der zweiten Spalte von dem Von-Basis-Wert der Wert im Spaltentitel (also 3) abgezogen.

Wenn im Inhalt eines Achs-Feldes eine Strichpunkt-getrennte Liste steht, wird für jeden Wert eine Berechnung gemacht und der mit dem höchten Ergebnis genommen. (ab DLE-Release 2.0.8).

In jeder Zelle können auch Zusatzfelder mit Werten hinterlegt werden, welche dann befüllt werden.

 Im Datenobjekt "DCE:Preisberechnung" können alle Zwischenergebnisse abgefragt werden. Über das Feld "$DCE:Objekte Preisberechnung behalten" Ja (Y) kann aktiviert werden, dass alle Berechnungsvorgänge gesammelt werden.

 

 

Matrixdefinition

Nachfolgende Abbildung zeigt die Maske zur Definition der Matrix. Diese besteht aus zwei Bereichen: der KOPFZEILE und der ACHSENDEFINITION.
In der Kopfzeile kann der Name der Matrix definiert werden. Zusätzlich kann eine Beschreibung der Matrix im Feld TEXT eingegeben werden. Mit der Checkbox BERECHNUNGSMATRIX kann bestimmt werden, ob die Matrix zur Berechnung oder zum Setzen bestimmter Werte herangezogen werden soll.
Soll die Matrix zur Berechnung benutzt werden muss im Zielfeld ein Feld definiert werden, in der das Berechnungsergebnis gespeichert wird. Soll eine Währung bei der Berechnung berücksichtigt werden, kann diese hier in der Kopfzeile stellvertretend für jede einzelne Zelle der Matrix angegeben werden. Ferner können auch für eine Berechnungsmatrix in der Kopfzeile zusätzliche Felder definiert werden, in denen pro Zelle Zusatzinformationen hinterlegt werden können – Im Falle, dass die Matrix keine Berechnungsmatrix ist, werden Informationen lediglich über „zusätzliche Felder“ zurückgeliefert. Ist die Checkbox FELDER IN ALLEN ZELLEN SETZEN markiert, so werden die „zusätzliche Felder“ die keine Werte zugewiesen haben zurückgesetzt (Standardverhalten).

Im zweiten Teil der Matrixdefinition müssen die Achsen definiert werden. Hier muss für jede Achse (Dimension) der Matrix ein Feld definiert werden, das zur Laufzeit mit einem entsprechenden Wert belegt sein muss. Es kann hier auch definiert werden, ob der jeweilige Wert der Achse zur Laufzeit über einen DIALOG eingegeben werden soll. Aufgrund eines Achsenwertes für jede Dimension lässt sich zur Laufzeit eindeutig eine Zelle finden, auf dieser die Berechnung ausgeführt wird bzw. in der bestimmte Felder gesetzt werden. Beim Feld VERGLEICHSART kann definiert werden, wie der Vergleich des Achsenwertes erfolgen soll. Muss der Achsenwert exakt mit einem auf der Achsenskala definierten Werte übereinstimmen (gleich) oder können Achsenwerte Werte zwischen zwei Skalenwerte z.B. zwischen 10 und 20 haben (kleiner-gleich). Zudem muss hier definiert werden, was passieren soll, wenn die Achsenwerte außerhalb des definierten Wertebereichs der Achse liegen. Wenn der Achsenwert beispielsweise größer als der letzte Skalenwert der betroffenen Achse ist. Möglichkeiten die hier zur Verfügung stehen sind, dass automatisch der WERT IN DER LETZTEN SPALTE genommen wird, das ein DEFAULTWERT IN EINER ZUSÄTZLICHEN SPALTE (mit * markiert) genommen wird oder das in solch einem Fall einfach eine FEHLERMELDUNG ausgegeben wird. In der unteren Tabelle der Achsendefinition können die möglichen Skalenwerte eingetragen werden. Mit dem Button MATRIXANSICHT wird die definierte Matrix angezeigt.

Matrixansicht

Die Matrixansicht besteht wiederum aus der KOPFZEILE (siehe oben), der jeweilig ausgewählten ZELLE und der MATRIX selber.
Der Abschnitt ZELLE zeigt die Felder der aktuell gewählten Zelle. Im oberen Bereich des Abschnitts kann die Berechnung mittels ALTERNANTIV-BERECHNUNG und VORBERECHNUNG auf andere Matrixzellen verweisen. Bei der Alternativberechnung wird alternativ die nächst höhere Zelle berechnet, die Zelle die den kleineren Wert liefert wird als Ergebnis zurückgeliefert. Bei der Vorberechnung wird zunächst eine andere Zelle, die bei der Vor-berechnung definiert wurde, berechnet. Das Ergebnis der Vorberechnung wird bei der Berechung der tatsächlich gewählten Zelle hinzuaddiert. Wenn zusätzlich zur Vorberechnung eine Reduktion gewählt wird, wird zunächst der Achsenwert in der jeweiligen Achsenrichtung um den max. möglichen Skalenwert reduziert und anschließend der reduzierte Wert zur Berechung der aktuellen Zelle herangezogen.
Weiters finden sich innerhalb einer Zelle drei Blöcke: der BERECHNUNGS-BLOCK, der MODIFIKATIONSBLOCK und der Block zum Setzen der, in der Kopfzeile definierten, ZUSÄTZLICHEN FELDER.
Der Berechnungsblock und Modifikationsblock zusammen bildet das RECHENELEMENT einer Matrixzelle. Im Berechungsblock werden die Daten für die eigentliche Berechung eingegeben. Der Modifikationsblock bietet Möglichkeiten um das Ergebnis des Berechnungsblockes im Nachhinein gezielt zu ändern und anzupassen. Wie die Berechnung einer Zelle im Detail erfolgt, wird in einem separaten Abschnitt eingehend erläutert. In diesem Abschnitt erfolgt auch eine Erklärung der entsprechenden Felder des Berechungs- und Modifikationsblockes.
Wird keine Währung in der Kopfzeile definiert kann alternativ eine Währung für jede Zelle gewählt werden. Diese Möglichkeit findet sich im oberen Bereich des Zellenabschnittes.

Im DATENBEREICH der Matrixansicht ist die Matrix pro Ebene als Ganzes dargestellt. Welche Felder einer Zelle im Datenbereich dargestellt werden sollen, kann über eine Konfigurationsmaske definiert werden (siehe nachfolgende Abbildungen).

Excelexport/Excelimport

Grundsätzlich besteht die Möglichkeit die Matrix in eine Excel-Datei zu exportieren bzw. von einer Excel-Datei zu importieren. Dies ist insbesondere dann praktisch, wenn Tarife in eine Matrix importiert werden sollen. Nachfolgende Abbildungen Zeigen den Dialog für den Excel-Import bzw. Excel-Export.

Grundsätzlich gibt es zwei Möglichkeiten eine Matrix zu exportieren:

  • Matrix lt. Anzeige exportieren: Es wird alles exportiert, was in der derzeitigen Zellenansicht der Matrix sichtbar ist. Sollen nur bestimmte Werte exportiert werden, dann muss zunächst die Ansicht entsprechend konfiguriert werden (vgl. Kapitel Matrixansicht).
  • Matrix komplett exportieren: Die gesamte Matrix wird exportiert.

Zusätzlich zu den beiden Möglichkeiten kann ausgewählt werden, ob Zeilen- und/oder Spaltennamen mitexportiert werden sollen.
Nachfolgende Abbildung zeigt das Ergebnis bei „Matrix lt. Anzeige exportieren“. Dabei wurden auch der Zeilen- und Spaltenname mitexportiert.

Das entsprechende Ergebnis bei einem Export der gesamten Matrix ist auf der nächsten Abbildung zu sehen. Auch hier wurde der Zeilen- und der Spaltenname mitexportiert.

Der Import erfolgt mit analogen Einstellungen. Zusätzlich kann hier angegeben werden ob der Zeilen-/Spaltenname mitimportiert werden soll, falls sich dieser ebenfalls in der Importdatei befindet.

Auch hier wird grundsätzlich das importiert, was in der Matrixansicht als sichtbar eingestellt wurde. Das gilt auch für die Auswahl „Matrix komplett importieren“ – es werden nur die Felder importiert die in der Matrixansicht sichtbar sind. Allerdings muss hier die zu importierende Datei entsprechend vorhergehender Abbildung „Ergebnis: Matrix komplett exportieren“ gestaltet sein. Ist dies nicht so, ist „Matrix lt. Anzeige importieren“ auszuwählen. Dabei ist jedoch zu beachten, dass die Matrixansicht exakt dem Aussehen der Exceldatei entsprechen muss. Beispiele hierzu finden Sie auf den nach nachfolgenden Abbildungen.

Berechnung mittels Matrix

In diesem Kapitel wird auf die Berechnung einer Zelle der Matrix im Speziellen eingegangen. Dazu zeigt nachfolgende Abbildung noch mal das RECHENELEMENT einer Matrixzelle.

Das Rechenelement besteht wie bereits in vorhergehenden Abschnitten erwähnt aus zwei Blöcken: dem BERECHNUNGSBLOCK und dem MODIFIKATIONSBLOCK.
Der Berechnungsblock besteht aus mehreren Eingabefeldern (siehe nachfolgende Abbildung). Es gibt ein VON-Feld, ein RUNDUNGSFELD zur Rundung des Wertes des VON-Feldes, ein PER-Feld und ein WERT-Feld.

Im Von-Feld werden Daten definiert die als Ausgangsbasis für die Berechnung dienen. Abhängig von der Berechnungsart, die im Per-Feld bestimmt wird, muss das Von-Feld Daten enthalten oder nicht.
Die Rundungsfelder bestehen aus zwei Auswahlfeldern. Eines für die Rundungsmethode (siehe nachfolgende Abbildung) und eines für den Wert auf den gerundet werden soll. Z.B. auf Ganze – 1, auf ganze Zehner – 10, …

Das wichtigste Feld im Berechnungsblock ist das Per-Feld (siehe nachfolgende Abbildung). Im Per-Feld wird die Berechnungsmethode definiert. Die Auswahl im Per-Feld steuert die gesamte Berechnung.

Das Wert-Feld ist ebenfalls vom Per-Feld abhängig. Bei bestimmten Berechungsmethoden ist ein Wert notwendig bei anderen nicht.

Nachfolgende Tabellen zeigen, welche Felder, in welcher Weise vom Per-Feld beeinflusst werden.

VonRundungPerWert
LeerLeerTarifAuswahl des Tarifnamens.
LeerLeer=Zahl/Feld ein Fixbetrag.
[Zahl/Feld]*[Auswahl]n (Number: 1, 10, …)Zahl/Feld ein Satz, “pro n”; PVV (Prozent von Vorberechnung)
[Zahl/Feld]*[Auswahl]%Zahl/Feld ein Prozentsatz
[Zahl/Feld]*[Auswahl]+,-,*,/Zahl/Feld Der Operand 2.

Leer … Es sind keine Werte erforderlich
[ ] … Werte sind möglich aber nicht notwendig
[ ]* … Werte sind nicht notwendig, wenn eine Vorberechnung stattfinden soll. Wenn hingegen keine Vorberechnung stattfinden soll müssen Werte gesetzt werden.
Zahl … Es kann eine Zahl eingegeben werden
Feld … Es kann ein Feld eingegeben werden
Auswahl … Es können Werte über die Suchmaske ausgewählt werden

VonRundungPerWertErgebnis
TarifTarifname (Brickname)Ergebnis des Tarifs (=Brick)
Das Ergebnis des Tarifs muss in dem Feld DCE:Tarifergebnis gespeichert warden, es wird hier übernommen.
=55
20010220
200%12
17+320

Ist im Per-Feld ein Tarif eingetragen, kann im Wert-Feld ein Brick aus dem Ordner DLE:Tarifs gewählt werden. Solch ein Tarifbrick muss die Variable DCE:TarifResult ($Tarifergebnis) setzen. Das Tarifergebnis wird im Wert-Feld zur weiteren Modifikation übernommen.
Optional kann die Währung des Tarifs mit der Variable DCE:TarifResultCur ($Tarifwährung) im Tarif gesetzt werden.
Beim Aufruf des Tarifordners wird der Tarifname in der Variable DCE:Tarifname ($Tarifname) übergeben.
Der zweite Block des Berechungselementes ist der Modifikationsblock (siehe nachfolgende Abbildung). Alle Felder im Modifikationsblock können, müssen aber nicht, Daten enthalten. Hier kann das im Berechnungsblock erhaltene Ergebnis weiter modifiziert werden. Im ZU-/ABSCHLAG-Feld kann auf das Berechungsergebnis ein Zuschlag z.B. +3 oder +3% oder ein Abschlag -3 oder -3% erfolgen. Enthält das MINIMUM-Feld einen Wert, so wird der Feldinhalt mit dem aktuellen Berechnungsergebnis (nach Berücksichtigung des Zu-/Abschlages) verglichen. Das Minimum der beiden Werte entspricht dem neuen Ergebnis. Entsprechendes gilt für das MAXIMUM-Feld. Am Ende des Modifikationsblockes besteht wiederum die Möglichkeit, mit dem RUNDUNGSFELD, das Ergebnis zu runden.

Das Ergebnis am Ende des Modifikationsblockes entspricht dem Ergebnis des Rechenelementes der Matrixzelle.

Beispiel 1: Berechnungsmatrix

In diesem Beispiel werden die Grundfunktionalitäten einer Berechnungsmatrix vorgestellt. In x-Richtung der Matrix ist die Collianzahl aufgetragen, in y-Richtung der Warenwert. Wobei nur eine Kategorie (bis zu einem Warenwert von 100000 €) zur Verfügung steht. Für einen Warenwert größer 100000 besteht mit dieser Matrix keine Möglichkeit diesen zu berechnen. Aus diesem Grund wird für die nachfolgenden Beispiele angenommen, dass der Warenwert immer innerhalb des 0 € bis 100000 € Intervalls liegt.

Wenn die Collianzahl einen Wert zwischen 0 und 10 beträgt wird die erste Zelle gezogen. Und, die in der Zelle hinterlegte Berechnungsformel, wird durchgeführt. Beträgt zum Beispiel die Collianzahl 7, wird folgende Berechnung durchgeführt:

  • 9
  • Aufrunden auf eine gerade Zahl = 10
  • 10 * 10 = 100
  • -12% von 100 = 88
  • Ergebnis liegt zwischen 70 und 120 -> ok
  • Aufrunden auf nächste 10er-Zahl = 90

Beträgt zum Beispiel die Collianzahl 5, wird folgende Berechnung durchgeführt.

  • 5
  • Aufrunden auf eine gerade Zahl = 6
  • 6 * 10 = 60
  • -12% von 60 = 52,8
  • Ergebnis liegt unter 70, daher ist der neue Wert das zulässige Minimum = 70
  • Aufrunden auf nächste 10er-Zahl = 70

Wenn die Collianzahl zwischen 10 und 20 liegt wird die Berechnungsformel der Zelle 2 genommen. Das Ergebnis hat hier, unabhängig von der Collianzahl, immer den fixen Wert 100.

Liegt die Collianzahl über 20 und unter 9999999, wird nach der Formel in der Zelle 3 berechnet.

Beispiel 2: Berechnungsmatrix mit Alternativen

In dem Beispiel wird die Berechnung mit alternativen Zellenwerten gezeigt. Das Beispiel behandelt grundsätzlich die Berechnung von Kosten abhängig vom Gewicht. Es ist eine Berechnungsmatrix mit zwei Zellen definiert. In der x-Achse ist das Gewicht definiert. Ist das Gewicht kleiner oder gleich 500, dann wird die erste Zelle berechnet. Ist das Gewicht größer als 500 wird die zweite Zelle berechnet.

Dadurch, dass bei einem Gewicht ab 500 kg per 100 kg nur noch 38 € berechnet werden und nicht mehr 40 €, kann es sein das man schon unter 500 kg mehr bezahlt als bei einem Gewicht über 500 kg. Ist das Gewicht beispielsweise 475 kg, dann müsste man von 475 auf 480 aufrunden (aufrunden auf volle 10) und dann per 100 kg (=4,8) mit 40 € rechnen. Das Ergebnis wäre dann 192 €. Wenn man allerdings mit dem max. Gewicht der Stufe 1 (=500 kg) und den Werten der Stufe bis 1000 kg rechnet, ergeben sich Kosten in der Höhe von 190 kg (500/100*38=190). D.h. eine alternative Berechnung mit dem max. Gewicht von 500 kg in der nächsten Stufe käme billiger als die Berechnung mit dem tatsächlichen Gewicht von 480 kg.
Die Matrix bietet die Möglichkeit einer alternativen Berechnung. Dazu muss der Haken der Alternativberechnung in die jeweilige Achse angekreuzt werden. Das Ergebnis der Alternativberechnung ist das jeweils niedrigere Berechnungsresultat zwischen der aktuellen Zelle und der nachfolgenden Zelle in Richtung der gewählten Achse.

Beispiel 3: Berechnungsmatrix mit Vorberechnungen und Reduktion

In dem Beispiel wird die Benutzung der beiden Matrixfunktionen „Vorberechnung“ und „Reduktion“ vorgeführt. Nehmen wir folgende Gegebenheit an. Wir haben eine Matrix mit den nachstehenden Bedingungen.

Dabei geben die Pfeile jeweils die Abhängigkeiten zu anderen Matrixzellen an. Die grünen Pfeile verweisen jeweils nur auf eine Zelle zurück. Die roten Pfeile referenzieren 2 Zellen zurück. Diese Abhängigkeiten lassen sich auch in der DLE-Matrix abbilden.

Über die Vorberechnung lassen sich Zellen angeben die vor der aktuellen Zelle berechnet werden sollen. Für unser Beispiel nehmen wir eine Collianzahl von 30 mit einem Wert von 700000 € an. Mit diesen Werten befinden wir uns in der Zelle x=3 und y=4 (rechte untere Zelle). Von der Zelle x=3/y=4 benötigen wir eine Vorberechnung der Zelle x=2/y=4 (-> je weiteres Colli 3% vom Vorhergehendem). Von der Zelle x=2/y=4 benötigen wir wiederum eine Vorberechnung der Zelle x=2/y=3 (je weitere 100000 € Wert). In der Zelle x=2/y=3 haben wir bis zu einem Wert von 500000 fixe Kosten von 750 €. Hier beginnt die eigentliche Berechnung. Für einen Wert von 500000 € haben wir fix 750 € Kosten. Dann bleiben uns noch 200000 € (700000 € - 500000 €) die wir in der nächsten Stufe (Zelle x=2, y=4) berechnen müssen. Da wir nur die restlichen 200000 € berechnen müssen, müssen wir den Wert in y-Richtung reduzieren (Haken y bei der Reduktion muss selektiert sein). Nun können wir die Zelle für einen Wert von 200000 € berechnen. (200000 per 100000) * 40 = 80. Das Ergebnis der aktuellen Zelle (=80) wird nun zum Ergebnis der vorher berechneten Zelle (=750) hinzuaddiert. Das aktuelle Resultat ist nun 830. Mit 830 € haben wir nun die Kosten für 20 Colli (Spalte 2) berechnet. Um die fehlenden 30 Colli noch zu berechnen müssen wir in die Zelle x=3/y=4 zurückkehren. Hier soll für jedes weitere Colli (10 sind noch nicht verrechnet -> 30-20=10 -> Reduktion) 3% vom Ergebnis der vorhergehenden 20 Colli berechnet werden. Dafür stellt die Matrix die Schlüsselfunktion PVV (Prozent von Vorberechnung) in Kombination mit dem Per-Feld bereit. PVV3 bedeutet beispielsweise 3% vom Ergebnis der Vorberechnung. In Kombination mit „1“ im Per-Feld bedeutet dies. 3% für jedes Stück vom Ergebnis der Vorberechnung. Das vorhergehende Ergebnis ist 830 € davon 3% für jedes der 10 verbliebenen Colli (8,3*3*10) ergibt 249 €. Somit betragen die Gesamtkosten, für das Beispiel mit einer Collianzahl von 30 und einem Wert von 700000 €, 1079 € (=830 €+249 €).