added insert and delete routines
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import csv
|
import csv
|
||||||
import os
|
import os
|
||||||
import tkinter as tk
|
import tkinter as tk
|
||||||
from configparser import NoSectionError, NoOptionError
|
from configparser import NoOptionError
|
||||||
from configparser import ConfigParser
|
from configparser import ConfigParser
|
||||||
from tkinter import messagebox
|
from tkinter import messagebox
|
||||||
from tkinter import ttk
|
from tkinter import ttk
|
||||||
@@ -74,8 +74,8 @@ class Application:
|
|||||||
top_frame.pack(side=tk.TOP, fill=tk.X)
|
top_frame.pack(side=tk.TOP, fill=tk.X)
|
||||||
button_width = 8
|
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="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="Insert", command=self.insert_record, 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="Delete", command=self.delete_record, width=button_width).grid(row=0, column=1)
|
||||||
|
|
||||||
self.aktiv = tk.StringVar()
|
self.aktiv = tk.StringVar()
|
||||||
self.firma = tk.StringVar()
|
self.firma = tk.StringVar()
|
||||||
@@ -113,18 +113,75 @@ class Application:
|
|||||||
self.table.heading('4', text="Plz/Ort")
|
self.table.heading('4', text="Plz/Ort")
|
||||||
self.table.pack()
|
self.table.pack()
|
||||||
|
|
||||||
self.table.bind("<ButtonRelease-1>", self.select_record)
|
self.table.bind("<ButtonRelease-1>", self.mouse_click)
|
||||||
|
|
||||||
self._load_file()
|
self._load_file()
|
||||||
|
|
||||||
self.root.mainloop()
|
self.root.mainloop()
|
||||||
|
|
||||||
def select_record(self, event):
|
def insert_record(self):
|
||||||
self.current_record = self.table.focus()
|
if self.current_record is not None:
|
||||||
values = self.table.item(self.current_record, "values")
|
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]
|
entry_var_list = [self.aktiv, self.firma, self.name, self.strasse, self.plz_ort]
|
||||||
for i in range(len(values)):
|
for entry in entry_var_list:
|
||||||
entry_var_list[i].set(values[i])
|
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):
|
def update_record(self):
|
||||||
if self.current_record is None:
|
if self.current_record is None:
|
||||||
@@ -139,10 +196,7 @@ class Application:
|
|||||||
for key, value in values.items():
|
for key, value in values.items():
|
||||||
self.table.set(self.current_record, key, value)
|
self.table.set(self.current_record, key, value)
|
||||||
|
|
||||||
entry_var_list = [self.aktiv, self.firma, self.name, self.strasse, self.plz_ort]
|
self.clear_entry_fields()
|
||||||
for entry in entry_var_list:
|
|
||||||
entry.set("")
|
|
||||||
self.current_record = None
|
|
||||||
self._save_file()
|
self._save_file()
|
||||||
|
|
||||||
def _load_file(self):
|
def _load_file(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user