added insert and delete routines
This commit is contained in:
@@ -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,13 +113,70 @@ 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):
|
||||
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 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]
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user