diff --git a/doc/spezifikation.md b/doc/spezifikation.md index b894af4..7df2571 100644 --- a/doc/spezifikation.md +++ b/doc/spezifikation.md @@ -18,7 +18,7 @@ Beim Doppelklick auf eine bereits migrierte Teilenummer dürfen die Formularfeld >**Widgets:** Entry >**Typ 1:** Entry >**Zulässiger Datentyp:** Integer ->**state:** keiner +>**state:** keiner >**Position:** Oberhalb des Treeviews und unterhalb des zugehörigen Labels >**Typ 2:** Button >**Icon/Bild:** Lupe @@ -35,7 +35,6 @@ Besitzt die eingetragenen Teilenummer keine Stückliste, soll im Treeview nur di #### **Migration** >**Spaltenname Impfdatei:** Wird nicht in Impfdatei berücksichtigt ---- --- ### Teilenummer @@ -54,7 +53,6 @@ Teilenummern, die nicht vom Datentyp Integer sind und nicht aus 9 Zahlen bestehe #### **Migration** >**Spaltenname Impfdatei:** Teilenummer ---- --- ### Datenbank @@ -71,9 +69,8 @@ Die Werte steuern das Zielverzeichnis (Spalte "New Path" in Impfdatei), aus dem #### **Migration** >**Spaltenname Impfdatei:** keine eigene Spalte -Wird zur Definierung des Wertes in der Spalte "New Path" benötigt, siehe [Tätigkeiten Impfdateierstellung - New Path](#new-path) +Wird zur Definierung des Wertes in der Spalte "New Path" benötigt, siehe [Impfdateierstellung - New Path](#new-path) ---- --- ### PDM-Kategorie @@ -92,7 +89,6 @@ Aus ComboBox wählt User die RuleDesigner-Kategorie aus, der die Teilenummer zug #### **Migration** >**Spaltenname Impfdatei:** KategorieNE ---- --- ### Neuaufbau @@ -117,7 +113,6 @@ Aus ComboBox wählt User die RuleDesigner-Kategorie aus, der die Teilenummer zug Haken in CheckButton definiert je nach Situation den Pfad zum 3D-Modell. Dies ist im Feld [3D-Modell](#3d-modell) beschrieben. ---- --- ### Aus Halbzeug @@ -131,7 +126,8 @@ Haken in CheckButton definiert je nach Situation den Pfad zum 3D-Modell. Dies is IF PDM-Kategorie == "Einzelteil": state = keiner - ELSE: + + ELSE IF PDM-Kategorie != "Einzelteil": state = disabled Wert = False (Haken nicht gesetzt) @@ -140,11 +136,10 @@ Haken in CheckButton definiert je nach Situation den Pfad zum 3D-Modell. Dies is #### **Migration** >**Spaltenname Impfdatei:** HalbzeugInternAngabe -- Der Feldwert (Haken gesetzt / Haken nicht gesetzt) muss vor dem Schreiben in die Spalte "HalbzeugInternAngabe" der Impfdatei gemappt werden, siehe [Tätigkeiten Impfdateierstellung - Aus Halbzeug](#aus-halbzeug-1) +- Der Feldwert (Haken gesetzt / Haken nicht gesetzt) muss vor dem Schreiben in die Spalte "HalbzeugInternAngabe" der Impfdatei gemappt werden, siehe [Impfdateierstellung - Aus Halbzeug](#aus-halbzeug-1) - Haken in CheckButton definiert je nach Situation den Pfad zum 3D-Modell. Dies ist im Feld [3D-Modell](#3d-modell) beschrieben. ---- --- ### Halbzeugnummer @@ -173,7 +168,6 @@ Haken in CheckButton definiert je nach Situation den Pfad zum 3D-Modell. Dies is #### **Migration** >**Spaltenname Impfdatei:** HalbzeugIntern ---- --- ### Halbzeuglänge @@ -202,7 +196,6 @@ Haken in CheckButton definiert je nach Situation den Pfad zum 3D-Modell. Dies is #### **Migration** >**Spaltenname Impfdatei:** Kopiertes_Teil_1_y_Skalierung ---- --- ### Halbzeugoberfläche @@ -226,7 +219,6 @@ Haken in CheckButton definiert je nach Situation den Pfad zum 3D-Modell. Dies is #### **Migration** >**Spaltenname Impfdatei:** Oberflaechenbehandlung ---- --- ### Halbzeugfarbe @@ -273,7 +265,6 @@ Haken in CheckButton definiert je nach Situation den Pfad zum 3D-Modell. Dies is #### **Migration** >**Spaltenname Impfdatei:** Farbe ---- --- ### Lebenszyklusstatus @@ -289,7 +280,6 @@ Haken in CheckButton definiert je nach Situation den Pfad zum 3D-Modell. Dies is #### **Migration** >**Spaltenname Impfdatei:** Serien-Status ---- --- ### 3D-Modell @@ -349,10 +339,9 @@ In tk wie folgt erzielbar: #### **Migration** **Spaltennamen Impfdatei:** keine eigene Spalte -- Definiert Wert in Spalte "Path" der Impfdatei, siehe [Tätigkeiten Impfdateierstellung - Path](#path) -- Definiert Wert in Spalte "Filename" der Impfdatei, siehe [Tätigkeiten Impfdateierstellung - Filename](#filename) +- Definiert Wert in Spalte "Path" der Impfdatei, siehe [Impfdateierstellung - Path](#path) +- Definiert Wert in Spalte "Filename" der Impfdatei, siehe [Impfdateierstellung - Filename](#filename) ---- --- ### Bezeichnung 1 @@ -365,7 +354,7 @@ In tk wie folgt erzielbar: >**Wert:** Aus Spalte "Bezeichnung1" in "from_siv.csv" -**Aufgaben beim Einlesen des Feldes aus "from_siv.csv":** +**Aufgaben beim Einlesen des Wertes aus "from_siv.csv":** - Das Kürzel "kpl" (klein- oder großgeschrieben) in einer der nachfolgenden Varianten (oder bestehend aus der Kombination dieser Varianten) soll aus der Bezeichnung entfernt werden: - Leerzeichen vor (und ggf. nach) "kpl", z.B. " kpl " ; " kpl" @@ -385,7 +374,7 @@ In tk wie folgt erzielbar: IF PDM-Kategorie == "Baugruppe" OR "Schweissbaugruppe": Längenbeschränkung = 45 Zeichen - ELSE: + ELSE IF PDM-Kategorie == "Einzelteil" OR "Kaufteil": Längenbeschränkung = 50 Zeichen Wenn die Bezeichnungslänge in der Spalte "SIVAS-Werte" größer als die oben beschriebene Längenbeschränkung des Entry-Feldes ist, soll im Entry-Feld der Spalte "Überschriebene Werte" ein roter Platzhalter-Text erscheinen, solange sich kein Text vom User in das Entry-Feld eingetragen wurde. @@ -402,11 +391,10 @@ GIF dient nur zur kurzen Veranschaulichung, wie der Platzhaltertext aussehen kö - Es muss vor der Erstellung der Impfdatei eine Längenprüfung durchgeführt werden(siehe auch [Längenprüfung Bezeichnung](#bezeichnung-1-1)) -- Bei PDM-Kategorie = "Baugruppe" und "Schweissbaugruppe" muss die Spalte "Bezeichnung4" in der Impfdatei mit "- BG" befüllt werden (siehe [Tätigkeiten Impfdateierstellung - Bezeichnung4](#bezeichnung4)) +- Bei PDM-Kategorie = "Baugruppe" und "Schweissbaugruppe" muss die Spalte "Bezeichnung4" in der Impfdatei mit "- BG" befüllt werden, siehe [Impfdateierstellung - Bezeichnung4](#bezeichnung4) -- Die Bezeichnung muss in die Spalte "Title" der Impfdatei eingetragen werden (siehe [Tätigkeiten Impfdateierstellung - Title](#title)) +- Die Bezeichnung muss in die Spalte "Title" der Impfdatei eingetragen werden, siehe [Impfdateierstellung - Title](#title) ---- --- ### Bezeichnung 2 @@ -426,7 +414,6 @@ Feld dient lediglich zur informativen Darstellung des Wertes aus dem Sivas-Feld #### **Migration** >**Spaltenname Impfdatei:** Wird nicht in Impfdatei berücksichtigt ---- --- ### Halbzeug ohne Sägeliste @@ -440,10 +427,9 @@ Feld dient lediglich zur informativen Darstellung des Wertes aus dem Sivas-Feld >**Wert:** Aus Spalte "HzOhneSaegeliste" in "from_siv.csv" **Aufgaben beim Einlesen des Wertes aus "from_siv.csv":** - Der Wert aus der Spalte "HzOhneSaegeliste" in "from_siv.csv" muss in gemappter / umgewandelter Form in das Entry-Feld der Spalte "SIVAS-Werte" eingetragen werden: -|Wert in from_siv.csv" |Neuer Wert in Spalte "SIVAS-Werte"| +|Wert in "from_siv.csv" |Neuer Wert in Spalte "SIVAS-Werte"| |:--------------------------------|:---------------------------------| |J |Sägeliste nicht benötigt | |N |Sägeliste benötigt | @@ -459,16 +445,15 @@ Der Wert aus der Spalte "HzOhneSaegeliste" in "from_siv.csv" muss in gemappter / - Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) IF PDM-Kategorie == "Baugruppe": - Dropdownwerte = None (keine Werte) state = disabled - ELSE: - IF Rüstcode == HZS Halbzeuge Sägeteile: + ELSE IF PDM-Kategorie != "Baugruppe": + IF Rüstcode == "HZS Halbzeuge Sägeteile": Dropdownwerte = Sektion "HalbzeugOhneSaegeliste" aus Allgemein.cfg state = readonly - ELSE: + ELSE IF Rüstcode == "SRC Standard Rüstcode": Dropdownwerte = None (keine Werte) state = disabled @@ -477,16 +462,15 @@ Der Wert aus der Spalte "HzOhneSaegeliste" in "from_siv.csv" muss in gemappter / #### **Migration** >**Spaltenname Impfdatei:** HalbzeugOhneSaegeliste -Wenn das Feld "Rüstcode" den Wert "SRC Standard Rüstcode" und das Feld HalbzeugOhneSaegeliste den Wert "Sägeliste nicht benötigt" aufweist, muss eine Fehlermeldung ausgegeben werden (siehe auch [Tätigkeiten vor Erstellung der Impfdatei](#halbzeug-ohne-sc3a4geliste-1)) +- Beim Klick auf den Button "Migrieren" muss der Feldwert geprüft werden, siehe [Feldprüfung Beschaffungsart](#halbzeug-ohne-sc3a4geliste-1) ---- --- ### Rüstcode >**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** ->**Widget:** +>**Widget:** >**Typ:** Entry >**state:** disabled @@ -501,25 +485,29 @@ Wenn das Feld "Rüstcode" den Wert "SRC Standard Rüstcode" und das Feld Halbzeu **Nachfolgende Logik definiert:** - Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) - IF PDM-Kategorie == "Baugruppe": - Dropdownwerte = Sektion "RuestcodeBaugruppe" in Allgemein.cfg + IF PDM-Kategorie == "Baugruppe": + Dropdownwerte = Sektion "RuestcodeBaugruppe" in Allgemein.cfg - ELSE: - Dropdownwerte = Sektion "RuestcodeStandard" in Allgemein.cfg + ELSE IF PDM-Kategorie != "Baugruppe": + Dropdownwerte = Sektion "RuestcodeStandard" in Allgemein.cfg **Nachfolgende Logik definiert:** - Defaultwert (Wert, der im Textfeld der ComboBox angezeigt wird, bevor ein Dropdownwert ausgewählt wurde) IF Wert aus Spalte "Ruestcode" in "from_siv.csv" == "" OR Wert aus Spalte "Truemmer" in from_siv.csv == "J": + IF PDM-Kategorie == "Baugruppe": Defaultwert = "Trümmerbaugruppe" - ELSE: - Defaultwert = "" (leer) + INFO-messagebox, siehe nachfolgendes Bild: + ELSE IF PDM-Kategorie != "Baugruppe": + Defaultwert = "" (leer) + INFO-messagebox anzeigen, siehe nachfolgendes Bild: + + **messagebox-Text:** + + Bitte Rüstcode auswählen! ![info_ruestcode](../doc/Pictures/info_ruestcode.jpg) - ELSE: Defaultwert = "" (leer) @@ -528,9 +516,8 @@ Wenn das Feld "Rüstcode" den Wert "SRC Standard Rüstcode" und das Feld Halbzeu #### **Migration** >**Spaltenname Impfdatei:** RuestcodeAusw -Es muss geprüft werden, ob ein zulässiger Rüstcode eingetragen ist, siehe [Tätigkeiten vor Impfdateierstellung](#ruestcode) +Es muss geprüft werden, ob ein zulässiger Rüstcode eingetragen ist, siehe [Feldprüfung Rüstcode](#ruestcode) ---- --- ### Fertigungsart @@ -539,7 +526,7 @@ Es muss geprüft werden, ob ein zulässiger Rüstcode eingetragen ist, siehe [T IF PDM-Kategorie == "Einzelteil" OR "Schweissbaugruppe": Pflichtfeld = True - ELSE: + ELSE IF PDM-Kategorie == "Baugruppe" OR "Kaufteil": Pflichtfeld = False --- @@ -565,7 +552,7 @@ Es muss geprüft werden, ob ein zulässiger Rüstcode eingetragen ist, siehe [T ELSE IF PDM-Kategorie == "Einzelteil": Dropdownwerte = Schlüssel aus Sektion "Fertigungsarten" in Fertigungsarten.cfg - ELSE: + ELSE IF PDM-Kategorie == "Kaufteil" OR "Schweissbaugruppe": Dropdownwerte = None (keine Werte) **Nachfolgende Logik definiert:** @@ -579,7 +566,7 @@ Es muss geprüft werden, ob ein zulässiger Rüstcode eingetragen ist, siehe [T ELSE: Defaultwert = "" (leer) - ELSE: + ELSE IF PDM-Kategorie != "Schweissbaugruppe": Defaultwert == "" (leer) **Nachfolgende Logik definiert:** @@ -588,7 +575,7 @@ Es muss geprüft werden, ob ein zulässiger Rüstcode eingetragen ist, siehe [T IF PDM-Kategorie == "Kaufteil" OR "Schweissbaugruppe": state = disabled - ELSE: + ELSE IF PDM-Kategorie == "Baugruppe" OR "Einzelteil": state = readonly --- @@ -596,9 +583,8 @@ Es muss geprüft werden, ob ein zulässiger Rüstcode eingetragen ist, siehe [T >**Spaltenname Impfdatei:** Fertigungsart - Der Feldwert muss vor Erstellung der Impfdatei geprüft werden, siehe [Feldprüfung Fertigungsart](#fertigungsart-1) -- Der Wert muss vor dem Eintragen in die Impfdatei gemappt / umgewandelt werden, siehe [Tätigkeiten Impfdateierstellung - Fertigungsart](#fertigungsart-2) +- Der Wert muss vor dem Eintragen in die Impfdatei gemappt / umgewandelt werden, siehe [Impfdateierstellung - Fertigungsart](#fertigungsart-2) ---- --- ### Allgemeintoleranz @@ -607,7 +593,7 @@ Es muss geprüft werden, ob ein zulässiger Rüstcode eingetragen ist, siehe [T IF PDM-Kategorie == "Einzelteil" OR "Schweissbaugruppe": Pflichtfeld = True - ELSE: + ELSE IF PDM-Kategorie == "Baugruppe" OR "Kaufteil": Pflichtfeld = False --- @@ -681,7 +667,7 @@ Es muss geprüft werden, ob ein zulässiger Rüstcode eingetragen ist, siehe [T IF PDM-Kategorie == "Kaufteil" OR "Schweissbaugruppe": state = disabled - ELSE: + ELSE IF PDM-Kategorie == "Baugruppe" OR "Einzelteil": state = readonly --- @@ -689,7 +675,6 @@ Es muss geprüft werden, ob ein zulässiger Rüstcode eingetragen ist, siehe [T #### **Migration** >**Spaltenname Impfdatei:** Allgemeintoleranz ---- --- ### FOS-Gruppe @@ -715,7 +700,7 @@ Es muss geprüft werden, ob ein zulässiger Rüstcode eingetragen ist, siehe [T Dropdownwerte = Sektion "FOS_Gruppe" in Allgemein.cfg state = readonly - ELSE: + ELSE IF PDM-Kategorie != "Kaufteil": Dropdownwerte = None (Keine) state = disabled @@ -728,14 +713,15 @@ Es muss geprüft werden, ob ein zulässiger Rüstcode eingetragen ist, siehe [T Defaultwert = "1 - Baugruppe" ELSE: - Defaultwert = "" - ELSE: + Defaultwert = "" (leer) + + ELSE IF PDM-Kategorie != "Baugruppe": IF Wert aus Spalte "FosGruppe" in "from_siv.csv" == "" (leer) OR "1 - Baugruppe": Defaultwert = "0 - Einzelteil" ELSE: - Defaultwert = "" + Defaultwert = "" (leer) --- @@ -743,9 +729,8 @@ Es muss geprüft werden, ob ein zulässiger Rüstcode eingetragen ist, siehe [T >**Spaltenname Impfdatei:** FOS-GruppeNE - Der Feldwert muss vor Erstellung der Impfdatei geprüft werden, siehe [Feldprüfung FOS-Gruppe](#fos-gruppe-1) -- Der Feldwert muss in gemappter / umgewandelter Form in die Impfdatei eingetragen werden, siehe [Tätigkeiten Impfdateierstellung - FOS-Gruppe](#fos-gruppe-2) +- Der Feldwert muss in gemappter / umgewandelter Form in die Impfdatei eingetragen werden, siehe [Impfdateierstellung - FOS-Gruppe](#fos-gruppe-2) ---- --- ### Kalkulationsart @@ -771,7 +756,7 @@ Es muss geprüft werden, ob ein zulässiger Rüstcode eingetragen ist, siehe [T Dropdownwerte = Sektion "Kalkulationsart" in Allgemein.cfg state = readonly - ELSE: + ELSE IF PDM-Kategorie != "Baugruppe": Dropdownwerte = None (keine Werte) state = disabled @@ -784,15 +769,15 @@ Es muss geprüft werden, ob ein zulässiger Rüstcode eingetragen ist, siehe [T Defaultwert = "Kaufteil" ELSE: - Defaultwert = "" + Defaultwert = "" (leer) - ELSE: + ELSE IF PDM-Kategorie != "Kaufteil": IF Wert aus Spalte "Kalkulationsart" in "from_siv.csv" == "" (leer) OR "Kaufteil": Defaultwert = "Eigenbau" ELSE: - Defaultwert = "" + Defaultwert = "" (leer) --- @@ -800,24 +785,23 @@ Es muss geprüft werden, ob ein zulässiger Rüstcode eingetragen ist, siehe [T >**Spaltenname Impfdatei:** KalkulationsartNE - Der Feldwert muss vor Erstellung der Impfdatei geprüft werden, siehe [Feldprüfung Kalkulationsart](#kalkulationsart-1) -- Es [Tätigkeiten vor Erstellung der Impfdatei](#tätigkeiten-vor-erstellung-der-impfdatei) ---- --- ### Beschaffungsart >**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** ->**Widget:** +>**Widget:** >**Typ:** Entry +>**state:** disabled >**Wert:** Aus Spalte "Beschaffungsart" in "from_siv.csv" **Aufgaben beim Einlesen des Wertes aus "from_siv.csv":** -Der Wert aus der Spalte "Beschaffungsart" in "from_siv.csv" muss in gemappter / umgewandelter Form in das Entry-Feld der Spalte "SIVAS-Werte" eingetragen werden: +Der Wert "Eigenbaugruppe" aus der Spalte "Beschaffungsart" in "from_siv.csv" muss vor dem Eintragen ins Entry-Feld der Spalte "SIVAS-Werte" gemappt werden (der Wert "Kaufteil" hingegen nicht): -|Wert in from_siv.csv" |Neuer Wert in Spalte "SIVAS-Werte"| +|Wert in "from_siv.csv" |Neuer Wert in Spalte "SIVAS-Werte"| |:--------------------------------|:---------------------------------| |Eigenbaugruppe |Eigenbau | @@ -826,28 +810,54 @@ Der Wert aus der Spalte "Beschaffungsart" in "from_siv.csv" muss in gemappter / #### **Spalte 3: Überschriebene Werte** >**Widget-Typ:** ComboBox -**Logik, die steuert, welche Werte in der ComboBox angezeigt werden:** +**Nachfolgende Logik definiert:** +- Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) +- state der ComboBox je nach Situation (readonly / disabled) - IF PDM-Kategorie == "Baugruppe": - Wert = "Eigenbau" + IF PDM-Kategorie == "Einzelteil": + Dropdownwerte = Sektion "Beschaffungsart" in Allgemein.cfg + state = readonly - ELSE IF PDM-Kategorie == "Einzelteil": - Werte = Sektion "Beschaffungsart" in Allgemein.cfg + ELSE: + Dropdownwerte = None (keine Werte) + state = disabled - ELSE IF PDM-Kategorie == "Kaufteil": - Wert = "Kaufteil + +**Nachfolgende Logik definiert:** +- Defaultwert (Wert, der im Textfeld der ComboBox angezeigt werden soll, bevor ein Dropdownwert ausgewählt wurde) + + IF Wert aus Spalte "SIVAS-Werte" == "Eigenbau": + + IF PDM-Kategorie == "Kaufteil": + Defaultwert = "Kaufteil" + + ELSE: + Defaultwert = "" (leer) + + ELSE IF Wert aus Spalte "SIVAS-Werte" == "Kaufteil": + + IF PDM-Kategorie == "Baugruppe": + Defaultwert = "Eigenbau" + + ELSE IF PDM-Kategorie == "Einzelteil" OR "Kaufteil": + Defaultwert = "" (leer) + + ELSE IF PDM-Kategorie == "Schweissbaugruppe": + Defaultwert = "Eigenbau" + INFO-messagebox anzeigen, siehe nachfolgendes Bild: + + ![info_beschaffungsart_schweissbaugruppe](../doc/Pictures/info_beschaffungsart_schweissbaugruppe.jpg) - ELSE IF PDM-Kategorie == "Schweissbaugruppe": - Wert = "Eigenbau" + **messagebox-Text:** + Komponenten der Schweißbaugruppe müssen eigene Teilenummern erhalten, falls diese aktuell als Underline-Nummern in der Creo-Baugruppe vorliegen, aber keine eigenen Teilenummern in SIVAS besitzen! + --- #### **Migration** >**Spaltenname Impfdatei:** BeschaffungsartNE -Beim Klick auf den Button "Migrieren" muss die festgelegte Beschaffungsart geprüft werden, siehe [Tätigkeiten vor Erstellung der Impfdatei](#tätigkeiten-vor-erstellung-der-impfdatei) +- Beim Klick auf den Button "Migrieren" muss die festgelegte Beschaffungsart geprüft werden, siehe [Feldprüfung Beschaffungsart](#beschaffungsart-1) ---- --- ### Mengeneinheit @@ -856,398 +866,482 @@ Beim Klick auf den Button "Migrieren" muss die festgelegte Beschaffungsart gepr #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry ->**Read only:** Ja +>**state:** disabled ->**Daten:** ->**Spaltenname in "from_siv.csv":** Mengeneinheit - -**Aufgaben beim Einlesen des Wertes aus "from_siv.csv":** -1. Es muss der Wert ab " - " entfernt werden. Beispiel: -"Stck - Stück" ---wird zu---> "Stck" - -2. Nach Entfernung muss das Kürzel in das Entry-Feld eingetragen werden +>**Wert:** Aus Spalte "Mengeneinheit" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** >**Widget-Typ:** ComboBox ->**Read only:** Ja >**Defaultwert:** Keiner (leer) +>**Read only:** Ja -**Auswählbare Dropdownwerte:** +**Nachfolgende Logik definiert:** +- Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) +- state der ComboBox je nach Situation (readonly / disabled) - IF Rüstcode == "SRC Standard Rüstcode" OR "Trümmerbaugruppe": - Dropdownwerte = "Stck" - ELSE IF Rüstcode == "HZS Halbzeuge Sägeteile": - IF PDM-Kategorie == "Einzelteil" OR "Kaufteil": - Dropdownwerte = alle Werte der Sektion "EinheitAusw" aus Allgemein.cfg - ELSE IF PDM-Kategorie == "Schweissbaugruppe": - Dropdownwerte = "m" + IF Rüstcode == "SRC Standard Rüstcode" OR "Trümmerbaugruppe": + Dropdownwerte = None (keine Werte) + state = disabled + + ELSE IF Rüstcode == "HZS Halbzeuge Sägeteile": + + IF PDM-Kategorie == "Einzelteil" OR "Kaufteil": + Dropdownwerte = Sektion "EinheitAusw" in Allgemein.cfg + state = readonly + + ELSE IF PDM-Kategorie == "Schweissbaugruppe": + Dropdownwerte = None (keine Werte) + state = disabled + +**Nachfolgende Logik definiert:** +- Defaultwert (Wert, der im Textfeld der ComboBox angezeigt werden soll, bevor ein Dropdownwert ausgewählt wurde) + + IF Rüstcode == "SRC Standard Rüstcode": + + IF Wert aus Spalte "Mengeneinheit" in "from_siv.csv" != "Stck - Stück": + Defaultwert = "Stck - Stück" + + ELSE: + Defaultwert = "" (leer) + + ELSE IF Rüstcode == "HZS Halbzeuge Sägeteile": + + IF Wert aus Spalte "Mengeneinheit" in "from_siv.csv" != "M - Meter": + + IF PDM-Kategorie == "Schweissbaugruppe": + Defaultwert = "M - Meter" + + ELSE IF PDM-Kategorie == "Einzelteil" OR "Kaufteil": + Defaultwert = "" + INFO-messagebox anzeigen, siehe nachfolgendes Bild: + + ![info_mengeneinheit_hzs](../doc/Pictures/info_mengeneinheit_hzs.jpg) + + + **messagebox-Text:** + + Bitte prüfen, ob Mengeneinheit ≠ "M - Meter" korrekt ist! --- #### **Migration** >**Spaltenname Impfdatei:** Mengeneinheit -Beim Klick auf den Button "Migrieren" muss die festgelegte Mengeneinheit geprüft werden, siehe [Tätigkeiten vor Erstellung der Impfdatei](#tätigkeiten-vor-erstellung-der-impfdatei) +- Beim Klick auf den Button "Migrieren" muss die festgelegte Mengeneinheit geprüft werden, siehe [Feldprüfung Mengeneinheit](#mengeneinheit-1) +- Der Feldwert muss in gemappter / umgewandelter Form in die Impfdatei eingetragen werden, siehe [Impfdateierstellung - Mengeneinheit](#mengeneinheit-2) ---- --- ### Halbzeug +>**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget:** ->**Typ:** CheckButton ->**Read only:** Ja +>**Typ:** Entry +>**state:** disabled ->**Daten:** ->**Spaltenname in "from_siv.csv":** Halbzeug - -**Aufgaben beim Einlesen des Wertes aus "from_siv.csv":** -- Der Wert "WAHR" muss in "True" (Haken gesetzt), bzw. der Wert "FALSCH" in "False" (Haken nicht gesetzt) umgewandelt werden +>**Wert:** Aus Spalte "Halbzeug" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** >**Widget:** ->**Typ:** CheckButton ->**Defaultwert:** Identisch wie in Spalte "SIVAS-Werte" +>**Typ:** ComboBox -**Fallabhängiger Schreibschutz:** +**Nachfolgende Logik definiert:** +- Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) - IF PDM-Kategorie == "Baugruppe" (OR "Normteil"): - Read only = True - ELSE: - Read only = False + IF Rüstcode == "SRC Standard Rüstcode" OR "Trümmerbaugruppe": + Dropdownwert = "FALSCH" + + ELSE IF Rüstcode == "HZS Halbzeuge Sägeteile": + Dropdownwerte = Sektion "Halbzeug" in Allgemein.cfg + +**Nachfolgende Logik definiert:** +- Defaultwert (Wert, der im Textfeld der ComboBox angezeigt werden soll, bevor ein Dropdownwert ausgewählt wurde) + + IF Wert aus Spalte "Halbzeug" in "from_siv.csv" == "WAHR": + + IF Rüstcode == "SRC Standard Rüstcode" OR "Trümmerbaugruppe": + Defaultwert = "FALSCH" + + ELSE IF Rüstcode == "HZS Halbzeuge Sägeteile": + Defaultwert = "" (leer) + + ELSE: + Defaultwert = "" (leer) + +**Nachfolgende Logik definiert:** +- state der ComboBox je nach Situation (readonly / disabled) + + IF Rüstcode == "SRC Standard Rüstcode" OR "Trümmerbaugruppe": + state = disabled + + ELSE IF Rüstcode == "HZS Halbzeuge Sägeteile": + state = readonly --- #### **Migration** >**Spaltenname Impfdatei:** Halbzeug -Beim Erstellen der Impfdatei müssen die CheckButton-Werte gemappt werden (siehe [Tätigkeiten Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung)) +- Beim Klick auf den Button "Migrieren" muss der eingetragene Wert geprüft werden, siehe [Feldprüfung Halbzeug](#halbzeug-1) +- Beim Erstellen der Impfdatei müssen die eingetragenen Werte gemappt werden, siehe [Impfdateierstellung - Halbzeug](#halbzeug-2) ---- --- ### TOS-Gruppe +>**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry ->**Read only:** Ja +>**state:** disabled ->**Daten:** ->**Spaltenname in "from_siv.csv":** TOS_Gruppe - -Im Entry-Feld muss der Spaltenwert "TOS_Gruppe" aus "from_siv.csv" eingetragen werden +>**Wert:** Aus Spalte "TOS_Gruppe" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** ->**Widget-Typ:** Entry ->**Read only:** Nein +>**Widget:** +>**Typ:** Entry +>**state:** keiner +>**Einschränkung:** nur Zahlen eintragbar -**Defaultwert:** +**Nachfolgende Logik definiert:** +- Defaultwert (Wert, der in Entry eingetragen wird, bevor der User eigene Eintragungen vornimmt) - IF TOS-Gruppe in Spalte "SIVAS-Werte" == "": - Defaultwert == 6 - ELSE: - Defaultwert == "" + IF Wert aus Spalte "TOS_Gruppe" in "from_siv.csv" == "" (leer): + Defaultwert == 6 + ELSE: + Defaultwert == "" (leer) --- #### **Migration** **Spaltennamen Impfdatei:** -Die zu befüllenden Spalten in der Impfdatei ergeben sich aus der angegebenen TOS-Gruppennummer. Beim Erstellen der Impfdatei müssen daher alle Felder, die Bestandteil der TOS-Gruppennummer sind, extrahiert und mit Werten befüllt werden (siehe [Tätigkeiten Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung)) +- Beim Klick auf den Button "Migrieren" muss die eingetragene Gruppennummer geprüft werden, siehe [Feldprüfung TOS-Gruppe](#tos-gruppe-1) +- Alle Impfdateispalten, die sich aus der angegebenen Gruppennummer ergeben, müssen befüllt werden, siehe [Impfdateierstellung - TOS-Gruppe](#tos-gruppe-2) ---- --- ### Dispogruppe +>**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry ->**Read only:** Ja +>**state:** disabled ->**Daten:** ->**Spaltenname in "from_siv.csv":** Dispogruppe - -Im Entry-Feld muss der Spaltenwert "Dispogruppe" aus "from_siv.csv" eingetragen werden - -*Aktuell ist es so vorgesehen, dass das Mapping erst bei Erstellung der Impfdatei erfolgt, während im Programm die tatsächlichen Dropdownwerte aus SIVAS angezeigt werden (z.B. 20 - Förderer -). Oder soll das Mapping bereits beim Einlesen der Werte aus "Dispogruppe erfolgen"? Gleiches gilt dann auch für das Feld "Dispolaufgruppe"* +>**Wert:** Aus Spalte "Dispogruppe" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** ->**Widget-Typ:** ComboBox ->**Read only:** Ja ->**Werte:** siehe Kommentar unten. Ansonsten Schlüssel der Sektion "Dispogruppe" in Allgemein.cfg ->**Defaultwert:** Keiner (leer) - -*Es fehlen aktuell in einer der .cfg-Dateien die SIVAS-Werte für die Dispogruppen vor dem Mapping, falls das Mapping wie im Kommentar oben beschrieben erst bei Erstellung der Impfdatei erfolgen soll* - -Wenn kein Wert im Entry-Feld der Spalte "SIVAS-Werte" eingetragen ist, soll der Hintergrund der ComboBox solange rot eingefärbt sein, bis ein Wert ausgewählt wurde. +>**Widget:** +>**Typ:** ComboBox +>**Dropdownwerte:** Sektion "Dispogruppe" in [Allgemein.cfg](../cfg/Allgemein.cfg) +>**Defaultwert:** "" (leer) +>**state:** readonly --- #### **Migration** >**Spaltenname Impfdatei:** Dispogruppe -Bei der Erstellung der Impfdatei muss ein Mapping der Dispogruppen durchgeführt werden (siehe [Tätigkeiten Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung)) - ---- +- Beim Klick auf den Button "Migrieren" muss die eingetragene Gruppennummer geprüft werden, siehe [Feldprüfung Dispogruppe](#dispogruppe-1) +- Bei der Erstellung der Impfdatei muss ein Mapping der Dispogruppen durchgeführt werden, siehe [Impfdateierstellung - Dispogruppe](#dispogruppe-2) --- ### Dispolaufgruppe +>**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry ->**Read only:** Ja - -Im Entry-Feld muss der Spaltenwert "Dispolaufgruppe" aus "from_siv.csv" eingetragen werden. - -*Siehe Kommentar bei Feld "Dispogruppe"* +>**state:** disabled --- #### **Spalte 3: Überschriebene Werte** ->**Widget-Typ:** ComboBox ->**Read only:** Ja ->**Werte:** siehe Kommentar unten. Ansonsten Schlüssel der Sektion "Dispolaufgruppe" in Allgemein.cfg ->**Defaultwert:** Keiner (leer) - -*Es fehlen aktuell in einer der .cfg-Dateien die SIVAS-Werte für die Dispolaufgruppen vor dem Mapping, falls das Mapping wie im Kommentar des Feldes "Dispogruppe" beschrieben erst bei Erstellung der Impfdatei erfolgen soll* - -Wenn kein Wert im Entry-Feld der Spalte "SIVAS-Werte" eingetragen ist, soll der Hintergrund der ComboBox solange rot eingefärbt sein, bis ein Wert ausgewählt wurde. +>**Widget:** +>**Typ:** ComboBox +>**Dropdownwerte:** Sektion "Dispolaufgruppe" in [Allgemein.cfg](../cfg/Allgemein.cfg) +>**Defaultwert:** "" (leer) +>**state:** readonly --- #### **Migration** >**Spaltenname Impfdatei:** Dispolaufgruppe -Vor der Erstellung der Impfdatei muss geprüft werden, ob eine Dispolaufgruppe vorliegt (siehe [Tätigkeiten vor Impfdateierstellung](#tätigkeiten-vor-erstellung-der-impfdatei)) +- Vor der Erstellung der Impfdatei muss geprüft werden, ob eine Dispolaufgruppe vorliegt, siehe [Feldprüfung Dispolaufgruppe](#dispolaufgruppe-1) +- Bei der Erstellung der Impfdatei muss ein Mapping der Dispolaufgruppen durchgeführt werden, siehe [Impfdateierstellung - Dispolaufgruppe](#dispolaufgruppe-2) -Bei der Erstellung der Impfdatei muss ein Mapping der Dispolaufgruppen durchgeführt werden (siehe [Tätigkeiten Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung)) - ---- --- ### Ersatz für +>**Pflichtfeld:** Nein --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry ->**Read only:** Ja +>**state:** readonly ->**Daten:** ->**Spaltenname in "from_siv.csv":** ErsatzFuer +>**Wert:** Aus Spalte "ErsatzFuer" in "from_siv.csv" -In diesem Feld soll informativ der Spaltenwert "ErsatzFuer" aus "from_siv.csv" eingetragen werden. +--- -*Soll das Feld eingefärbt werden oder ein automatischer Text im Feld "Zusätzliche Informationen" erscheinen, wenn "Ersatz für" einen Wert aufweist? Wird in der Spalte "Überschriebene Werte" überhaupt ein Feld benötigt?* +#### **Spalte 3: Überschriebene Werte** +>**Widget:** +>**Typ:** Entry +>**state:** keiner --- #### **Migration** ->**Spaltenname Impfdatei:** Nicht in Impfdatei enthalten +>**Spaltenname Impfdatei:** Wird nicht in Impfdatei berücksichtigt -Vor der Erstellung der Impfdatei soll zu Informationszwecken geprüft werden, ob die ersetzte Teilenummer bereits in RuleDesigner vorliegt (siehe [Tätigkeiten vor Impfdateierstellung](#tätigkeiten-vor-erstellung-der-impfdatei)) +- Vor der Erstellung der Impfdatei soll geprüft werden, ob die ersetzte Teilenummer bereits in RuleDesigner migriert wurde, siehe [Feldprüfung Ersatz für](#ersatz-fc3bcr-1) ---- --- ### Ersetzt durch +>**Pflichtfeld:** Nein --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry ->**Read only:** Ja +>**state:** readonly ->**Daten:** ->**Spaltenname in "from_siv.csv":** ErsetztDurch +>**Wert:** Aus Spalte "ErsetztDurch" in "from_siv.csv" -In diesem Feld soll informativ der Spaltenwert "ErsetztDurch" aus "from_siv.csv" eingetragen werden. +--- -*Soll das Feld eingefärbt werden, oder ein automatischer Text im Feld "Zusätzliche Informationen" erscheinen, wenn "Ersetzt durch" einen Wert aufweist? Wird in der Spalte "Überschriebene Werte" überhaupt ein Feld benötigt?* +#### **Spalte 3: Überschriebene Werte** +>**Widget:** +>**Typ:** Entry +>**state:** keiner --- #### **Migration** ->**Spaltenname Impfdatei:** Nicht in Impfdatei enthalten +>**Spaltenname Impfdatei:** Wird nicht in Impfdatei berücksichtigt -Vor der Erstellung der Impfdatei soll zu Informationszwecken geprüft werden, ob die Ersatz-Teilenummer bereits in RuleDesigner vorliegt (siehe [Tätigkeiten vor Impfdateierstellung](#tätigkeiten-vor-erstellung-der-impfdatei)) +- Vor der Erstellung der Impfdatei soll geprüft werden, ob die Ersatz-Teilenummer bereits in RuleDesigner migriert wurde, siehe [Feldprüfung Ersetzt durch](#ersetzt-durch-1) ---- --- ### Hersteller +>**Pflichtfeld:** Nein --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry ->**Read only:** Ja +>**state:** keiner ->**Daten:** ->**Spaltenname in "from_siv.csv":** Hersteller +>**Wert:** Aus Spalte "Hersteller" in "from_siv.csv" -In diesem Feld soll der Spaltenwert "Hersteller" aus "from_siv.csv" eingetragen werden. +**Aufgaben beim Einlesen des Wertes aus "from_siv.csv":** +Der Text vor dem Herstellernamen (besteht aus Herstellernummer + Zeichenkette " - ") muss entfernt werden + +**Beispiel:** +|Wert aus "from_siv.csv" |Wert nach Kürzung | +|------------------------|---------------------| +|80312 - Rehau AG & Co. |Rehau AG & Co. | --- #### **Spalte 3: Überschriebene Werte** ->**Widget-Typ:** ComboBox ->**Werte:** Werte aus Sektion "Hersteller" in [Hersteller.cfg](/cfg/Hersteller.cfg) +>**Widget:** +>**Typ:** ComboBox +>**Dropdownwerte:** Sektion "Hersteller" in [Hersteller.cfg](../cfg/Hersteller.cfg) >**Defaultwert:** Keiner (leer) -**Fallabhängiger Schreibschutz:** +**Nachfolgende Logik definiert:** +- state der ComboBox je nach Situation (readonly / disabled) - IF PDM-Kategorie == "Kaufteil": - Read only = False - ELSE: - Read only = True + IF PDM-Kategorie == "Kaufteil": + state = readonly + + ELSE: + state = disabled --- #### **Migration** ->**Spaltenname Impfdatei:** HerstellerTeilenummer +>**Spaltenname Impfdatei:** Hersteller -Vor der Erstellung der Impfdatei muss geprüft werden, ob der Hersteller in RuleDesigner angelegt wurde (siehe [Tätigkeiten vor Impfdateierstellung](#tätigkeiten-vor-erstellung-der-impfdatei)) +- Vor der Erstellung der Impfdatei muss geprüft werden, ob der Hersteller in RuleDesigner angelegt wurde, siehe [Feldprüfung Hersteller](#hersteller-1) ---- --- ### Hersteller Teilenummer +>**Pflichtfeld:** Nein --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry ->**Read only:** Ja +>**state:** readonly ->**Daten:** ->**Spaltenname in "from_siv.csv":** HerstellerTeilenummer - -In diesem Feld soll der Spaltenwert "HerstellerTeilenummer" aus "from_siv.csv" eingetragen werden. +>**Wert:** Aus Spalte "HerstellerTeilenummer" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** ->**Widget-Typ:** ComboBox ->**Werte:** Werte aus Sektion "Hersteller" in [Hersteller.cfg](/cfg/Hersteller.cfg) ->**Defaultwert:** Keiner (leer) +>**Widget-Typ:** Entry +>**Defaultwert:** "" (keiner) -**Fallabhängiger Schreibschutz:** +**Nachfolgende Logik definiert:** +- state des Entry-Feldes je nach Situation (keiner / disabled) - IF PDM-Kategorie == "Kaufteil": - Read only = False - ELSE: - Read only = True + IF PDM-Kategorie == "Kaufteil": + state = keiner + + ELSE: + state = disabled --- #### **Migration** >**Spaltenname Impfdatei:** HerstellerTeilenummer -Vor der Erstellung der Impfdatei muss geprüft werden, ob der Hersteller in RuleDesigner angelegt wurde (siehe [Tätigkeiten vor Impfdateierstellung](#tätigkeiten-vor-erstellung-der-impfdatei)) - ---- --- ### Werkstoffdiskrepanz >**Pflichtfeld:** Nein +--- #### **Spalte 3: Überschriebene Werte** ->**Widget-Typ:** CheckButton +>**Widget:** +>**Typ:** CheckButton >**Defaultwert:** False (Haken nicht gesetzt) -**Feld in folgenden Fällen disabled:** +**Nachfolgende Logik definiert:** +- state des CheckButtons je nach Situation (keiner / disabled) + + IF Aus Halbzeug == True (Haken gesetzt): + state = disabled - IF Aus Halbzeug == Haken gesetzt: - disabled = True ELSE: - disabled = False + state = keiner --- #### **Migration** ->**Spaltenname Impfdatei:** Wird nicht im Impfdatei berücksichtigt +>**Spaltenname Impfdatei:** Wird nicht in Impfdatei berücksichtigt ---- --- ### Werkstofftyp -**Logik, die steuert, wann es sich um ein Pflichtfeld handelt und wann ComboBox disabled ist:** +#### **Spalte 3: Überschriebene Werte** +>**Widget:** +>**Typ:** ComboBox + +**Nachfolgende Logik definiert:** +- Pflichtfeld (in welchen Fällen ist es ein Pflichtfeld, in welchen nicht) +- state der ComboBox je nach Situation (readonly / disabled) +- Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) - IF PDM-Kategorie == "Einzelteil": + IF PDM-Kategorie == "Einzelteil" - IF Aus Halbzeug == True: - Pflichtfeld = False + IF Aus Halbzeug == True (Haken gesetzt): + Pflichtfeld = False + state = disabled + Dropdownwerte = None (keine Werte) + + ELSE: + Pflichtfeld = True + state = readonly + Dropdpownwerte = Sektion "Werkstofftyp" in Werkstoff.cfg - ELSE: - Pflichtfeld = True - - ELSE: - Pflichtfeld = False + ELSE IF PDM-Kategorie != "Einzelteil": + Pflichtfeld = False + state = disabled + Dropdownwerte = None (keine Werte) --- -#### **Spalte 3: Überschriebene Werte** ->**Widget-Typ:** ComboBox +**Nachfolgende Logik definiert:** +- Defaultwert (Wert, der in Entry eingetragen wird, bevor der User eigene Eintragungen vornimmt) -**Logik, die steuert, wann ComboBox disabled ist:** +In den nachfolgenden Fällen darf **kein** Defaultwert eingetragen werden (selbst wenn in "from_siv.csv" ein Wert in der Spalte "Werkstoff" eingetragen sein sollte): - IF PDM-Kategorie == "Einzelteil": + - [PDM-Kategorie](#pdm-kategorie) != "Einzelteil" + - [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" + [Aus Halbzeug](#aus-halbzeug) == True (Haken gesetzt) + - kein Wert in der Spalte "Werkstoff" in "from_siv.csv" - IF Aus Halbzeug == True: - disabled = True +In den nachfolgenden Fällen soll ggf. ein Defaultwert eingetragen werden: +- Bei [PDM-Kategorie](#pdm-kategorie) == "Einzelteil + [Aus Halbzeug](#aus-halbzeug) == "False" (Haken nicht gesetzt), wird der Defaultwert wie folgt bestimmt (wenn in "from_siv.csv" in der Spalte "Werkstoff ein Wert vorliegt): - ELSE: - disabled = False + Als erstes muss geprüft werden, ob der Werkstoff aus der Spalte "Werkstoff" in der Datei "from_siv.csv" zugleich als Objekt in der json-Datei [Materialübersetzung.json](../cfg/Materialübersetzung.json) existiert: - ELSE: - disabled = True + **Beispiel:** + In "from_siv.csv" ist in der Spalte "Werkstoff" der Wert "1.4301 (X5CrNi18-10)" eingetragen (siehe nachfolgendes Bild): -**Logik, die steuert, welcher Defaultwert gilt:** -- In den nachfolgenden Fällen darf **kein** Defaultwert eingetragen werden (selbst wenn in from_siv.csv ein Wert in der Spalte "Werkstoff" eingetragen sein sollte): - - PDM-Kategorie == "Kaufteil" - - PDM-Kategorie == "Baugruppe" - - PDM-Kategorie == "Schweissbaugruppe" - - PDM-Kategorie == "Einzelteil" und Aus Halbzeug == True (Haken gesetzt) + ![material_from_siv_csv](../doc/Pictures/werkstoff_from_siv_csv.jpg) -- Ist der Haken nicht gesetzt, dann wird der Defaultwert wie folgt bestimmt: + Dieses Material ist als Objekt in der json-Datei [Materialübersetzung.json](../cfg/Materialübersetzung.json) enthalten (siehe nachfolgendes Bild): - Als erstes muss geprüft werden, ob der Werkstoff in "from_siv.csv" (Spalte "Werkstoff") als Objekt in [Materialübersetzung.json](../cfg/Materialübersetzung.json) existiert. Wenn nicht, soll eine Info-Messagebox erscheinen (vor Klick auf "Migrieren"): + ![material_materialuebersetzung_json](../doc/Pictures/material_materialuebersetzung_json.jpg) - ![Material_fehlend](../doc/Pictures/info_Material_missing.jpg) + - Wenn das Material nicht als json-Objekt exisitert, soll eine Info-Messagebox erscheinen (vor Klick auf "Migrieren"): - Wenn ja, muss geprüft werden, ob das Objekt einen Key "Werkstofftyp" aufweist. Wenn ja, soll dessen Wert in das Feld "Werkstofftyp" der Spalte "Überschriebene Werte" eingetragen werden: + ![Material_fehlend](../doc/Pictures/info_Material_missing.jpg) - ![Default_Werkstofftyp](../doc/Pictures/default_werkstofftyp.jpg) + **messagebox-Text:** - Wenn nein, soll stattdessen der Wert des Objekt-Keys "Message" als Platzhalter in rot eingetragen werden: + Werkstoffvorschlag nicht möglich, da das Material nicht in der Mappingdatei "Materialübersetzung.json" enthalten ist.\nBitte Werkstoff in dieser Datei nachfpflegen und prüfen, ob der Werkstoff in den nachfolgenden Systemen vorhanden ist:\n- RuleDesigner\n- SIVAS-Produktiv- und Schulungsdatenbank\n- Solid Edge\nWenn nicht, bitte in diesen Systemen ebenfalls nachpflegen! - ![Individual_material_selection](../doc/Pictures/Material_message_placeholder.jpg) + - Wenn das Material als json-Objekt existiert, muss geprüft werden, ob das json-Objekt einen Key "Werkstofftyp" aufweist. -**Auswählbare Werte in Dropdown:** Sektion "Werkstofftyp" in [Werkstoff.cfg](../cfg/Werkstoff.cfg) + - Wenn der Key "Werkstofftyp" exisitert, soll sein Wert als Defaultwert in das Textfeld der ComboBox eingetragen werden: + + **Beispiel:** + Das json-Objekt "PA6 GF30" enthält den Key "Werkstofftyp". + + ![key_werkstofftyp_exists](../doc/Pictures/key_werkstofftyp_exists.jpg) + + Der Wert des Keys "Werkstofftyp" (in diesem Fall "Kunst-/ Verbundstoff") wird folglich als Defaultwert in das Textfeld der ComboBox eingetragen (siehe nachfolgendes Bild): + + ![Default_Werkstofftyp](../doc/Pictures/default_werkstofftyp.jpg) + + - Wenn der Key "Werkstofftyp" nicht exisitert, soll stattdessen der Wert des Keys "Message" als Platzhalter in roter Textfarbe eingetragen werden: + + **Beispiel:** + Das json-Objekt "VA" enthält keinen Key "Werkstofftyp". Es wird folglich der Wert des Keys "Message" (in diesem Fall "*Bitte individuell wählen!*") als Defaultwert in das Textfeld der ComboBox eingetragen (siehe nachfolgende Bilder): + + ![key_werkstofftyp_missing](../doc/Pictures/key_werkstofftyp_missing.jpg) + + ![Individual_werkstofftyp_selection](../doc/Pictures/Material_message_placeholder.jpg) --- #### **Migration** >**Spaltenname Impfdatei:** WerkstofftypNE -Vor der Erstellung der Impfdatei muss geprüft werden, ob ein gültiger Werkstofftyp vorliegt (siehe [Tätigkeiten vor Impfdateierstellung](#tätigkeiten-vor-erstellung-der-impfdatei)) +Vor der Erstellung der Impfdatei muss geprüft werden, ob ein gültiger Werkstofftyp eingetragen wurde, siehe [Feldprüfung Werkstofftyp](#werkstofftyp-1) ---- --- ### Material -**Logik, die steuert, wann es sich um ein Pflichtfeld handelt:** - -Wie bei Feld [Werkstofftyp](#werkstofftyp) +**Nachfolgende Logik definiert:** +- Pflichtfeld (in welchen Fällen ist es ein Pflichtfeld, in welchen nicht) + + IF PDM-Kategorie == "Einzelteil" + + IF Aus Halbzeug == True (Haken gesetzt): + Pflichtfeld = False + + ELSE: + Pflichtfeld = True + + ELSE IF PDM-Kategorie == "Kaufteil": + Pflichtfeld = True + + ELSE IF PDM-Kategorie == "Baugruppe" OR "Schweissbaugruppe": + Pflichtfeld = False --- #### **Spalte 2: SIVAS-Werte** @@ -1261,167 +1355,308 @@ Wie bei Feld [Werkstofftyp](#werkstofftyp) #### **Spalte 3: Überschriebene Werte** >**Widget-Typ:** ComboBox -**Logik, die steuert, wann ComboBox disabled ist:** +- state der ComboBox je nach Situation (readonly / disabled) -Wie bei Feld [Werkstofftyp](#werkstofftyp) + IF PDM-Kategorie == "Einzelteil" -**Logik, die steuert, welcher Defaultwert gilt:** -- In den nachfolgenden Fällen darf **kein** Defaultwert eingetragen werden (selbst wenn in from_siv.csv ein Wert in der Spalte "Werkstoff" eingetragen sein sollte): - - PDM-Kategorie == "Baugruppe" - - PDM-Kategorie == "Schweissbaugruppe" - - PDM-Kategorie == "Einzelteil" und Aus Halbzeug == True (Haken gesetzt) + IF Aus Halbzeug == True (Haken gesetzt): + state = disabled + + ELSE: + state = readonly -- Gilt PDM-Kategorie == "Kaufteil" soll der Defaultwert "siehe Hersteller" eingetragen werden -- Gilt PDM-Kategorie == "Einzelteil" und Aus Halbzeug == False (kein Haken), dann wird der Defaultwert wie folgt bestimmt: + ELSE IF PDM-Kategorie != "Einzelteil": + state = disabled -Als erstes muss geprüft werden, ob der Werkstoff in "from_siv.csv" (Spalte "Werkstoff") als Objekt in [Materialübersetzung.json](../cfg/Materialübersetzung.json) existiert. Wenn nicht, soll nichts passieren (Info-Messagebox wird bereits im Feld [Werkstofftyp](#Werkstofftyp) erzeugt). Existiert das Objekt, muss geprüft werden, ob das Objekt einen Key "Werkstoff" aufweist. Wenn ja, soll dessen Wert in das Feld "Material" der Spalte "Überschriebene Werte" eingetragen werden: +**Nachfolgende Logik definiert:** +- Defaultwert (Wert, der in Entry eingetragen wird, bevor der User eigene Eintragungen vornimmt) -![Default_Werkstoff](../doc/Pictures/default_werkstoff.jpg) +In den nachfolgenden Fällen darf **kein** Defaultwert eingetragen werden (selbst wenn in from_siv.csv ein Wert in der Spalte "Werkstoff" eingetragen sein sollte): + - [PDM-Kategorie](#pdm-kategorie) == "Baugruppe" + - [PDM-Kategorie](#pdm-kategorie) == "Schweissbaugruppe" + - [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" + [Aus Halbzeug](#aus-halbzeug) == True (Haken gesetzt) + - kein Wert in der Spalte "Werkstoff" in "from_siv.csv" - Wenn nicht, soll wie bei der ComboBox des Feldes "Werkstofftyp" der Wert des Objekt-Keys "Message" als Platzhalter in rot eingetragen werden: +In den nachfolgenden Fällen soll ggf. ein Defaultwert eingetragen werden: +- [PDM-Kategorie](#pdm-kategorie) == "Kaufteil" -> Defaultwert = "siehe Hersteller" +- Bei [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" + [Aus Halbzeug](#aus-halbzeug) == False (Haken nicht gesetzt), wird der Defaultwert wie folgt bestimmt: -![Individual_material_selection](../doc/Pictures/Material_message_placeholder.jpg) +Als erstes muss geprüft werden, ob der eingetragene Werkstoff aus der Spalte "Werkstoff " in der Datei "from_siv.csv" zugleich als Objekt in der json-Datei [Materialübersetzung.json](../cfg/Materialübersetzung.json) existiert: -**Logik, die steuert, welche Werte in der ComboBox auswählbar sind:** +**Beispiel:** +In "from_siv.csv" ist in der Spalte "Werkstoff" der Wert "1.4301 (X5CrNi18-10)" eingetragen (siehe nachfolgendes Bild): -Je nachdem, welcher [Werkstofftyp](#Werkstofftyp) ausgewählt ist, müssen die Werte aus einer der nachfolgend aufgelisteten Sektionen in der cfg-Datei [Werkstoff.cfg](../cfg/Werkstoff.cfg) auswählbar sein: +![material_from_siv_csv](../doc/Pictures/werkstoff_from_siv_csv.jpg) -|Wert in ComboBox "Werkstofftyp" |Werte aus Sektion in Werkstoff.cfg | -|--------------------------------------|-----------------------------------| -|Stahl |Stahl | -|Aluminium |Aluminium | -|Kunst-/ Verbundstoff |Kunst-/ Verbundstoff | -|Schwermetall |Schwermetall | -|Festigkeitsklasse |Festigkeitsklasse | +Dieses Material ist als Objekt in der json-Datei [Materialübersetzung.json](../cfg/Materialübersetzung.json) enthalten (siehe nachfolgendes Bild): + +![material_materialuebersetzung_json](../doc/Pictures/material_materialuebersetzung_json.jpg) + + +- Wenn der Werkstoff nicht als json-Objekt exisitert, soll nichts passieren (erforderliche info-messagebox wird bereits durch das Feld [Werkstofftyp](#Werkstofftyp) generiert) +- Wenn der Werkstoff als json-Objekt exisitert, muss geprüft werden, ob der Wert des Keys "Werkstoff" != "false" ist: + + - Wenn der Wert != "false" ist, soll der Wert des Keys "Werkstoff" als Defaultwert in das Textfeld der ComboBox eingetragen werden: + + **Beispiel:** + Im json-Objekt "PA6 GF30" weist der Key "Werkstoff" den Wert "PA 6 GF 30", also nicht "false" auf (siehe nachfolgendes Bild): + + ![werkstoff_key_materialuebersetzung.json](../doc/Pictures/werkstoff_key_materialuebersetzung_json.jpg) + + Dieser Wert (PA 6 GF 30) wird dann als Defaultwert in das Textfeld der ComboBox eingetragen (siehe nachfolgendes Bild): + + ![Default_Werkstoff](../doc/Pictures/default_werkstoff.jpg) + + - Wenn der Wert == "false" ist, soll der Wert des Keys "Message" als Defaultwert in roter Textfarbe in das Textfeld der ComboBox eingetragen werden: + + **Beispiel:** + + Beim json-Objekt "VA" ist der Wert des Keys "Werkstoff" == "false" (siehe nachfolgendes Bild): + + ![key_werkstoff_false](../doc/Pictures/key_werkstoff_false.jpg) + + Es muss folglich der Wert des Keys "Message", also in diesem Fall "Bitte individuell wählen!" als Defaultwert in das Textfeld der ComboBox eingetragen werden (siehe nachfolgendes Bild): + + ![Individual_material_selection](../doc/Pictures/Material_message_placeholder.jpg) + +**Nachfolgende Logik definiert:** +- Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) + +Die Dropdownwerte hängen vom aktuellen Wert des Feldes [Werkstofftyp](#werkstofftyp) ab. +Die Werkstofftyp-abhängigen Dropdownwerte sind in verschiedenen Sektionen der cfg-Datei [Werkstoff.cfg](../cfg/Werkstoff.cfg) enthalten. +Welche Sektion bei welchem Werkstofftyp gilt, ist in der rechten Spalte der nachfolgenden Tabelle aufgelistet: + +|Wert im Feld [Werkstofftyp](#werkstofftyp) |Sektion in Werkstoff.cfg | +|-------------------------------------------|-------------------------| +|Stahl |Stahl | +|Aluminium |Aluminium | +|Kunst-/ Verbundstoff |Kunst-/ Verbundstoff | +|Schwermetall |Schwermetall | +|Festigkeitsklasse |Festigkeitsklasse | + +Wenn kein Wert im Feld [Werkstofftyp](#werkstofftyp) vorliegt, dürfen auch keine Dropdownwerte in der ComboBox wählbar sein. **Hinweis:** -Wenn der Werkstofftyp geändert wird, muss der Wert in der ComboBox des Feldes "Material" entfernt werden. Wenn in TK einstellbar soll zudem der Hintergrund der ComboBox solange rot eingefärbt werden, bis ein neues Material ausgewählt wurde. +Wenn der Werkstofftyp geändert wird, soll der Wert in der ComboBox des Feldes "Material" entfernt werden. + +(Sofern in TK einstellbar soll zudem der Hintergrund der ComboBox solange rot eingefärbt werden, bis ein neues Material ausgewählt wurde.) --- #### **Migration** >**Spaltenname Impfdatei:** WerkstoffNE -Vor der Erstellung der Impfdatei müssen die Werkstoffeingaben geprüft werden (siehe [Tätigkeiten vor Impfdateierstellung](#tätigkeiten-vor-erstellung-der-impfdatei)) +- Vor der Erstellung der Impfdatei müssen die Werkstoffeingaben geprüft werden, siehe [Feldprüfung Material](#material-1) ---- --- ### Oberfläche -**Logik, die steuert, wann es sich um ein Pflichtfeld handelt:** +**Nachfolgende Logik definiert:** +- Pflichtfeld (in welchen Fällen ist es ein Pflichtfeld, in welchen nicht) -Wie bei Feld [Werkstofftyp](#werkstofftyp) + IF PDM-Kategorie == "Einzelteil": + IF Werkstofftyp == "Kunst-/ Verbundstoff" + Pflichtfeld = True + + ELSE IF Werkstofftyp != "Kunst-/ Verbundstoff": + Pflichtfeld = False + + ELSE IF PDM-Kategorie != "Einzelteil": + Pflichtfeld = False --- #### **Spalte 3: Überschriebene Werte** ->**Widget-Typ:** ComboBox +>**Widget:** +>**Typ:** ComboBox -**Logik, die steuert, wann ComboBox disabled ist:** +**Nachfolgende Logik definiert:** +- state der ComboBox je nach Situation (readonly / disabled) + + IF PDM-Kategorie == "Einzelteil" -Wie bei Feld [Werkstofftyp](#werkstofftyp) + IF Aus Halbzeug == True (Haken gesetzt): + state = disabled + + ELSE: + state = readonly -**Logik, die steuert, welcher Defaultwert gilt:** -- In den nachfolgenden Fällen darf **kein** Defaultwert eingetragen werden (selbst wenn in from_siv.csv ein Wert in der Spalte "Werkstoff" eingetragen sein sollte): - - PDM-Kategorie == "Baugruppe" - - PDM-Kategorie == "Kaufteil" - - PDM-Kategorie == "Einzelteil" und Aus Halbzeug == True (Haken gesetzt) + ELSE IF PDM-Kategorie == "Schweissbaugruppe": + state = readonly -- Gilt PDM-Kategorie == "Einzelteil" und Aus Halbzeug == False (kein Haken), dann wird der Defaultwert wie folgt bestimmt: + ELSE IF PDM-Kategorie == "Baugruppe" OR "Kaufteil": + state = disabled -Als erstes muss geprüft werden, ob der Werkstoff in "from_siv.csv" (Spalte "Werkstoff") als Objekt in [Materialübersetzung.json](../cfg/Materialübersetzung.json) existiert. Wenn nicht, soll nichts passieren (Info-Messagebox wird bereits im Feld [Werkstofftyp](#Werkstofftyp) erzeugt). Existiert das Objekt, muss geprüft werden, ob das Objekt einen Key "Oberfläche" aufweist. Wenn ja, soll dessen Wert in die ComboBox eingetragen werden: +**Nachfolgende Logik definiert:** +- Defaultwert (Wert, der in Entry eingetragen wird, bevor der User eigene Eintragungen vornimmt) -![Default_Oberflaeche](../doc/Pictures/default_oberflaeche.jpg) +In den nachfolgenden Fällen darf **kein** Defaultwert in das Textfeld der ComboBox eingetragen werden (selbst wenn in from_siv.csv ein Wert in der Spalte "Werkstoff" eingetragen sein sollte): -Wenn nicht, soll im Gegensatz zu den ComboBoxen der Felder "Werkstofftyp" und "Material" **nicht** der Wert des Objekt-Keys "Message" eingetragen werden. +- [PDM-Kategorie](#pdm-kategorie) != "Einzelteil" +- [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" + [Aus Halbzeug](#aus-halbzeug) == True (Haken gesetzt) +- kein Wert in der Spalte "Werkstoff" in "from_siv.csv" -**Logik, die steuert, welche Werte in der ComboBox auswählbar sind:** +In den nachfolgenden Fällen soll ggf. ein Defaultwert eingetragen werden: +- Gilt [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" + [Aus Halbzeug](#aus-halbzeug) == False (kein Haken gesetzt), dann wird der Defaultwert wie folgt bestimmt: -Je nachdem, welcher [Werkstofftyp](#Werkstofftyp) ausgewählt ist, müssen die Werte aus einer der nachfolgend aufgelisteten Sektionen in der cfg-Datei [Oberflächenbehandlung.cfg](../cfg/Oberflächenbehandlung.cfg) auswählbar sein: -|Wert in ComboBox "Werkstofftyp" |Werte aus Sektion in Oberflächenbehandlung.cfg | -|--------------------------------------|-----------------------------------------------| -|Stahl |OberflächenbehandlungStahl | -|Aluminium |OberflächenbehandlungAluminium | -|Kunst-/ Verbundstoff |OberflächenbehandlungKunsVerbund | -|Schwermetall |OberflächenbehandlungSchwermetall | -|Festigkeitsklasse |OberflaechenbehandlungNormteil | +Als erstes muss geprüft werden, ob der eingetragene Werkstoff aus der Spalte "Werkstoff " in der Datei "from_siv.csv" zugleich als Objekt in der json-Datei [Materialübersetzung.json](../cfg/Materialübersetzung.json) existiert: + +**Beispiel:** +In "from_siv.csv" ist in der Spalte "Werkstoff" der Wert "1.4301 (X5CrNi18-10)" eingetragen (siehe nachfolgendes Bild): + +![material_from_siv_csv](../doc/Pictures/werkstoff_from_siv_csv.jpg) + +Dieses Material ist als Objekt in der json-Datei [Materialübersetzung.json](../cfg/Materialübersetzung.json) enthalten (siehe nachfolgendes Bild): + +![material_materialuebersetzung_json](../doc/Pictures/material_materialuebersetzung_json.jpg) + + + - Wenn der Werkstoff nicht als json-Objekt exisitert, soll nichts passieren (erforderliche info-messagebox wird bereits durch das Feld [Werkstofftyp](#Werkstofftyp) generiert) + - Wenn das Material als json-Objekt existiert, muss geprüft werden, ob das json-Objekt einen Key "Oberfläche" aufweist. + + - Wenn der Key "Oberfläche" exisitert, soll sein Wert als Defaultwert in das Textfeld der ComboBox eingetragen werden: + + **Beispiel:** + Das json-Objekt "PA6 GF30" enthält den Key "Oberfläche". + + ![werkstoff_key_materialuebersetzung.json](../doc/Pictures/key_oberflaeche_exists.jpg) + + Der Wert des Keys (Masterbatch (Grundfarbe)) wird dann als Defaultwert in das Textfeld der ComboBox eingetragen (siehe nachfolgendes Bild): + + ![Default_Oberflaeche](../doc/Pictures/default_oberflaeche.jpg) + + - Wenn der Key "Oberfläche" nicht exisitert, soll im Gegensatz zu den ComboBoxen der Felder [Werkstofftyp](#werkstofftyp) und [Material](#material) **nicht** der Wert des Keys "Message" als Defaultwert eingetragen werden. Stattdessen soll kein Defaultwert eingetragen werden. + + +**Nachfolgende Logik definiert:** +- Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) + +Die Dropdownwerte hängen vom aktuellen Wert des Feldes [Werkstofftyp](#werkstofftyp) ab. +Die Werkstofftyp-abhängigen Dropdownwerte sind in verschiedenen Sektionen der cfg-Datei [Oberflächenbehandlung.cfg](../cfg/Oberflächenbehandlung.cfg) enthalten. +Welche Sektion bei welchem Werkstofftyp gilt, ist in der rechten Spalte der nachfolgenden Tabelle aufgelistet: + +|Wert in Feld [Werkstofftyp](#werkstofftyp) |Sektion in [Oberflächenbehandlung.cfg](../cfg/Oberflächenbehandlung.cfg) | +|-------------------------------------- |-----------------------------------------------| +|Stahl |OberflächenbehandlungStahl | +|Aluminium |OberflächenbehandlungAluminium | +|Kunst-/ Verbundstoff |OberflächenbehandlungKunsVerbund | +|Schwermetall |OberflächenbehandlungSchwermetall | +|Festigkeitsklasse |OberflaechenbehandlungNormteil | + +Wenn kein Wert im Feld [Werkstofftyp](#werkstofftyp) oder [Material](#material) vorliegt, dürfen auch keine Dropdownwerte in der ComboBox wählbar sein. **Veränderung Werkstofftyp:** -Erfolgt eine Wertänderung in der ComboBox des Feldes "Werkstofftyp" muss der Wert in der ComboBox des Feldes "Material" durch einen leeren Wert ersetzt werden. +Erfolgt eine Wertänderung im Feld [Werkstofftyp](#werkstofftyp), muss der Wert in der ComboBox des Feldes "Oberfläche" durch einen leeren Wert ersetzt werden. --- #### **Migration** >**Spaltenname Impfdatei:** Oberflaechenbehandlung ---- --- ### Farbe -**Logik, die steuert, wann es sich um ein Pflichtfeld handelt:** +**Nachfolgende Logik definiert:** +- Pflichtfeld (in welchen Fällen ist es ein Pflichtfeld, in welchen nicht) - IF Oberflaechenbehandlung == "eloxieren" OR "lackieren" OR "Masterbatch (Grundfarbe)" OR "pulverbeschichten": - Pflichtfeld = True - - ELSE: - Pflichtfeld = False + IF Oberflaechenbehandlung == "eloxieren" OR "lackieren" OR "Masterbatch (Grundfarbe)" OR "pulverbeschichten": + Pflichtfeld = True + + ELSE: + Pflichtfeld = False --- #### **Spalte 3: Überschriebene Werte** ->**Widget-Typ:** ComboBox +>**Widget:** +>**Typ:** ComboBox -**Logik, die steuert, wann ComboBox disabled ist:** +**Nachfolgende Logik definiert:** +- state der ComboBox je nach Situation (readonly / disabled) - IF Oberflaechenbehandlung == "eloxieren" OR "lackieren" OR "Masterbatch (Grundfarbe)" OR "pulverbeschichten": - disabled = False + IF Oberflaechenbehandlung == "eloxieren" OR "lackieren" OR "Masterbatch (Grundfarbe)" OR "pulverbeschichten": + state = readonly + + ELSE: + state = disabled - ELSE: - disabled = True +**Nachfolgende Logik definiert:** +- Defaultwert (Wert, der in Entry eingetragen wird, bevor der User eigene Eintragungen vornimmt) -**Logik, die steuert, welcher Defaultwert gilt:** -- In den nachfolgenden Fällen darf **kein** Defaultwert eingetragen werden (selbst wenn in from_siv.csv ein Wert in der Spalte "Werkstoff" eingetragen sein sollte): - - PDM-Kategorie == "Baugruppe" - - PDM-Kategorie == "Kaufteil" - - PDM-Kategorie == "Einzelteil" und Aus Halbzeug == True (Haken gesetzt) +In den nachfolgenden Fällen darf **kein** Defaultwert eingetragen werden (selbst wenn in from_siv.csv ein Wert in der Spalte "Werkstoff" eingetragen sein sollte): -- Gilt PDM-Kategorie == "Einzelteil" und Aus Halbzeug == False (kein Haken), dann wird der Defaultwert wie folgt bestimmt: +- [PDM-Kategorie](#pdm-kategorie) != "Einzelteil" +- [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" + [Aus Halbzeug](#aus-halbzeug) == True (Haken gesetzt) +- kein Wert in der Spalte "Werkstoff" in "from_siv.csv" -Als erstes muss geprüft werden, ob der Werkstoff in "from_siv.csv" (Spalte "Werkstoff") als Objekt in [Materialübersetzung.json](../cfg/Materialübersetzung.json) existiert. Wenn nicht, soll nichts passieren (Info-Messagebox wird bereits im Feld [Werkstofftyp](#Werkstofftyp) erzeugt). Existiert das Objekt, muss geprüft werden, ob das Objekt einen Key "Farbe" aufweist. Wenn ja, soll dessen Wert in die ComboBox eingetragen werden: +In den nachfolgenden Fällen soll ggf. ein Defaultwert eingetragen werden: +- Gilt [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" + [Aus Halbzeug](#aus-halbzeug) == False (kein Haken gesetzt), dann wird der Defaultwert wie folgt bestimmt: -![Default_Farbe](../doc/Pictures/default_farbe.jpg) + Als erstes muss geprüft werden, ob der Werkstoff aus der Spalte "Werkstoff" in der Datei "from_siv.csv" zugleich als Objekt in der json-Datei [Materialübersetzung.json](../cfg/Materialübersetzung.json) existiert: - Wenn nicht, soll im Gegensatz zu den ComboBoxen der Felder "Werkstofftyp" und "Material" **nicht** der Wert des Objekt-Keys "Message" eingetragen werden. - -**Logik, die steuert, welche Werte in der ComboBox auswählbar sind:** + **Beispiel:** + In "from_siv.csv" ist in der Spalte "Werkstoff" der Wert "1.4301 (X5CrNi18-10)" eingetragen (siehe nachfolgendes Bild): -Je nachdem, welche [Oberfläche](#oberfläche) ausgewählt ist, müssen die Werte aus einer der nachfolgend aufgelisteten Sektionen in der cfg-Datei [Farben.cfg](../cfg/Farben.cfg) auswählbar sein: + ![material_from_siv_csv](../doc/Pictures/werkstoff_from_siv_csv.jpg) -|Wert in ComboBox "Oberfläche" |Werte aus Sektion in Farben.cfg | -|--------------------------------------|--------------------------------| -|eloxieren |FarbeEloxieren | -|lackieren |Farbauswahl | -|Masterbatch (Grunfarbe) |Farbauswahl | -|pulverbeschichten |Farbauswahl | + Dieses Material ist als Objekt in der json-Datei [Materialübersetzung.json](../cfg/Materialübersetzung.json) enthalten (siehe nachfolgendes Bild): -**Veränderung Oberfläche:** + ![material_materialuebersetzung_json](../doc/Pictures/material_materialuebersetzung_json.jpg) -Erfolgt eine Wertänderung in der ComboBox des Feldes "Oberfläche" muss der Wert in der ComboBox des Feldes "Farbe" durch einen leeren Wert ersetzt werden. Wenn in TK einstellbar soll zudem der Hintergrund der ComboBox solange rot eingefärbt werden, bis eine neue Oberfläche ausgewählt wurde. + + - Wenn der Werkstoff nicht als json-Objekt exisitert, soll nichts passieren (erforderliche info-messagebox wird bereits durch das Feld [Werkstofftyp](#Werkstofftyp) generiert) + - Wenn das Material als json-Objekt existiert, muss geprüft werden, ob das json-Objekt einen Key "Farbe" aufweist. + + - Wenn der Key "Farbe" exisitert, soll sein Wert als Defaultwert in das Textfeld der ComboBox eingetragen werden: + + **Beispiel:** + Das json-Objekt "PA6 GF30; Farbe ähnlich RAL 5015" enthält den Key "Farbe". + + ![key_farbe_exists](../doc/Pictures/key_Farbe_exists.jpg) + + Der Wert des Keys (in diesem Fall "RAL 5015") wird dann als Defaultwert in das Textfeld der ComboBox eingetragen (siehe nachfolgendes Bild): + + ![Default_Farbe](../doc/Pictures/default_farbe.jpg) + + - Wenn der Key "Farbe" nicht exisitert, soll im Gegensatz zu den ComboBoxen der Felder [Werkstofftyp](#werkstofftyp) und [Material](#material) **nicht** der Wert des Keys "Message" als Defaultwert eingetragen werden. Stattdessen soll kein Defaultwert eingetragen werden. + +**Nachfolgende Logik definiert:** +- Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) + +Die Dropdownwerte hängen vom aktuellen Wert des Feldes [Oberfläche](#oberfläche) ab. +Die Oberflächen-abhängigen Dropdownwerte sind in verschiedenen Sektionen der cfg-Datei [Farben.cfg](../cfg/Farben.cfg) enthalten. +Welche Sektion bei welcher Oberflächenbehandlung gilt, ist in der rechten Spalte der nachfolgenden Tabelle aufgelistet: + + +|Wert im Feld [Oberfläche](#oberfläche) |Werte aus Sektion in [Farben.cfg](../cfg/Farben.cfg) | +|---------------------------------------|--------------------------------| +|eloxieren |FarbeEloxieren | +|lackieren |Farbauswahl | +|Masterbatch (Grunfarbe) |Farbauswahl | +|pulverbeschichten |Farbauswahl | + +Wenn kein Wert im Feld [Werkstofftyp](#werkstofftyp), [Material](#material) oder [Oberfläche](#oberfläche) vorliegt, dürfen auch keine Dropdownwerte in der ComboBox wählbar sein. + +**Veränderung Werkstofftyp oder Oberfläche:** +Erfolgt eine Wertänderung in der ComboBox des Feldes [Werkstofftyp](#werkstofftyp) oder [Oberfläche](#oberfläche) muss der Wert in der ComboBox des Feldes "Farbe" durch einen leeren Wert ersetzt werden. + +(Wenn in TK einstellbar soll zudem der Hintergrund der ComboBox bei rot eingefärbt werden, solange Oberfläche == "lackieren", "pulverbeschichten", "Masterbatch (Grundfarbe)" oder "eloxieren" gilt und die ComboBox im Feld "Farbe" leer ist) --- #### **Migration** >**Spaltenname Impfdatei:** Farbe ---- +- Vor der Erstellung der Impfdatei müssen die Feldeintragungen geprüft werden, siehe [Feldprüfung Farbe](#farbe-1) + --- ### Version >**Pflichtfeld:** Nein --- #### **Spalte 2: SIVAS-Werte** ->**Widget:** +>**Widget:** >**Typ:** Entry >**Wert:** Aus Spalte "Version" in "from_siv.csv" @@ -1429,14 +1664,15 @@ Erfolgt eine Wertänderung in der ComboBox des Feldes "Oberfläche" muss der Wer --- #### **Spalte 3: Überschriebene Werte** ->**Widget-Typ:** Entry +>**Widget:** +>**Typ:** Entry #### **Migration** ->**Spaltenname Impfdatei:** Wird nicht im Impfdatei berücksichtigt -> Wird für Bestimmung des Freigabevermerks benötigt. +>**Spaltenname Impfdatei:** Wird nicht in Impfdatei berücksichtigt +- Wird für die Bestimmung des [Freigabevermerks](#freigabevermerk) benötigt ---- --- ### Änderungsindex @@ -1457,9 +1693,8 @@ Erfolgt eine Wertänderung in der ComboBox des Feldes "Oberfläche" muss der Wer #### **Migration** >**Spaltenname Impfdatei:** StartRevision -Liegt kein Änderungsindex vor, muss "A" in die Impfdatei eingetragen werden (siehe [Tätigkeiten Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung)) +Liegt kein Änderungsindex vor, muss "A" in die Impfdatei eingetragen werden (siehe [Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung)) ---- --- ### Änderungstext @@ -1471,7 +1706,7 @@ Liegt kein Änderungsindex vor, muss "A" in die Impfdatei eingetragen werden (si >**Wert:** Aus Spalte "Aenderungstext" in "from_siv.csv" -**Aufgaben beim Einlesen des Feldes aus "from_siv.csv":** +**Aufgaben beim Einlesen des Wertes aus "from_siv.csv":** - Semikolon (einschließlich vor- und nachgesetztem Leerzeichen) sollen durch ein Slash mit vor- und nachgesetztem Leerzeichen (" / ") ersetzt werden. Beispiel: - Änderungstext in "from_siv.csv": "Gewindebohrung auf M5 vergrößert (war M4); Fasen entfernt" - Änderungstext nach dem Einlesen: "Gewindebohrung auf M5 vergrößert (war M4) / Fasen entfernt" @@ -1509,7 +1744,6 @@ Wenn die Länge des Änderungstextes in der Spalte "SIVAS-Werte" die Zeichengren Es muss vor Erstellung der Impfdatei eine Längenprüfung durchgeführt werden, siehe [Tätigkeiten vor Erstellung der Impfdatei](#tätigkeiten-vor-erstellung-der-impfdatei) ---- --- ### Freigabevermerk @@ -1521,7 +1755,7 @@ Es muss vor Erstellung der Impfdatei eine Längenprüfung durchgeführt werden, >**Wert:** Aus Spalte "Freigabevermerk" in "from_siv.csv" -**Aufgaben beim Einlesen des Feldes aus "from_siv.csv":** +**Aufgaben beim Einlesen des Wertes aus "from_siv.csv":** - Semikolon (einschließlich vor- und nachgesetztem Leerzeichen) sollen durch ein Slash mit vor- und nachgesetztem Leerzeichen (" / ") ersetzt werden. Beispiel: - Freigabevermerk in "from_siv.csv": "Verringerte Rissgefahr durch größeren Biegeradius; Kostenreduktion durch geringere Blechstärke" - Freigabevermerk nach dem Einlesen: "Verringerte Rissgefahr durch größeren Biegeradius / Kostenreduktion durch geringere Blechstärke" @@ -1560,7 +1794,6 @@ Wie beim Feld [Änderungstext](#änderungstext) Es muss vor Erstellung der Impfdatei eine Längenprüfung durchgeführt werden, siehe [Tätigkeiten vor Erstellung der Impfdatei](#tätigkeiten-vor-erstellung-der-impfdatei) ---- --- ### Automatische Zusatzinformationen @@ -1607,7 +1840,7 @@ Die nachfolgend aufgeführten Sektionen "EinzelTextblöcke" und "ComboTextblöck --- #### **Migration** ->**Spaltenname Impfdatei:** keine eigene Spalte -> Wird zur Definierung des Wertes in der Spalte "ZusaetzlicheInformationen" benötigt, siehe [Tätigkeiten Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung) +>**Spaltenname Impfdatei:** keine eigene Spalte -> Wird zur Definierung des Wertes in der Spalte "ZusaetzlicheInformationen" benötigt, siehe [Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung) ### Benutzerdefinierte Zusatzinformationen @@ -1625,7 +1858,7 @@ Zeichenbegrenzung = 400 - Aktuelle Anzahl an Zeichen im Textfeld [Automatische Z --- #### **Migration** ->**Spaltenname Impfdatei:** keine eigene Spalte -> Wird zur Definierung des Wertes in der Spalte "ZusaetzlicheInformationen" benötigt, siehe [Tätigkeiten Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung) +>**Spaltenname Impfdatei:** keine eigene Spalte -> Wird zur Definierung des Wertes in der Spalte "ZusaetzlicheInformationen" benötigt, siehe [Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung) @@ -1653,6 +1886,15 @@ Zeichenbegrenzung = 400 - Aktuelle Anzahl an Zeichen im Textfeld [Automatische Z ![messagebox_invalid_characters](../doc/Pictures/Messagebox_invalid_characters.jpg) + **messagebox-Text:** + + Unzulässige Zeichen identifiziert: + Zeichen: {Zeichentyp} -> Feld: {Feldname} + ... + + - "{Zeichentyp}" muss durch das eigentliche, unzulässige Zeichen ersetzt werden, z.B. ";" + - "{Feldname}" muss durch den individuellen Feldnamen ersetzt werden. + - Falls mehrere unzulässige Zeichen gleichzeitig auftreten, sollen diese untereinander aufgelistet werden. --- #### Bezeichnung 1 @@ -1660,12 +1902,22 @@ Wenn die Anzahl der Zeichen im Feld [Bezeichnung 1](#bezeichnung-1) > 50 ist und ![messagebox_bezeichnung](../doc/Pictures/error_bezeichnung.jpg) + +**messagebox-Text:** + + Bezeichnung besitzt mehr als 50 Zeichen. Bitte verkürzen! + --- #### Halbzeug ohne Sägeliste Wenn das Feld [Rüstcode](#rüstcode) den Wert "SRC Standard Rüstcode" aufweist und das Feld [Halbzeug ohne Sägeliste](#halbzeug-ohne-sägeliste) den Wert "Sägeliste nicht benötigt" besitzt, muss eine ERROR-Messagebox ausgegeben werden, z.B.: ![messagebox_halbzeug_ohne_saegeliste](../doc/Pictures/error_halbzeug_ohne_saegeliste.jpg) + +**messagebox-Text:** + + In Sivas prüfen, wieso Haken bei "Halbzeug ohne Sägeliste" trotz Rüstcode "SRC Standard Rüstcode" gesetzt ist. + --- #### Ruestcode @@ -1673,6 +1925,11 @@ Wenn die [PDM-Kategorie](#pdm-kategorie) != "Baugruppe" ist und im Feld [Rüstco ![messagebox_ruestcode](../doc/Pictures/error_ruestcode.jpg) + +**messagebox-Text:** + + Teilenummer darf nicht ohne Rüstcode migriert werden! + --- #### Fertigungsart Tritt eine der nachfolgenden Kombinationen auf, muss eine ERROR-Messagebox erscheinen: @@ -1692,6 +1949,11 @@ Tritt eine der nachfolgenden Kombinationen auf, muss eine ERROR-Messagebox ersch ![error_fertigungsart](../doc/Pictures/error_fertigungsart.jpeg) + +**messagebox-Text:** + + Fertigungsart falsch. Bitte berichtigen! + --- #### FOS-Gruppe @@ -1702,7 +1964,12 @@ Tritt eine der nachfolgenden Kombinationen auf, muss eine ERROR-Messagebox ersch **ERROR-Messagebox:** -![error_fosgruppe](../doc/Pictures/error_fertigungsart.jpeg) +![error_fosgruppe](../doc/Pictures/error_fosgruppe.jpg) + + +**messagebox-Text:** + + FOS-Gruppe falsch. Bitte berichtigen! --- #### Kalkulationsart @@ -1715,51 +1982,174 @@ Tritt eine der nachfolgenden Kombinationen auf, muss eine ERROR-Messagebox ersch ![error_kalkulationsart](../doc/Pictures/error_kalkulationsart.jpg) ---- -#### Werkstofftyp -Wenn der eingetragene Wert nicht in Sektion "Werkstofftyp" der cfg-Datei [Werkstoff.cfg](../cfg/Werkstoff.cfg) enthalten ist, muss eine ERROR-Messagebox, z.B. mit dem Text "*Eingetragener Werkstofftyp falsch. Bitte korrigeren!*" erscheinen. (Tritt z.B. auf, wenn in ComboBox "*Bitte individuell auswählen*" steht) ---- -#### Material -Tritt eine der nachfolgenden Kombinationen auf, muss eine ERROR-Messagebox, z.B. mit dem Text "*Werkstoff falsch. Bitte korrigieren!*" erscheinen: -- PDM-Kategorie == "Baugruppe" und Material != "" -- PDM-Kategorie == "Einzelteil" und Aus Halbzeug == True AND Material != "" -- PDM-Kategorie == "Kaufteil" und Material != "siehe Hersteller" -- PDM-Kategorie == "Schweissbaugruppe" und Material != "" +**messagebox-Text:** -Die oben genannte ERROR-Messagebox soll auch dann erscheinen, wenn der eingetragene Wert nicht in einer der nachfolgenden Sektionen der cfg-Datei [Werkstoff.cfg](../cfg/Werkstoff.cfg) enthalten ist: -- Stahl -- Aluminium -- Kunst-/ Verbundstoff -- Schwermetall -- Festigkeitsklasse - ---- -#### Mengeneinheit -Wenn in der Spalte "Überschriebene Werte" nur ein Dropdownwert (z.B. "Stck") zulässig ist und in der Spalte "SIVAS-Werte" ein davon abweichender Wert eingetragen ist, soll eine Fehlermeldung ausgegeben werden, z.B. mit Text *"Mengeneinheit in SIVAS prüfen"* + Kalkulationsart falsch. Bitte berichtigen! --- #### Beschaffungsart -Falls die nachfolgenden Kombinationen auftreten muss eine Fehlermeldung, z.B. mit Text "Bitte Beschaffungsart in Sivas korrigieren" erscheinen: -- PDM-Kategorie == "Baugruppe" AND Beschaffungsart == "Kaufteil" -- PDM-Kategorie == "Schweissbaugruppe" AND Beschaffungsart == "Kaufteil" -- PDM-Kategorie == "Kaufteil" AND Beschaffungsart == "Eigenbau" +Falls die nachfolgenden Kombinationen auftreten muss eine ERROR-Messagebox erscheinen: +- [PDM-Kategorie](#pdm-kategorie) == "Baugruppe" und [Beschaffungsart](#beschaffungsart) == "Kaufteil" +- [PDM-Kategorie](#pdm-kategorie) == "Schweissbaugruppe" und [Beschaffungsart](#beschaffungsart) == "Kaufteil" +- [PDM-Kategorie](#pdm-kategorie) == "Kaufteil" und [Beschaffungsart](#beschaffungsart) == "Eigenbau" + +**ERROR-Messagebox:** + +![error_beschaffungsart](../doc/Pictures/error_beschaffungsart.jpg) + + +**messagebox-Text:** + + Beschaffungsart falsch. Bitte berichtigen! + +--- +#### Mengeneinheit +Tritt eine der nachfolgenden Kombinationen auf, muss eine ERROR-Messagebox erscheinen: +- [Rüstcode](#rüstcode) == "SRC Standard Rüstcode" und [Mengeneinheit](#mengeneinheit) != "Stck - Stück" + +**ERROR-Messagebox:** + +![error_mengeneinheit](../doc/Pictures/error_mengeneinheit.jpg) + + +**messagebox-Text:** + + Mengeneinheit falsch. Bitte berichtigen! + +--- +#### Halbzeug +Tritt eine der nachfolgenden Kombinationen auf, muss eine ERROR-Messagebox erscheinen: +- [Rüstcode](#rüstcode) == "SRC Standard Rüstcode" und [Halbzeug](#halbzeug) == "WAHR" +- [Rüstcode](#rüstcode) == "Trümmerbaugruppe" und [Halbzeug](#halbzeug) == "WAHR" + +**ERROR-Messagebox:** + +![error_halbzeug](../doc/Pictures/error_halbzeug.jpg) + +**messagebox-Text:** + + Teilenummer kann kein Halbzeug sein. Bitte berichtigen! + +--- +#### TOS-Gruppe +Wenn die eingetragene Zahl im Feld [TOS-Gruppe](#tos-gruppe) nicht als "reference-id"-Objekt in der json-Datei [TOS-Gruppen.json](../cfg/TOS-Gruppen.json) exisitert, muss eine ERROR-Messagebox erscheinen: + +**ERROR-Messagebox:** + +![error_tosgruppe](../doc/Pictures/error_tosgruppe.jpg) + +**messagebox-Text:** + + TOS-Gruppe exisitert nicht. Bitte eingetragene Gruppennummer korrigieren oder ergänzen! + +--- +#### Dispogruppe +Wenn im Feld [Dispogruppe](#dispogruppe) keine Wert eingetragen ist, muss eine ERROR-Messagebox erscheinen: + +**ERROR-Messagebox:** + +![error_dispogruppe](../doc/Pictures/error_dispogruppe.jpg) + +**messagebox-Text:** + + Datensatz kann nicht ohne Dispogruppe migriert werden. Bitte nachpflegen! --- #### Dispolaufgruppe -Wenn das Feld Dispolaufgruppe in der Spalte "SIVAS-Werte" leer ist und in der Spalte "Überschriebene Werte" kein neuer Wert ausgewählt wurde soll eine Fehlermeldung, z.B. mit Text "*Bitte Dispolaufgruppe wählen!*", bzw. "*Bitte Dispolaufgruppe wählen!*" erscheinen. +Wenn im Feld [Dispolaufgruppe](#dispolaufgruppe) keine Wert eingetragen ist, muss eine ERROR-Messagebox erscheinen: + +![error_dispolaufgruppe](../doc/Pictures/error_dispolaufgruppe.jpg) + +**messagebox-Text:** + + Datensatz kann nicht ohne Dispolaufgruppe migriert werden. Bitte nachpflegen! --- #### Ersatz für -Wenn die ersetzte Teilenummer noch nicht in der Datei "RD_Teilenummern.csv" existiert, soll eine YESNO-Messagebox, z.B. mit Text *"Ersetzte Teilenummer {Teilenummer in Feld "Ersatz für"} existiert noch nicht in migriert. Migration trotzdem durchführen?"*. Beim Klick auf "Ja" soll die Migration durchgeführt werden, bei "Nein" nicht. +Wenn die ersetzte Teilenummer im Feld [Ersatz für](#ersatz-für) noch nicht in der Datei [RD_Teilenummern.csv](../data/RD_Teilenummern.csv) existiert, soll eine YESNO-Messagebox erscheinen: + +![question_ersatz_fuer](../doc/Pictures/question_ersatz_fuer.jpg) + +**messagebox-Text:** + + Ersetzte Teilenummer {Ersetzte Teilenummer} exisitert noch nicht in RuleDesigner. Migration trotzdem durchführen? + +- Defaultmäßig soll "Nein" gehighlited werden. In tk erzielbar durch "default=no": + `messagebox.yesno('Title', 'text', default='no')` +- Beim Klick auf "Ja" soll die Migration durchgeführt werden, bei "Nein" nicht. --- #### Ersetzt durch -Wenn die Ersatz-Teilenummer noch nicht in der Datei "RD_Teilenummern.csv" existiert, soll eine YESNO-Messagebox, z.B. mit Text *"Ersatz-Teilenummer {Teilenummer in "Ersetzt durch"} exisitert noch nicht in RuleDesigner. Migration trotzdem durchführen?"* erscheinen. Beim Klick auf "Ja" soll die Migration durchgeführt werden, bei "Nein" nicht. + +Wenn die Ersatz-Teilenummer im Feld [Ersetzt durch](#ersetzt-durch) noch nicht in der Datei [RD_Teilenummern.csv](../data/RD_Teilenummern.csv) existiert, soll eine YESNO-Messagebox erscheinen: + +![question_ersetzt_durch](../doc/Pictures/question_ersetzt_durch.jpg) + +**messagebox-Text:** + + Ersatz-Teilenummer {Ersatz-Teilenummer} exisitert noch nicht in RuleDesigner. Migration trotzdem durchführen? + +- Defaultmäßig soll "Nein" gehighlited werden. In tk erzielbar durch "default=no": + `messagebox.yesno('Title', 'text', default='no')` +- Beim Klick auf "Ja" soll die Migration durchgeführt werden, bei "Nein" nicht. --- #### Hersteller -Wenn der angegebene Hersteller in der Spalte "SIVAS-Werte" nicht in der Datei [Hersteller.cfg](/cfg/Hersteller.cfg) existiert muss eine ERROR-Messagebox, z.B. mit Text "Hersteller nicht in RuleDesigner enthalten. Bitte nachpflegen" erscheinen, die eine Migration verhindert. +Wenn der angegebene [Hersteller](#hersteller) in der Spalte "SIVAS-Werte" nicht in der Datei [Hersteller.cfg](/cfg/Hersteller.cfg) existiert muss eine ERROR-Messagebox erscheinen: + +![error_hersteller](../doc/pictures/error_hersteller.jpg) + +**messagebox-Text:** + + Hersteller nicht in RuleDesigner enthalten. Bitte nachpflegen! + +--- +#### Werkstofftyp +Wenn der eingetragene Wert im Feld [Werkstofftyp](#werkstofftyp) nicht in Sektion "Werkstofftyp" der cfg-Datei [Werkstoff.cfg](../cfg/Werkstoff.cfg) enthalten ist (z.B. wenn in ComboBox "*Bitte individuell auswählen*" steht), muss eine ERROR-Messagebox erscheinen: + +![error_werkstofftyp](../doc/Pictures/error_werkstofftyp.jpg) + +**messagebox-Text:** + + Eingetragener Werkstofftyp exisitert nicht. Bitte korrigeren! + +--- +#### Material +Tritt eine der nachfolgenden aufgelisteten Fälle auf, soll eine ERROR-Messagebox (siehe nachfolgendes Bild) erscheinen: + +- [PDM-Kategorie](#pdm-kategorie) == "Baugruppe" + [Material](#material) != "" (leer) +- [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" + [Aus Halbzeug](#aus-halbzeug) == True + [Material](#material) != "" (leer) +- [PDM-Kategorie](#pdm-kategorie) == "Kaufteil" + [Material](#material) != "siehe Hersteller" +- [PDM-Kategorie](#pdm-kategorie) == "Schweissbaugruppe" + [Material](#material) != "" (leer) +- Wenn der eingetragene Wert im Feld [Material](#werkstofftyp) nicht in einer der nachfolgenden Sektionen der cfg-Datei [Werkstoff.cfg](../cfg/Werkstoff.cfg) enthalten ist (z.B. wenn in ComboBox "*Bitte individuell auswählen*" steht): + - Stahl + - Aluminium + - Kunst-/ Verbundstoff + - Schwermetall + - Festigkeitsklasse + +![error_material](../doc/Pictures/error_material.jpg) + +**messagebox-Text:** + + Werkstoff falsch. Bitte korrigieren! + +--- +#### Farbe +Tritt eine der nachfolgenden aufgelisteten Fälle auf, soll eine ERROR-Messagebox (siehe nachfolgendes Bild) erscheinen: + +- [Farbe](#farbe) == "" (leer) + eine der nachfolgenden [Oberflächen](#oberfläche): + - eloxieren + - pulverbeschichten + - Masterbatch (Grundfarbe) + - lackieren + +![error_farbe](../doc/Pictures/error_farbe.jpg) + +**messagebox-Text:** + + Teilenummer kann nicht ohne festgelegte Farbe migriert werden! --- #### Änderungstext und Freigabevermerk @@ -1890,10 +2280,10 @@ In der Spalte "Author" soll der Wert aus der Windows-Systemumgebungsvariable `%U Vor die Impfdatei geschrieben wird, müssen die CheckButton-Werte gemappt werden, siehe Tabelle: -|Wert in Feld [Aus Halbzeug](#aus-halbzeug) |Wert in Impfdatei | -|-------------------------------------------|-----------------------------| -|True (Haken gesetzt) |Ja | -|False (Haken nicht gesetzt) |"" (kein Wert) | +|Wert in Feld [Aus Halbzeug](#aus-halbzeug) |Wert in Impfdatei | +|-------------------------------------------|------------------| +|True (Haken gesetzt) |Ja | +|False (Haken nicht gesetzt) |"" (kein Wert) | --- #### Fertigungsart @@ -1921,49 +2311,103 @@ Bevor die Fertigungsarten in die Impfdatei geschrieben werden, müssen die einge Der eingetragene Wert im Feld [FOS-Gruppe](#fos-gruppe) muss als gemappter Wert in die Impfdatei geschrieben werden, siehe rechte Tabellenspalte: -|Wert in Feld [FOS-Gruppe](#fos-gruppe) |Wert in Impfdatei | -|---------------------------------------|-----------------------------| -|0 - Einzelteil |Einzelteil | -|1 - Baugruppe |Baugruppe | +|Wert in Feld [FOS-Gruppe](#fos-gruppe) |Wert in Impfdatei | +|---------------------------------------|------------------| +|0 - Einzelteil |Einzelteil | +|1 - Baugruppe |Baugruppe | + +--- +#### Mengeneinheit + +Der eingetragene Wert im Feld [Mengeneinheit](#mengeneinheit) muss als gemappter Wert in die Impfdatei geschrieben werden, siehe rechte Tabellenspalte: + +|Wert in Feld [Mengeneinheit](#mengeneinheit) |Wert in Impfdatei | +|---------------------------------------------|------------------| +|L - Liter |L | +|mm - Millimeter |mm | +|Stck - Stück |Stck | +|M - Meter |m | +|m2 - Quadratmeter |m² | +|dm³ - Kubikdezimeter |dm³ | +|m³ - Kubikmeter |m³ | + +--- +#### Halbzeug + +Der eingetragene Wert im Feld [Halbzeug](#halbzeug) muss als gemappter Wert in die Impfdatei geschrieben werden, siehe rechte Tabellenspalte: + +|Wert in Feld [Halbzeug](#halbzeug) |Wert in Impfdatei | +|-----------------------------------|------------------| +|WAHR |Ja | +|FALSCH |"" (leer) | + --- #### TOS-Gruppe -Die Zahlen der TOS-Gruppennummer beschreiben einen Pfad, d.h. die nächste Zahl/Gruppe ist immer das Kind der aktuellen Zahl/Gruppe. Jede Zahl/Gruppe verfügt über ein eigenes RuleDesigner-Feld, das in der Impfliste befüllt werden muss. +Die Zahlen der TOS-Gruppennummer bilden einen Pfad, d.h. die nächste Zahl in der Gruppennummer ist immer das Kind der aktuellen Gruppennummer. Die aktuelle Gruppennummer setzt sich dabei immer aus den vorherigen Zahlen zusammen. -Die nachfolgende Tabelle beschreibt anhand der Gruppennummer 3303, welche Felder (siehe Feldnamen) jeweils welche Werte erhalten müssten: +**Beispiel:** +Bei Gruppennummer 1234 wäre: +- "1" die erste Gruppennummer. Sie besitzt keine Eltern-Gruppennummer +- "2" das Kind der Gruppennummer "1". Sie selbst besitzt die Gruppennummer "12" +- "3" das Kind der Gruppennummer "12". Sie selbst besitzt die Gruppennummer "123" +- "4" das Kind der Gruppennummer "123". Sie selbst besitzt die Gruppennummer "1234" -|Nr. |Feldname |Wert | +Jeder Gruppennummer repräsentiert einen sprechenden Wert (siehe anhand Gruppennummer 3303): + +|Gruppennummer |Wert | +|-------------:|-------------------------| +|3 |Schönenberger Produkt | +|33 |ILS IntraLogistikSystem | +|330 |ILS 2.0 | +|3303 |Laufprofil 2.0 | + +Die sprechenden Werte sind in der json-Datei [TOS-Gruppen.json](../cfg/TOS-Gruppen.json) jeweils unter den "children"-Objekten aufgelistet. + +Die Werte müssen in der Impfdatei in die Spalten der Eltern-Gruppennummern eingetragen werden: + +|Nr. |Spaltenname in Impfdatei |Wert in Impfdatei | |----:|---------------------------|-------------------------| |3 |TOS-Gruppe | Schönenberger Produkt | |33 |TOS_Schoenenberger_Produkt | ILS IntraLogistikSystem | |330 |TOS_ILS | ILS 2.0 | |3303 |TOS_ILS_2 | Laufprofil 2.0 | -Eine Auflistung mit allen Gruppen und deren Werten / Kindern befindet sich in der Datei [TOS-Gruppen.json](../cfg/TOS-Gruppen.json). +Die Spaltennamen sind in der json-Datei [TOS-Gruppen.json](../cfg/TOS-Gruppen.json) jeweils unter den "reference-ids"-Objekten aufgelistet. -**Anmerkung:** -Felder, die nicht Teil der angegebenen TOS-Gruppennummer sind, dürfen trotzdem in der Impfdatei vorhanden sein, solange sie keinen Wert aufweisen. Grund: -Das Solid Edge "DataPrepUtility" berücksichtigt beim Schreiben der Paramter in die Solid Edge-Dateien keine leeren Spalten/Werte. --- #### Dispogruppe -Der festgelegte Wert im Feld "Dispogruppe" muss bis einschließlich " - " gekürzt werden. Beispiel: -"20 - Förderer" ---wird zu---> "Förderer" +Der eingetragene Wert im Feld [Dispogruppe](#dispogruppe) muss als gemappter Wert in die Impfdatei geschrieben werden, siehe rechte Tabellenspalte: -**Sonderfall:** -- "60 - Kleinteile" ---wird zu---> "Kleinteil" ("e" am Ende von "Kleinteile" entfällt) +|Wert in Feld [Dispogruppe](#dispogruppe) |Wert in Impfdatei | +|-----------------------------------------|----------------------| +|10 - Fahrstrecke |Fahrstrecke | +|20 - Förderer |Förderer | +|30 - Gerüst |Gerüst | +|40 - Betriebsmittel |Betriebsmittel | +|50 - Automation |Automation | +|60 - Kleinteile |Kleinteil | +|70 - Rohmaterial |Rohmaterial | +|80 - Sonstiges Intern |Sonstiges Intern | +|90 - Baustelleneinrichtung |Baustelleneinrichtung | +|100 - Sonderkonstruktionen |Sonderkonstruktionen | --- #### Dispolaufgruppe -Der festgelegte Wert des Feldes "Dispolaufgruppe" muss bis einschließlich " - " gekürzt werden. Beispiel: -"20 - Intra Logistic System + Alt-HFS" ---wird zu---> "Intra Logistic System + alt-HFS" +Der eingetragene Wert im Feld [Dispolaufgruppe](#dispolaufgruppe) muss als gemappter Wert in die Impfdatei geschrieben werden, siehe rechte Tabellenspalte: -**Sonderfälle** -- "40 - Spinnereikomponenten" ---wird zu---> "Spinnereikomponente" ("n" am Ende von "Spinnereikomponenten" entfällt) -- "20 - Intra Logistic System + Alt-HFS" ---wird zu---> "Intra Logistic System + alt-HFS" ("a" in "alt" wird kleingeschrieben) +|Wert in Feld [Dispolaufgruppe](#dispolaufgruppe) |Wert in Impfdatei | +|-------------------------------------------------|--------------------------------------| +|10 - Omniflo |Omniflo | +|20 - Intra Logistic System + Alt-HFS |Intra Logistic System + alt-HFS | +|30 - Fremd-Transportsysteme + SSG-Anbauten |Fremd-Transportsysteme + SSG-Anbauten | +|40 - Spinnereikomponenten |Spinnereikomponente | +|45 - Automotiv |Automotiv | +|50 - Nicht eindeutig, Sonder |Nicht eindeutig, Sonder | --- #### ZusaetzlicheInformationen