added insert and delete routines

This commit is contained in:
2025-04-18 00:32:04 +02:00
parent 5492e0b302
commit 49dd662106

View File

@@ -1,7 +1,7 @@
import csv
import os
import tkinter as tk
from configparser import NoSectionError, NoOptionError
from configparser import NoOptionError
from configparser import ConfigParser
from tkinter import messagebox
from tkinter import ttk
@@ -74,8 +74,8 @@ class Application:
top_frame.pack(side=tk.TOP, fill=tk.X)
button_width = 8
tk.Button(top_frame, text="Export CSV", command=self.export_csv, width=button_width).grid(row=0, column=2)
tk.Button(top_frame, text="Insert", command=self.export_csv, width=button_width).grid(row=0, column=0)
tk.Button(top_frame, text="Delete", command=self.export_csv, width=button_width).grid(row=0, column=1)
tk.Button(top_frame, text="Insert", command=self.insert_record, width=button_width).grid(row=0, column=0)
tk.Button(top_frame, text="Delete", command=self.delete_record, width=button_width).grid(row=0, column=1)
self.aktiv = tk.StringVar()
self.firma = tk.StringVar()
@@ -113,18 +113,75 @@ class Application:
self.table.heading('4', text="Plz/Ort")
self.table.pack()
self.table.bind("<ButtonRelease-1>", self.select_record)
self.table.bind("<ButtonRelease-1>", self.mouse_click)
self._load_file()
self.root.mainloop()
def select_record(self, event):
self.current_record = self.table.focus()
values = self.table.item(self.current_record, "values")
def insert_record(self):
if self.current_record is not None:
self.clear_entry_fields()
children = self.table.get_children()
values = [
"x",
"Firma",
"Name",
"Strasse",
"Plz/Ort",
]
self.table.insert('', 'end', values=values)
self._save_file()
def delete_record(self):
if self.current_record is None:
return
if messagebox.askyesno(
"Eintrag löschen?",
"Willst du diesen Eintrag wirklich löschen?\nDies kann nicht rückgängig gemacht werden"):
self.table.delete(self.current_record)
self.clear_entry_fields()
self._save_file()
def clear_entry_fields(self):
entry_var_list = [self.aktiv, self.firma, self.name, self.strasse, self.plz_ort]
for i in range(len(values)):
entry_var_list[i].set(values[i])
for entry in entry_var_list:
entry.set("")
self.current_record = None
def mouse_click(self, event):
region = self.table.identify("region", event.x, event.y)
if region == "heading":
column = self.table.identify_column(event.x)
match column:
case "#1":
self.address_list.sort(key=lambda x: x[int(column[-1]) - 1])
self.populate_table()
case "#2":
self.address_list.sort(key=lambda x: x[int(column[-1]) - 1])
self.populate_table()
case "#3":
self.address_list.sort(key=lambda x: x[int(column[-1]) - 1])
self.populate_table()
case "#4":
self.address_list.sort(key=lambda x: x[int(column[-1]) - 1])
self.populate_table()
case "#5":
self.address_list.sort(key=lambda x: x[int(column[-1]) - 1])
self.populate_table()
case _:
print(column)
if region == "cell":
self.current_record = self.table.focus()
values = self.table.item(self.current_record, "values")
entry_var_list = [self.aktiv, self.firma, self.name, self.strasse, self.plz_ort]
for i in range(len(values)):
entry_var_list[i].set(values[i])
def update_record(self):
if self.current_record is None:
@@ -139,10 +196,7 @@ class Application:
for key, value in values.items():
self.table.set(self.current_record, key, value)
entry_var_list = [self.aktiv, self.firma, self.name, self.strasse, self.plz_ort]
for entry in entry_var_list:
entry.set("")
self.current_record = None
self.clear_entry_fields()
self._save_file()
def _load_file(self):