Untitled

 avatar
unknown
python
2 months ago
8.1 kB
5
Indexable
import tkinter as tk
from tkinter import ttk

# Funkcja generująca tekst na podstawie zaznaczonych warunków
def generate_text():
    WWpart_number_value = WWpart_number.get()  # Pobranie wartości wprowadzonego numeru
    Mfrpart_number_value = Mfrpart_number.get()
    mfr_name_value = mfr_name.get()

    # Warunki zależne od zaznaczenia checkboxów
    if Engine_var.get() and Turbine_var.get():
        text = f"[PROD_ELEC_Engine,Turbine] {WWpart_number_value} AML Maintenance\n"
        text += "-----------------------------------\n"
        text += f"WWpart: {WWpart_number_value}"
    elif Engine_var.get() and IPCS_var.get():
        text = f"[PROD_ELEC_Engine,IPCS] {WWpart_number_value} AML Maintenance\n"
        text += "-----------------------------------\n"
        text += f"WWpart: {WWpart_number_value}"
    elif Turbine_var.get() and IPCS_var.get():
        text = f"[PROD_ELEC_Turbine,IPCS] {WWpart_number_value} AML Maintenance\n"
        text += "-----------------------------------\n"
        text += f"WWpart: {WWpart_number_value}"
    elif Engine_var.get():
        text = f"[PROD_ELEC_Engine] {WWpart_number_value} AML Maintenance\n"
        text += "-----------------------------------\n"
        text += f"WWpart: {WWpart_number_value}"
    elif Turbine_var.get():
        text = f"[PROD_ELEC_Turbine] {WWpart_number_value} AML Maintenance\n"
        text += "-----------------------------------\n"
        text += f"WWpart: {WWpart_number_value}"
    elif IPCS_var.get():
        text = f"[PROD_ELEC_IPCS] {WWpart_number_value} AML Maintenance\n"
        text += "-----------------------------------\n"
        text += f"WWpart: {WWpart_number_value}"



    if revision_var.get():
        text += "\n-Advanced Revision."
    if EDS_var.get():
        text += "\n-Removed 'EDS' from description."
    if classification_var.get():
        text += "\n-Classification added."
    if Handling_Reqt_var.get():
        text += "\n-Changed Engineering Handling Reqt(s) to Standard."
    if update_compliance_req_var.get():
        text += "\n-Updated Compliance Requirements from 'RoHS2_[2011_65_EU]' to 'RoHS2_[2015_863_EU]'."
    if added_compliance_req_var.get():
        text += "\n-Added Compliance Requirements as 'RoHS2_[2015_863_EU]'."
    if remove_compliance_req_var.get():
        text += "\n-Remove Compliance Requirements from 'RoHS2_[2015_863_EU]' to blank."
    if compliant_var.get():
        text += "\n-Added to AML as RoHS Compliant:\n"
        text += (f"[{mfr_name_value}] "
                 f"{Mfrpart_number_value}\n")
    if non_compliant_var.get() or (non_compliant_var.get() and compliant_var.get()):
        text += "\n-Added to AML as RoHS Non-Compliant:\n"

    text += "\nDISPOSITION:\nUSE - All applications.\n"
    text += "--------------------------------------------\n"
    text += "Substantiation:\nComponent Management\n"
    text += "--------------------------------------------\n"
    text += "REASON FOR CHANGE:\n"
    text += f"AML Maintenance. Adding new mfr part from {mfr_name_value} with different package option per Fideltronik request."
    result_text.delete(1.0, tk.END)
    result_text.insert(tk.END, text)

   # Funkcja resetująca zaznaczone boxy i pola tekstowe
def reset_fields():
    WWpart_number.delete(0, tk.END)
    Resp_eng.delete(0, tk.END)
    Mfrpart_number.delete(0, tk.END)
    mfr_name.delete(0, tk.END)
    Engine_var.set(False)
    Turbine_var.set(False)
    IPCS_var.set(False)
    revision_var.set(False)
    EDS_var.set(False)
    classification_var.set(False)
    Handling_Reqt_var.set(False)
    compliant_var.set(False)
    non_compliant_var.set(False)
    added_compliance_req_var.set(False)
    update_compliance_req_var.set(False)
    remove_compliance_req_var.set(False)
    sub_var1.set(False)
    sub_var2.set(False)
    var3.set(False)
    result_text.delete(1.0, tk.END)

# Główne okno aplikacji
root = tk.Tk()
root.title("Fideltronik requests CN generator")

# Ramka dla opcji
frame = ttk.Frame(root, padding="10")
frame.grid(row=0, column=0, sticky=(tk.W, tk.E, tk.N, tk.S))

# Definicje zmiennych do przechowywania stanu opcji
Engine_var = tk.BooleanVar()
Turbine_var = tk.BooleanVar()
IPCS_var = tk.BooleanVar()
revision_var = tk.BooleanVar()
EDS_var = tk.BooleanVar()
classification_var = tk.BooleanVar()
Handling_Reqt_var = tk.BooleanVar()
compliant_var = tk.BooleanVar()
non_compliant_var = tk.BooleanVar()
added_compliance_req_var = tk.BooleanVar()
update_compliance_req_var = tk.BooleanVar()
remove_compliance_req_var = tk.BooleanVar()
sub_var1 = tk.BooleanVar()
sub_var2 = tk.BooleanVar()
var3 = tk.BooleanVar()

# Pytania i checkboxy dla opcji
ttk.Label(frame, text="Enter WW part number").grid(row=0, column=0, sticky=tk.W)
WWpart_number = ttk.Entry(frame, width=30)
WWpart_number.grid(row=1, column=0, sticky=tk.W)
ttk.Label(frame, text="Enter Resp. Eng.").grid(row=0, column=1, sticky=tk.W)
Resp_eng = ttk.Entry(frame, width=30)
Resp_eng.grid(row=1, column=1, sticky=tk.W)

ttk.Label(frame, text="Where does product is used?").grid(row=2, column=0, sticky=tk.W)
ttk.Checkbutton(frame, text="Engine", variable=Engine_var).grid(row=3, column=0, sticky=tk.W)
ttk.Checkbutton(frame, text="Turbine", variable=Turbine_var).grid(row=3, column=1, sticky=tk.W)
ttk.Checkbutton(frame, text="IPCS", variable=IPCS_var).grid(row=3, column=2, sticky=tk.W)

ttk.Label(frame, text="Advanced revision?").grid(row=4, column=0, sticky=tk.W)
ttk.Checkbutton(frame, text="Yes", variable=revision_var).grid(row=5, column=0, sticky=tk.W)

ttk.Label(frame, text="Removed EDS form description?").grid(row=4, column=1, sticky=tk.W)
ttk.Checkbutton(frame, text="Yes", variable=EDS_var).grid(row=5, column=1, sticky=tk.W)

ttk.Label(frame, text="Classification added?").grid(row=6, column=0, sticky=tk.W)
ttk.Checkbutton(frame, text="Yes", variable=classification_var).grid(row=7, column=0, sticky=tk.W)

ttk.Label(frame, text="Engineering Handling Reqt(s) to Standard?").grid(row=6, column=1, sticky=tk.W)
ttk.Checkbutton(frame, text="Yes", variable=Handling_Reqt_var).grid(row=7, column=1, sticky=tk.W)

ttk.Label(frame, text="Compliance Requirements: ").grid(row=8, column=0, sticky=tk.W)
ttk.Checkbutton(frame, text="Added", variable=added_compliance_req_var).grid(row=9, column=0, sticky=tk.W)
ttk.Checkbutton(frame, text="Update", variable=update_compliance_req_var).grid(row=9, column=1, sticky=tk.W)
ttk.Checkbutton(frame, text="Remove", variable=remove_compliance_req_var).grid(row=9, column=2, sticky=tk.W)

ttk.Label(frame, text="Added to AML as RoHS").grid(row=10, column=0, sticky=tk.W)
ttk.Checkbutton(frame, text="Compliant", variable=compliant_var).grid(row=11, column=0, sticky=tk.W)
ttk.Checkbutton(frame, text="Non-Compliant", variable=non_compliant_var).grid(row=11, column=1, sticky=tk.W)

ttk.Label(frame, text="Enter Mfr part number").grid(row=12, column=0, sticky=tk.W)
Mfrpart_number = ttk.Entry(frame, width=30)
Mfrpart_number.grid(row=13, column=0, sticky=tk.W)

ttk.Label(frame, text="Enter Mfr name").grid(row=12, column=1, sticky=tk.W)
mfr_name = ttk.Entry(frame, width=30)
mfr_name.grid(row=13, column=1, sticky=tk.W)



# Przycisk do generowania tekstu
ttk.Button(frame, text="Generate CN description", command=generate_text).grid(row=16, column=0, sticky=tk.W)

ttk.Button(frame, text="Reset Fields", command=reset_fields).grid(row=16, column=1, sticky=tk.W)


# Utworzenie ramki na widżet Text i scrollbar
text_frame = ttk.Frame(root)
text_frame.grid(row=17, column=0, padx=10, pady=10)

# Widżet Text do wyświetlania wygenerowanego tekstu
result_text = tk.Text(text_frame, wrap='word', height=10, width=80)
result_text.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)

# Tworzenie scrollbara
scrollb = ttk.Scrollbar(text_frame, command=result_text.yview)
scrollb.pack(side=tk.RIGHT, fill=tk.Y)
# Konfiguracja scrollbara dla widgetu Text
result_text['yscrollcommand'] = scrollb.set
# Uruchomienie głównej pętli aplikacji
root.mainloop()
Editor is loading...
Leave a Comment