Entries durch korrekte Comboboxen ersetzt. Aufruf des Controllers für die Datenrückgabe

This commit is contained in:
2024-01-11 11:44:20 +01:00
parent 9503841629
commit 8e2061d8db
+118 -92
View File
@@ -7,70 +7,6 @@ from tkinter import ttk
#logger = logging.getLogger(__name__) #logger = logging.getLogger(__name__)
red_ids = ( '400102274', '400102275', '400102190', '400102198',
'400102161', '400102277', '400102163', '400102278',
'400102282', '400102284', '400102195', 'MA0000008',
'MA0000004', '929055170', '400102267', '400102235',
'400102236', 'MA0000006', '400102237', '400102238',
'400102239', '400102268', '829416159', '924031058',
'924031081', '822064091', '822066199', '822066200')
parent_children_mapping = {'400102196': ['400102125', '400102126', '400102130',
'400102161', '400102163', '400102165',
'400102166', '400102167', '400102168',
'400102190', '400102195', '400102198',
'400102246', '400102247', '400102267',
'400102272', '400102274', '400102275',
'400102277', '400102278', '400102282',
'400102284', '400102417', '720002003',
'721001034', '821114025', '822064091',
'822066085', '822996075', '829416061',
'829516004', '911021113', '911021181',
'911021259', '911091054', '911091096',
'911091097', '911251013', '912011009',
'919050006', '924031058',
'924031081'],
'400102282': ['822066026', '822066089', '919010052'],
'400102195': [ '822066075', '822066216',
'822066154', '822066101', '822064090',
'822066196', '400102129', '822066217',
'822066160', '822066215', '913041045',
'913011009', '911011057', '822064035',
'925011006', '911091041', '913051040',
'911021112', '911021166', '825006003',
'912041005', '911011014', '911011009',
'911021144', '911021001', '913011016',
'929055170', '913011010', '911021035',
'829416065', '712000151',
'712000100'],
'822066075': ['822066157', '822066162', '911261023'],
'822066162': [ '822064013'],
'822066196': ['MA0000008'],
'822066160': ['MA0000004'],
'822064035': ['822066065'],
'822064093': ['822066204', '822066205', '822066206', '822066207', '822066208'],
'822066220': ['924031033'],
'822064091': ['822066212', '822064093', '822066220',
'822066200', '912011010', '911021156',
'822066201', '911071027', '913011109',
'911011070', '913011001', '710005021',
'919010055', '720000008', '720000007'],
'400102267': ['400102235', '829416159', '829416077',
'829416079', '911021260', '911021147',
'911251014'],
'400102235': ['400102236', '400102237', '400102238',
'400102239', '400102268', '911021143',
'911021054', '911021055'],
'400102236': ['MA0000006'],
'829416159': ['829416089'],
'400102130': ['400102142'],
'821116004': ['822026004'],
'400102168': ['821116001'],
'821114025': ['911081007', '821116053'],
'400102167': ['821116004']}
class TreeView(): class TreeView():
def __init__(self, frame): def __init__(self, frame):
@@ -134,13 +70,22 @@ class TreeView():
class RightFramePDM(): class RightFramePDM():
def __init__(self, frame, controller): def __init__(self, frame, controller):
self.controller = controller self.controller = controller
self.frame = frame
self.build_gui()
def build_gui(self):
frame = self.frame
rownum = 0 rownum = 0
col_left = 0 col_left = 0
# pdmkategorie # pdmkategorie
pdmkategorie_label = ttk.Label(frame, text="PDM-Kategorie:" ) pdmkategorie_label = ttk.Label(frame, text="PDM-Kategorie:" )
pdmkategorie_label.grid(column=col_left, row=rownum, sticky=tk.W, padx=5, pady=5) pdmkategorie_label.grid(column=col_left, row=rownum, sticky=tk.W, padx=5, pady=5)
pdmkategorie_entry = ttk.Entry(frame) self.pdm_category = tk.StringVar()
pdmkategorie_entry.grid(column=col_left+2, row=rownum, sticky=tk.W, padx=5, pady=5) pdmkategorie_combo = ttk.Combobox(frame, textvariable=self.pdm_category)
pdmkategorie_combo['values'] = ["Baugruppe", "Einzelteil", "Kaufteil", "NichtSivas", "Normteil", "Schweissbaugruppe"]
pdmkategorie_combo['state'] = 'readonly'
pdmkategorie_combo.bind('<<ComboboxSelected>>', self.combo_callbacks) # falls nötig
pdmkategorie_combo.grid(column=col_left+2, row=rownum, sticky=tk.W, padx=5, pady=5)
rownum += 1 rownum += 1
# Neuaufbau # Neuaufbau
@@ -150,7 +95,6 @@ class RightFramePDM():
self.neuaufbau = None self.neuaufbau = None
neuaufbau_checkbutton = ttk.Checkbutton(frame, neuaufbau_checkbutton = ttk.Checkbutton(frame,
text='ja', text='ja',
command=self.var_changed("neuaufbau"),
variable=self.neuaufbau, variable=self.neuaufbau,
onvalue=True, onvalue=True,
offvalue=False) offvalue=False)
@@ -160,37 +104,56 @@ class RightFramePDM():
# Lebenszyklusstatus # Lebenszyklusstatus
lebenszyklusstatus_label = ttk.Label(frame, text="Lebenszyklusstatus:") lebenszyklusstatus_label = ttk.Label(frame, text="Lebenszyklusstatus:")
lebenszyklusstatus_label.grid(column=col_left, row=rownum, sticky=tk.W, padx=5, pady=5) lebenszyklusstatus_label.grid(column=col_left, row=rownum, sticky=tk.W, padx=5, pady=5)
lebenszyklusstatus_entry = ttk.Entry(frame, show="*") self.lebenszyklus_status_neu = tk.StringVar()
lebenszyklusstatus_entry.grid(column=col_left+2, row=rownum, sticky=tk.W, padx=5, pady=5) lebenszyklusstatus_combo = ttk.Combobox(frame, textvariable=self.lebenszyklus_status_neu)
lebenszyklusstatus_combo['values'] = ["Serie", "Prototyp"]
lebenszyklusstatus_combo['state'] = 'readonly'
lebenszyklusstatus_combo.bind('<<ComboboxSelected>>', self.combo_callbacks)
lebenszyklusstatus_combo.grid(column=col_left+2, row=rownum, sticky=tk.W, padx=5, pady=5)
rownum += 1 rownum += 1
halbzeug_label = ttk.Label(frame, text="Halbzeug:") # aus Halbzeug
halbzeug_label = ttk.Label(frame, text="aus Halbzeug:")
halbzeug_label.grid(column=col_left, row=rownum, sticky=tk.W, padx=5, pady=5) halbzeug_label.grid(column=col_left, row=rownum, sticky=tk.W, padx=5, pady=5)
self.aus_halbzeug_sivas = None
aushalbzeug_checkbutton_sivas = ttk.Checkbutton(frame,
text='aus Sivas',
command=self.var_changed("aus_halbzeug_sivas"),
variable=self.aus_halbzeug_sivas,
onvalue=True,
offvalue=False)
aushalbzeug_checkbutton_sivas.grid(column=col_left+1, row=rownum, sticky=tk.W, padx=5, pady=5)
self.aus_halbzeug_neu = None self.aus_halbzeug_neu = None
aushalbzeug_checkbuttonr = ttk.Checkbutton(frame, aushalbzeug_checkbuttonr = ttk.Checkbutton(frame,
text='neu', text='neu',
command=self.var_changed("aus_halbzeug_neu"),
variable=self.aus_halbzeug_neu, variable=self.aus_halbzeug_neu,
onvalue=True, onvalue=True,
offvalue=False) offvalue=False)
aushalbzeug_checkbuttonr.grid(column=col_left+2, row=rownum, sticky=tk.W, padx=5, pady=5) aushalbzeug_checkbuttonr.grid(column=col_left+2, row=rownum, sticky=tk.W, padx=5, pady=5)
rownum += 1 rownum += 1
def var_changed(self, whichvar): # Zusatzinformationen
if whichvar == "neuaufbau": zusatzinfos_label = ttk.Label(frame, text="Zusatzinformationen:")
b = self.neuaufbau zusatzinfos_label.grid(column=col_left, row=rownum, sticky=tk.W, padx=5, pady=5)
elif whichvar == "aus_halbzeug_sivas": self.zusatzinfos_text = tk.StringVar()
b = self.aus_halbzeug_sivas zusatzinfos_entry = ttk.Entry(frame, textvariable=self.zusatzinfos_text)
elif whichvar == "aus_halbzeug_sivas": zusatzinfos_entry.grid(column=col_left+2, row=rownum, sticky=tk.W, padx=5, pady=5)
b = self.aus_halbzeug_neu rownum += 1
return rownum
def get_data(self):
return {
"pdm_kategorie_neu": self.pdm_category.get(),
"neuaufbau": self.neuaufbau,
"lebenszyklusstatus_neu": self.lebenszyklus_status_neu.get(),
"aus_halbzeug_neu": self.aus_halbzeug_neu,
"zusatzinfos_txt_neu": self.zusatzinfos_text.get(),
}
def to_model(self):
data = self.get_data()
self.controller.set_data(data)
def from_model(self):
data = self.controller.get_data()
self.aus_halbzeug_neu = data["aus_halbzeug_neu"]
self.neuaufbau = data["neuaufbau"]
self.zusatzinfos_text.set(data["neuaufbau"])
def combo_callbacks(self, event):
""" handle the changed event """
# TODO falls nötig
pass
@@ -217,6 +180,9 @@ class App():
style = ttk.Style(self.root) style = ttk.Style(self.root)
style.theme_use('classic') style.theme_use('classic')
current_id = self.controller.get_current_asm_id()
self.controller.get_parent_children()
self.controller.get_red_ids()
self.tv = TreeView(left_frame) self.tv = TreeView(left_frame)
self.tv.create(parent_children_mapping, red_ids) self.tv.create(parent_children_mapping, red_ids)
gridhdl = self.tv.get_handle() gridhdl = self.tv.get_handle()
@@ -319,12 +285,51 @@ if __name__ == "__main__":
class CadItem(): class CadItem():
""" """
This item contains all data for writing all necessary data to the solid edg cad file This item contains all data for writing all necessary data to the solid edg cad file
""" """
def __init__(self, uid): # diese Daten bilden dann die Impfdaten
data_keys = [ "Author", "Teilenummer", "StartRevision",
"Bezeichnung1", "Bezeichnung2", "Bezeichnung4", "KategorieNE",
"BeschaffungsartNE", "TOS-Gruppe_ERP", "Dispogruppe",
"Dispolaufgruppe", "WerkstofftypNE", "WerkstoffNE",
"Oberflaechenbehandlung", "Farbe", "KalkulationsartNE",
"RuestcodeAusw", "Fertigungsart", "Allgemeintoleranz",
"HalbzeugInternAngabe", "Halbzeug", "HalbzeugOhneSaegeliste",
"EinheitNE", "FOS-GruppeNE", "Hersteller", "HerstellerTeilenummer",
"Serien-Status", "Kantennorm", "Oberflaechennorm", "Massnorm",
"Tolerierungsnorm", "TOS-Gruppe", "TOS_Schoenenberger_Produkt",
"TOS_Automation", "TOS_Maschinenelement",
"TOS_Schoenenberger_Komponenten", "TOS_Pneumatik", "TOS_Konfig",
"TOS_ILS", "TOS_MAS", "TOS_Spinnereikomponente",
"TOS_Betriebsmittel", "TOS_Geruest", "TOS_FremdTransport",
"TOS_MAS_Konfig", "TOS_Schaltschrank", "TOS_Schalt_Einbau",
"TOS_Dezentral", "TOS_Automation_Sensorik", "TOS_Kabel",
"TOS_Installation", "TOS_Automation_Sonstiges",
"TOS_Verbindungselement", "TOS_Lager", "TOS_Kraft_Drehmoment",
"TOS_Sicherungselement", "TOS_Bedienungselement", "TOS_ILS_2",
"TOS_ILS_Foerderer", "TOS_MAS_Fahrstecke", "TOS_Trolley",
"TOS_Trolley_Projekte", "TOS_Trolley_Omniflo",
"TOS_Trolley_Spinnerei", "TOS_Trolley_ILS", "Änderungsbeschreibung",
"Freigabevermerk", "ZusaetzlicheInformationen"]
def __init__(self, asm_id):
""" is initalized with its unique id""" """ is initalized with its unique id"""
self.id = uid self.set_asm_id(asm_id)
self.red_ids = {} self.red_ids = {}
self.parent_children_mapping = {} self.parent_children_mapping = {}
self.data = {}
self.gui_data = {}
def set_asm_id(self, asm_id):
self.asm_id = asm_id
def get_current_asm_id(self):
return self.asm_id
def get_current_part_id(self):
return self.prt_id
def set_part_id(self, prt_id):
self.prt_id = prt_id
def set_parent_children(self, parent_children_mapping): def set_parent_children(self, parent_children_mapping):
""" contains all id relations below, data of subassemblies etc. in """ contains all id relations below, data of subassemblies etc. in
@@ -341,6 +346,18 @@ if __name__ == "__main__":
def get_red_ids(self): def get_red_ids(self):
return self.red_ids return self.red_ids
def set_data(self, data:dict):
for k,v in data:
self.set_data(k,v)
def set_data(self, key, val):
if key not in self.data_keys:
raise Exception("this data can not be set")
else:
self.data[key] = val
def get_data(self, key):
return self.data[key]
def load(): def load():
pass pass
def save(): def save():
@@ -386,15 +403,24 @@ if __name__ == "__main__":
def __init__(self, model): def __init__(self, model):
self.model = model self.model = model
def get_current_asm_id(self):
self.model.get_current_asm_id()
def set_current_asm_id(self, asm_id):
self.model.set_current_asm_id(asm_id)
def set_red_ids(self, red_ids): def set_red_ids(self, red_ids):
self.red_ids = red_ids self.model.set_red_ids(red_ids)
def get_red_ids(self): def get_red_ids(self):
return self.red_ids return self.model.get_red_ids()
def set_parent_children(self, parent_children_mapping): def set_parent_children(self, parent_children_mapping):
self.parent_children_mapping = parent_children_mapping self.model.set_parent_children(parent_children_mapping)
def get_parent_children(self): def get_parent_children(self):
return self.parent_children_mapping return self.model.get_parent_children()
def set_data(self, key, value):
self.model.set_data(key, value)
#logging.basicConfig(level=logging.DEBUG) #logging.basicConfig(level=logging.DEBUG)