class CustomizedSheet(Tk): def __init__(self, records, headers, title, rows=None): Tk.__init__(self) self.title(title) self.state("zoomed") self.grid_columnconfigure(0, weight=1) self.grid_rowconfigure(0, weight=1) self.data = [["Row {r} Column {c}" for c in range(100)] for r in range(5000)] self.sdem = Sheet(self, width=1000, height=700, align="w", header_align="center", row_index_align="center", show=True, column_width=230, row_index_width=50, data_reference=records, headers=headers) self.sdem.enable_bindings( ("single", "drag_select", "column_drag_and_drop", "row_drag_and_drop", "column_select", "row_select", "column_width_resize", "double_click_column_resize", "row_width_resize", "column_height_resize", "arrowkeys", "row_height_resize", "double_click_row_resize")) self.sdem.edit_bindings(True) self.sdem.grid(row=0, column=0, sticky="nswe") if rows is not None: for row_no in rows: for col in range(0, len(headers)): self.sdem.highlight_cells(row=row_no, column=col, bg="#EC7063", fg="black")
class TableSheet: def __init__(self, records, headers, window): self.records = records self.sdem = Sheet(window, width=1000, height=500, align="w", header_align="center", row_index_align="center", show=True, column_width=180, row_index_width=50, data_reference=records, headers=headers) self.sdem.enable_bindings( ("single", "drag_select", "column_drag_and_drop", "row_drag_and_drop", "column_select", "row_select", "column_width_resize", "double_click_column_resize", "row_width_resize", "column_height_resize", "arrowkeys", "row_height_resize", "double_click_row_resize")) self.sdem.edit_bindings(True) self.sdem.pack()
class TechnicianScreen(design.Page): def __init__(self, app, root, id, *args, **kwargs): design.Page.__init__(self, app, root, *args, **kwargs) self.height = 600 self.width = 1050 self.id = id self.status = [] self.title = "Technician schedule" self.grid_columnconfigure(0, weight=1) self.grid_rowconfigure(0, weight=1) #self.configure(bg="white") self.cols = pd.read_csv("techissue.csv") self.cols = self.cols.loc[self.cols.ID == self.id, :] self.Cols = self.cols[[ "ID", "customerName", "product", "issue", "location", "crit", "issueID" ]] self.row_count = len(self.cols) #print(self.row_coun t) self.data = [self.Cols.iloc[i] for i in range(self.row_count)] labelTop = tk.Label(self, text="Issue status", font=('Times New Roman', 14)) labelTop.grid(column=0, row=0) labelTop.place(relx=0.830, rely=0.075) for i in range(self.row_count): self.var = tk.StringVar() if self.cols.iloc[i, 5] == "**": self.comboExample = ttk.Combobox( self, textvariable=self.var, values=["treated", "not treated", "becomes normal"]) if self.cols.iloc[i, 5] == "*": self.comboExample = ttk.Combobox( self, textvariable=self.var, values=["treated", "not treated"]) self.status.append(self.var) self.comboExample.grid(column=0, row=i + 1) self.comboExample.place(relx=0.830, rely=0.120 + (i * 0.04), relheight=0.04, relwidth=0.140) self.comboExample.current(1) self.sdem = Sheet( self, align="w", header_align="center", row_index_align="center", show=True, column_width=140, row_index_width=50, data_reference=self.data, headers=[ "ID", "customerName", "product", "issue", "location", "crit", "issueID" ], ) self.sdem.enable_bindings( ("single", "drag_select", "column_drag_and_drop", "row_drag_and_drop", "column_select", "row_select", "column_width_resize", "double_click_column_resize", "row_width_resize", "column_height_resize", "arrowkeys", "row_height_resize", "double_click_row_resize")) self.sdem.edit_bindings(True) self.sdem.grid(row=0, column=0, sticky="nswe") self.sdem.place(relx=0.05, rely=0.067, relheight=0.751, relwidth=0.780) self.sdem.highlight_cells(row=0, column=0, bg="orange", fg="blue") self.sdem.highlight_cells(row=0, bg="orange", fg="blue", canvas="row_index") self.sdem.highlight_cells(column=0, bg="orange", fg="blue", canvas="header") self.send = Button(self, text="send", font=('Times New Roman', 15), bg='orange', fg='blue', padx=5, command=self.save).place(relx=0.880, rely=0.85) def save(self): self.dff = pd.read_csv("customerissue.csv") count1 = len(self.dff) for i in range(self.row_count): if self.status[i].get() == "treated": for j in range(count1): if self.dff.iloc[j]["ID"] == self.cols.iloc[i]["issueID"]: self.dff.iat[j, 5] = "2" if self.status[i].get() == "not treated": for j in range(count1): if self.dff.iloc[j]["ID"] == self.cols.iloc[i]["issueID"]: self.dff.iat[j, 5] = "0" self.dff.to_csv('customerissue.csv', mode='w', index=False, header=[ "name", "product", "issue", "place", "time", "taken", "coordinate", "ID" ]) self.df = pd.read_csv("techissue.csv") count = len(self.df) self.df = self.df.loc[self.df.ID != self.id, :] self.df.to_csv('techissue.csv', mode='w', index=False, header=[ "ID", "customerName", "product", "issue", "location", "crit", "issueID" ]) print(self.dff) print(self.df) print("")