Einheitentabelle
Beschreibung
Einheitentabellen definieren die Konvertierung zwischen verschiedenen Einheiten. In diesem Modul werden Einheitenumrechnungen für Teile angegeben, also. z.B. "1 Stange" entspricht "6000 mm". Auch spezifische Gewichte/Wichte werden in diesen Einheitentabellen angegeben ("1000 mm" entsprechen "3,25 kg").
Die hier für ein Teil definierten Einheiten können dann im gesamten System an beliebigen Stellen für dieses Teil angegeben werden. Eine Besonderheit ist das Variantenteil mit seinen Unterteilen, wenn das Unterteil keine eigene Einheitentabelle hat wird die des Variantenteil genommen. Eventuell für Berechnungen notwendige Umrechnungen werden vom System anhand dieser Einheitentabelle automatisch durchgeführt. Solche Berechnungen ergeben sich auch immer dann, wenn im Logistikkonto eines Teils verschiedene Mengeneinheiten für die Bereitstellung (handling unit), die Disposition (purchasing/production unit) und die Lagerführung (stock unit) angegeben werden müssen.
Auch können hiervon unterschiedliche Einheiten für Verkaufs- und Bestellpreise (€ pro "beliebiger" Einheit) angegeben worden sein, die ebenfalls einer Umrechnung bedürfen.
Um die gesamte Komplexität solcher Einheitenumrechnungen abzudecken, können Einheitenumrechnungen als festes Wertepaar, als Formel oder als bedingte Tabelle angegeben werden.
Für die Umrechnung gelten folgende Regeln:
Direktes Konvertieren
Beim direkten Konvertieren wird genau ein Umrechnungskurs benutzt, um eine Einheit in eine andere zu konvertieren. Dabei wird die Liste der Umrechnungskurse der Reihe nach durchlaufen und der erste Umrechnungskurs, mit dem ein Umrechnen möglich ist, benutzt. Wenn eine Konvertierung mit mehreren Umrechnungskursen, d.h. "über andere Einheiten hinweg", möglich sein soll, ist das Indirekte Konvertieren zu benutzen.
Indirektes Konvertieren
Beim indirekten Konvertieren kann, im Gegensatz zum direkten Konvertieren, "über mehrere Einheiten hinweg" konvertiert werden. Sollen beispielsweise "15 Dosen" in "Paletten" umgerechnet werden, so muss nicht unbedingt ein Umrechnungskurs zwischen diesen beiden Einheiten definiert sein. Falls jeweils ein Umrechnungskurs zwischen "Dosen" und "Kisten" und zwischen "Kisten" und "Paletten" vorhanden ist, so können "Dosen" mit dem "Umweg" über "Kisten" in "Paletten" konvertiert werden. Die Länge des Konvertierungsweges spielt dabei keine Rolle.
Reste beim Konvertieren
Im Unterschied zur Konvertierung von Währungen existiert noch ein fundamentaler Unterschied, da die Ausgangseinheit nicht immer genau in die Zieleinheit umgerechnet werden kann. Bestehen z.B. die folgenden beiden Umrechnungskurse:
- 5 Dosen = 1 Kiste
- 3 Kisten = 1 Palette
so stellen diese ganzzahlige Verhältnisse dar, d.h. die Umrechnung von "6 Dosen" in "Kisten" ergibt nicht "1,2 Kisten", sondern "1 Kiste und 1 Dose". Wird indirekt konvertiert, so kann es zudem mehrere Reste geben, so dass z.B. "22 Dosen" in "Paletten" konvertiert "1 Palette" mit dem Rest "1 Kiste und 2 Dosen" ergibt. Classix stellt zur Verwaltung solcher Reste Funktionalität zur Verfügung, um den Rest auch wieder als Ausgangseinheit darstellen zu können, in diesem Beispiel also als "7 Dosen".
Umrechnungskurse
Bei der Definition eines Umrechnungskurses sind vier Arten zu unterscheiden. Diese sind
- 1. ganzzahliger Umrechnungskurs
- Hierbei handelt es sich um Umrechnungskurse, die in beide Richtungen eine ganzzahlige Umrechnung bewirken. Ein Beispiel hierfür ist z.B. "5 Dosen = 1 Kiste".
- 2. links-genauer Umrechnungskurs
- Bei diesem Umrechnungskurs wird in die eine Richtung ("nach links") genau umgerechnet, während in die andere Richtung ganzzahlig konvertiert wird. Ein Beispiel hierfür ist "2,4m = 1 Stange". D.h. Bei der Umrechnung von "Stangen" in "m" entsteht immer ein genauer Wert ohne Rest, hingegen ergibt die Konversion von "2,5m" in "Stangen" "1 Stange" mit dem Rest "0,1m".
- 3. rechts-genauer Umrechnungskurs
- Dieser Umrechnungskurs stellt das Pendant zum "links-genauen" Umrechnungskurs dar, wobei die Einheiten als vertauscht zu betrachten sind.
- 4. genauer Umrechnungskurs
- Bei diesem Umrechnungskurs können keine Reste entstehen, d.h. er entspricht einem Wechselkurs zwischen zwei Währungen. Ein Beispiel hierfür ist eine Definition wie z.B. "1,2m = 5,76 kg".
Funktionalität
Eingabefenster
Dieses Fenster dient der Pflege von Einheitentabellen von Teilen.
Menüpunkt | Beschreibung |
---|---|
Bearbeiten | - |
: Einheiten | - |
: : Einfügen | Einheitenumrechnung in die Einheitentabelle einfügen |
: : Löschen | Markierte Zeile der Einheitenumrechnung aus der Einheitentabelle löschen |
: Einheitentabelle löschen | Die angezeigte Einheitentabelle wird gelöscht. |
: Schließen | Fenster schließen |
Feld | Beschreibung |
---|---|
Teil | Ausgabe des Teils, für welches eine spezifische Einheiten Umrechnungstabelle angegeben wird |
Liste der Einheitenumrechnungen | |
: Beschreibung | Nur für Formeln und Tabellen: Freitextbeschreibung, welche Einheiten konvertiert werden, z.B. könnte hier "Konvertierung von Fläche in Gewicht (kg<>dm²)" stehen. Diese Beschreibung wird in der Liste mit angezeigt und steigert die Übersicht erheblich |
: Name | (Neuer) Name der Einheit (siehe Beispiele) |
: Einheit1 | Alter Name der Einheit (wird überschrieben), darf keine Standardeinheit (Monat, km, ...) sein |
: Einheit2 | Die im Feld 'Name/Einheit1' definierte Einheit entspricht dieser Einheit, unter Angabe der jeweiligen Umrechnung |
: Status | Ausgabe der Warnungs-/Fehlermeldung "Keine echte Konvertierung", falls es sich um eine Überdefinition von voneinander abgeleiteten Einheiten handelt |
Knopf | Beschreibung |
---|---|
Einheitentabelle anmelden/abmelden | Je nach angezeigtem Text wird die Einheitenumrechnungstabelle des Teils an- oder abgemeldet. Diese Funktion ist nur zum Testen der Einheitenumrechnungstabelle relevant. Im Zustand einer angemeldeten Einheitenumrechnungstabelle zeigt sich nebenstehend der Knopf zum Aufruf des Einheiten-Taschenrechners. |
Knopf zum Aufruf des Einheiten-Taschenrechners. Hier kann die Konvertierung der Einheiten getestet werden | |
Einfügen | Einheitenumrechnung in die Einheitentabelle einfügen |
Löschen | Markierte Zeile der Einheitenumrechnung aus der Einheitentabelle löschen |
Übernehmen | Änderungen an der Einheitentabelle werden übernommen |
Schließen | Das Fenster wird geschlossen. |
Beispiele
Überschreiben Einheitenbezeichnung
Im System sei eine Einheit Paket definiert. Nun kann es vorkommen, dass man in bestimmten Fällen die Einheit genauer spezifizieren möchte (z.B. "Datenpaket" oder "Weihnachtspaket"). Um dazu nicht eine komplett neue Einheit anlegen zu müssen, Daten- und Weihnachtspakete sind schließlich beides Pakete, kann man in konkreten Fällen mittels einer Einheitentabelle eine neue Bezeichnung anmelden. Zusätzlich zur Bezeichnung kann man auch noch eine Quantität angeben (Feld "Einheit2"). Das heißt ein "Weihnachtspaket" muss nicht zwingend ein Synonym für "Paket" sein, sondern kann auch "1 kg" entsprechen.
Für eine "echte" Einheit kann nur eine überdefinierte Einheit existieren. Definiert man in einer Einheitentabelle beispielsweise erst "Datenpaket", dann "Weihnachtspaket" und meldet diese Tabelle an, ist nur "Weihnachtspaket" (als später definierte Einheit) eine gültige Einheit.
Diese Funktionalität des überdefinieren von Einheiten ist nicht vollständig implementiert. Beispielsweise wird in einer ListBox nur beim ersten Anzeigen der überdefinierte Name angezeigt. Außerdem sind die so definierten Einheitennamen einsprachig, da dieses Fenster den Einheitennamen im Feld "uniqueID" des neuerstellten CX_UNIT-RATE Objekts speichert.
Siehe auch ChangeUnitNames.
Bedingte Einheitenumrechnung
Die bedingte Tabelle ist dann für Variantenteile sinnvoll, wenn es eine Umrechnung geben muss, die von einem Sachmerkmal abhängig ist. Zum Beispiel bei Blechen.
Bleche werden in der Bestellung pro Kilogramm berechnet und pro Stück bestellt. Bei diesen Variantenteilen können die Flächenmaße und Materialstärken auf der Bestellung frei eingestellt werden. Anhand der verschiedenen Materialstärken ergeben sich nun unterschiedliche Umrechnungen von dm² in Kg. Diese Umrechnungen können in der bedingten Einheitenumrechnung eingegeben werden.
Beispiel:
Bedingung | Ergebnis |
---|---|
STAERKE_BLECH>=10mm | 1dm²=4Kg |
STAERKE_BLECH>=7mm | 1dm²=3Kg |
STAERKE_BLECH>=5mm | 1dm²=2Kg |
STAERKE_BLECH<5mm | 1dm²=1Kg |
Beispiel 2
Um von einem Stück auf das Gewicht des Materials zu kommen (abhängig von Maßen und Material), kann die Einheitenumrechnung auch noch dynamischer erfolgen:
Umrechnung 1: Fläche in Stück
Typ: Formel
Wert: ValuePer(LAENGE_ROHTEIL*BREITE_ROHTEIL, 1 Stück)
Ergebnis: dm²/Stück
Umrechnung 2: Materialstärke in Gewicht
Typ: | Formel |
Wert: |
|
Ergebnis: | kg/dm² |
Sind im Auftrag an einer Position mit einem Stück dieses Blechs nun die Attribute LAENGE_ROHTEIL, BREITE_ROHTEIL und STAERKE_ROHTEIL gesetzt, so kann das Gewicht pro Stück bestimmt werden.
Um die Berechnung auch noch vom Materialtyp (unterschiedliche Dichte) abhängig machen, ist bei der Umrechnung 2 der Typ "Tabelle" zu bevorzugen:
Typ: Tabelle
Inhalt:
MATERIAL_ROHTEIL | Ergebnis |
---|---|
"1.0038 / S235JRG2" |
|
"1.0330 / DC01" |
|
"1.0425 / P265GH" |
|
"1.0566 / P355NL1" |
|
"1.4301 / X5CrNi18-10" |
|
"1.4541 / X6CrNiTi18-10" |
|
"1.4571 / X6CrNiMoTi17-12-2" |
|
"1.4828 / X15CrNiSi20-12" |
|
"1.4835 / X9CrNiSiNCe21-11-2" |
|
"1.4841 / X15CrNiSi25-21" |
|
"1.4878 / X8CrNiTi18-10" |
|
"1.5415 / 16Mo3" |
|
Ergebnis: kg/dm²
Zu beachten ist, dass das l in der Formel kg/l ein kleines L ist und für Liter steht, also dm*dm*dm oder auch dm³ ersetzt. Dies ist in der Formel einfach übersichtlicher und hat den Vorteil, dass das System nicht nach einer weiteren Umrechnung von Kilogramm in dm sucht und eventuell in einer Endlosschleife endet.
Verwandte Themen
Technische Dokumentation
Mengen- und Preiseinheiten Editiermodul
Modulname
unittabl.mod
Klassen
Security
Neben der Beschränkung der Zugriffsrechte über die Klasse und deren Datenfelder kann das Modul über einige der empfangenen Messages in seiner Nutzung beschränkt werden.
Message | Parameter | Funktion | Security |
---|---|---|---|
CREATE_UNIT_TABLE | |||
DELETE_UNIT_TABLE | Einheitentabellen-Objekt | Einheitentabellen-Objekt löschen | |
EDIT_UNIT_TABLE | NULL oder Einheitentabellen-Objekt | Eingabefenster für Einheitentabelle aufrufen | |
UNIT_TABLE_CREATED | Einheitentabellen-Objekt | Einheitentabelle wurde erzeugt |
Message | Parameter | Funktion | Empfangs-Modul |
---|---|---|---|
ASK_YES_NO | Zeichenkette | Ja/Nein-Dialogfenster aufrufen | Dialog-Modul |
CREATE_UNIT_TABLE | |||
DELETE_UNIT_TABLE | Einheitentabellen-Objekt | Einheitentabelle löschen | Mengen- und Preiseinheiten Editiermodul |
DELETE_VALIDITY | |||
UNIT_SELECTED | |||
UNIT_TABLE_CHANGED | Einheitentabellen-Objekt | Einheitentabelle wurde verändert | |
UNIT_TABLE_CREATED | Einheitentabellen-Objekt | Einheitentabelle wurde erzeugt | |
UNIT_TABLE_DELETED | Einheitentabellen-Objekt | Einheitentabelle wurde gelöscht |