Advertisement
EyeceScream

Getting there

Sep 6th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.60 KB | None | 0 0
  1. #Imports
  2. import tkinter
  3. from tkinter import filedialog
  4. from tkinter import *
  5. import json
  6.  
  7. window = tkinter.Tk()
  8. window.title("Employee Time Sheet")
  9. window.geometry("1280x820")
  10. window.wm_iconbitmap('file.ico')
  11. window.configure(background='#fcf9f0')
  12.  
  13.  
  14.  
  15.  
  16. #Labels
  17. titleLbl = tkinter.Label(window, text='RKT Employee Time Sheet',font=(None,16),height=3,background='#fcf9f0')
  18. titleLbl.grid(row=0, columnspan=8)
  19.  
  20. employeeLbl = tkinter.Label(window, text = 'Employee:', height=3,font=(None,12),background= '#fcf9f0')
  21. employeeLbl.grid(row=1,column=0,padx=1)
  22.  
  23. companyLbl = tkinter.Label(window, text = 'Company',background='#fcf9f0', relief=RAISED)
  24. companyLbl.grid(row=2, column=0,padx=1, ipadx=33)
  25.  
  26. leaseLbl = tkinter.Label(window, text = 'Lease',background='#fcf9f0',relief=RAISED)
  27. leaseLbl.grid(row=2, column=1,padx=1,ipadx=45)
  28.  
  29. propLbl = tkinter.Label(window, text = 'Porperty Number', background= '#fcf9f0',relief=RAISED)
  30. propLbl.grid(row=2, column=2,padx=1,ipadx=13)
  31.  
  32.  
  33. wonLbl = tkinter.Label(window, text = 'Work Order Number',background='#fcf9f0',relief=RAISED)
  34. wonLbl.grid(row=2, column=3,padx=1,ipadx=5)
  35.  
  36. dateLbl = tkinter.Label(window, text = 'Date',background='#fcf9f0',relief=RAISED)
  37. dateLbl.grid(row=2, column=4,padx=1,ipadx=46)
  38.  
  39. tiLbl = tkinter.Label(window, text = 'Time In',background='#fcf9f0',relief=RAISED)
  40. tiLbl.grid(row=2, column=5,padx=1,ipadx=37)
  41.  
  42. toLbl = tkinter.Label(window, text = 'Time Out',background='#fcf9f0',relief=RAISED)
  43. toLbl.grid(row=2, column=6,padx=1,ipadx=34)
  44.  
  45.  
  46. mileageLbl = tkinter.Label(window, text = 'Mileage',background='#fcf9f0',relief=RAISED)
  47. mileageLbl.grid(row=2, column=7,padx=1,ipadx=36)
  48.  
  49.  
  50. #Entrys
  51.  
  52. #EMPLOYEE
  53. employeeEnt = tkinter.Entry()
  54. employeeEnt.grid(row=1,column=1,padx=1,pady=2)
  55.  
  56. #Rest of Entrys
  57.  
  58. def generate_rows(entry_names, amount):
  59.     data = {}
  60.     for x in range(1, amount):
  61.       r = x+2
  62.       for col, name in enumerate(entry_names):
  63.         ent = tkinter.Entry()
  64.         ent.grid(row=r, column=col, pady=2)
  65.         data[name+str(x)] = ent
  66.     return data
  67.  
  68. entry_names = (
  69.   'ent_company', 'ent_lease',
  70.   'ent_property', 'ent_won',
  71.   'ent_date', 'ent_timein',
  72.   'ent_timeout', 'ent_mileage'
  73. )
  74. data = generate_rows(entry_names, 20)
  75.  
  76. json_data = { key: value.get() for key, value in data.items()}
  77.  
  78. class fileManagement:
  79.  
  80.     def save():
  81.        
  82.         window.withdraw()
  83.         win2 = Toplevel()
  84.         win2.title("Save as...")
  85.         win2.configure(background='#fcf9f0')
  86.        
  87.         win2Lbl= Label(win2, text = "File Name:",background='#fcf9f0')
  88.         win2Lbl.grid(row = 0, column = 0)
  89.        
  90.         win2Ent = tkinter.Entry(win2)
  91.         win2Ent.grid(row=0,column = 1, sticky=NSEW)
  92.         win2.geometry("250x200")
  93.        
  94.    
  95.         def OkPressed():
  96.  
  97.             with open(f'{win2Ent.get()}.json', 'w+') as file:
  98.                     json.dump(data, file, indent=4)
  99.             win2.destroy()
  100.             window.deiconify()
  101.        
  102.         win2B = Button(win2, text = "OK", command = OkPressed)
  103.         win2B.grid(row=1, column = 1, sticky=NSEW)
  104.                
  105.            
  106.    
  107.     def load():
  108.        
  109.         selectedFile = filedialog.askopenfilename(initialdir = "C:/" , title = "Select file", filetypes = (("JSON File", "*.json"),("All Files","*.*")))
  110.  
  111.         with open(f'{selectedFile}', 'r') as file:
  112.             data = json.load(file)
  113.  
  114.         for employee in data:
  115.             employeeEnt.delete(0,'end')
  116.             employeeEnt.insert(0, data [employee])
  117.        
  118.         for company in data:
  119.             companyEnt2.delete(0, 'end')
  120.             companyEnt2.insert(0, data [company])
  121. #Buttons
  122.  
  123. copyB = Button(window, text = "Load", command = fileManagement.load)
  124. copyB.grid(row=0,column=9, sticky=E)
  125.  
  126. saveB = Button(window, text = "Save", command = fileManagement.save)
  127. saveB.grid(row=1,column=10, sticky=E)
  128.  
  129.  
  130.  
  131. window.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement