inquire.py 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545
  1. from tkinter import *
  2. from tkinter import filedialog
  3. from tkinter.ttk import Treeview
  4. from tkcalendar import Calendar, DateEntry
  5. import app
  6. import time
  7. import param
  8. import tkinter.messagebox
  9. import sql
  10. import output_file
  11. import datetime
  12. import _thread
  13. class my_inquire(Frame):
  14. def __init__(self, init_window_name):
  15. self.init_window_name = init_window_name
  16. self.user_var = app.user_var
  17. self.screen_width = self.user_var.screen_width
  18. self.screen_height = self.user_var.screen_height
  19. self.font_size_title = app.font_size_title
  20. self.font_size_text = app.font_size_text
  21. self.sqlclient = sql.sqlclient
  22. self.main_gui_init()
  23. self.title_canvas_init()
  24. self.button_canvas_init()
  25. self.user_frame_init()
  26. self.view_timeout = 180
  27. self.user_var.windows_idx = 'inquire'
  28. self.fun_timer()
  29. def main_button_event(self):
  30. self.user_var.last_windows_idx = 'inquire'
  31. self.init_window_name.after_cancel(self.task_user)
  32. self.main_frame.destroy()
  33. app.my_gui(self.init_window_name)
  34. def param_button_event(self):
  35. print("Enter Param Set!")
  36. self.user_var.last_windows_idx = 'inquire'
  37. self.init_window_name.after_cancel(self.task_user)
  38. self.main_frame.destroy()
  39. param.my_param(self.init_window_name)
  40. def authstatlabel_value(self):
  41. if self.user_var.auth_stat == False:
  42. self.param_button.configure(state="disabled")
  43. else:
  44. self.param_button.configure(state="normal")
  45. def auth_exit(self):
  46. if self.user_var.auth_timeout > 0:
  47. self.user_var.auth_timeout = self.user_var.auth_timeout - 1
  48. else:
  49. self.user_var.auth_stat = False
  50. def view_exit(self):
  51. if self.view_timeout > 0:
  52. self.view_timeout = self.view_timeout - 1
  53. else:
  54. self.user_var.last_windows_idx = 'param'
  55. self.init_window_name.after_cancel(self.task_user)
  56. self.main_frame.destroy()
  57. app.my_gui(self.init_window_name)
  58. def listview_update(self):
  59. if self.user_var.listview_stat == True:
  60. self.user_var.listview_stat = False
  61. if self.user_var.listview_content == "DATA":
  62. self.set_data_listview()
  63. elif self.user_var.listview_content == "PARAM":
  64. self.set_param_listview()
  65. self.user_var.listview_lock = False
  66. self.read_data_delay_label("数据已生成。。。", 'green')
  67. def windows_update(self):
  68. currentTime = time.strftime('%Y/%m/%d %H:%M:%S', time.localtime(time.time()))
  69. self.timelabel.config(text=currentTime)
  70. self.auth_exit()
  71. self.init_window_name.update()
  72. self.fun_timer()
  73. self.authstatlabel_value()
  74. self.view_exit()
  75. self.listview_update()
  76. def fun_timer(self):
  77. self.task_user=self.init_window_name.after(1000, self.windows_update)
  78. def main_gui_init(self):
  79. self.main_frame = Frame(self.init_window_name, width=self.screen_width, height=self.screen_height)
  80. self.main_frame.pack()
  81. # 标题栏
  82. def title_canvas_init(self):
  83. self.title_canvas = Canvas(self.main_frame, width=self.screen_width - 20, height=35, bg='SeaGreen')
  84. self.mainlabel = Label(self.title_canvas, text="气密检查记录查询", fg='SkyBlue', font=("宋体", self.font_size_title),
  85. bg='SeaGreen', anchor='c')
  86. self.mainlabel.place(x=self.title_canvas.winfo_reqwidth()/2-self.mainlabel.winfo_reqwidth()/2, y=5)
  87. self.timelabel = Label(self.title_canvas, text=time.strftime('%Y/%m/%d %H:%M:%S', time.localtime(time.time())),
  88. fg='yellow', font=("宋体", self.font_size_title), bg='SeaGreen', anchor='e')
  89. self.timelabel.place(x=self.title_canvas.winfo_reqwidth() - self.timelabel.winfo_reqwidth() - 20, y=5)
  90. self.title_canvas.create_line(self.mainlabel.winfo_reqwidth() / 2 + 20, 32, self.title_canvas.winfo_reqwidth() -
  91. self.timelabel.winfo_reqwidth() / 2 - 20, 32, fill='white')
  92. self.title_canvas.place(x=10, y=10)
  93. # 控制栏
  94. def button_canvas_init(self):
  95. self.button_canvas = Canvas(self.main_frame, width=self.screen_width - 20, height=40)
  96. self.main_button = Button(self.button_canvas, text="主界面", fg='white', bg='DeepSkyBlue', width=8,
  97. activebackground='white', activeforeground='DeepSkyBlue',
  98. font=("宋体", self.font_size_title, "bold"), command=self.main_button_event)
  99. self.main_button.place(x=1, y=0)
  100. self.param_button = Button(self.button_canvas, text="参数设定", fg='white', bg='DeepSkyBlue', width=8,
  101. activebackground='white', activeforeground='DeepSkyBlue', state="disabled",
  102. font=("宋体", self.font_size_title, "bold"), command=self.param_button_event)
  103. self.param_button.place(x=110, y=0)
  104. self.delaylabel = Label(self.button_canvas, fg='green', font=("宋体", self.font_size_title, "bold"),
  105. text="无数据。。。", anchor='w', )
  106. self.delaylabel.place(x=self.button_canvas.winfo_reqwidth() - 200, y=10)
  107. self.button_canvas.place(x=10, y=self.screen_height - 60)
  108. def return_button_event(self):
  109. if self.user_var.last_windows_idx == 'param':
  110. self.user_var.last_windows_idx = 'production'
  111. self.init_window_name.after_cancel(self.task_user)
  112. self.main_frame.destroy()
  113. param.my_param(self.init_window_name)
  114. else:
  115. self.user_var.last_windows_idx = 'production'
  116. self.init_window_name.after_cancel(self.task_user)
  117. self.main_frame.destroy()
  118. app.my_gui(self.init_window_name)
  119. def get_begin_data_event(self, event):
  120. if self.cal_begin.get_date() <= self.cal_end.get_date():
  121. self.user_var.inquire_begin_data = self.cal_begin.get_date()
  122. print(self.user_var.inquire_begin_data)
  123. else:
  124. tkinter.messagebox.showwarning(title='提示', message='开始日期大于结束日子!')
  125. self.cal_begin.set_date(self.user_var.inquire_begin_data)
  126. def get_end_data_event(self, event):
  127. if self.cal_begin.get_date() <= self.cal_end.get_date():
  128. self.user_var.inquire_end_data = self.cal_end.get_date()
  129. print(self.user_var.inquire_end_data)
  130. else:
  131. tkinter.messagebox.showwarning(title='提示', message='开始日期大于结束日子!')
  132. self.cal_end.set_date(self.user_var.inquire_end_data)
  133. def airparam_button_event(self):
  134. print("气密参数查询!")
  135. if self.user_var.listview_lock == False:
  136. self.user_var.file_name = "气密参数"
  137. self.user_var.listview_content = "PARAM"
  138. self.excel_button.configure(state="normal")
  139. self.pdf_button.configure(state="normal")
  140. self.clear_listview()
  141. thread_savefile = output_file.output_file(10, "Thread-output", 3, 'inquire_param')
  142. thread_savefile.start()
  143. self.read_data_delay_label("数据生成中。。。", 'red')
  144. self.user_var.listview_lock = True
  145. else:
  146. tkinter.messagebox.showwarning(title='提示', message='数据查询中。。。')
  147. def thatday_button_event(self):
  148. print("当天数据查询!")
  149. if self.user_var.listview_lock == False:
  150. self.user_var.file_name = "当天数据{0}".format(datetime.datetime.now().strftime('%Y%m%d%H%M%S'))
  151. self.user_var.listview_content = "DATA"
  152. self.excel_button.configure(state="normal")
  153. self.pdf_button.configure(state="normal")
  154. self.clear_listview()
  155. now_time = int(time.time())
  156. day_time = now_time - now_time % 86400
  157. wherestr = "WHERE end_time >= {0} and end_time <= {1}".format(day_time, day_time + 86400)
  158. thread_savefile = output_file.output_file(10, "Thread-output", 3, 'inquire_data', datastr=wherestr)
  159. thread_savefile.start()
  160. self.read_data_delay_label("数据生成中。。。", 'red')
  161. self.user_var.listview_lock = True
  162. else:
  163. tkinter.messagebox.showwarning(title='提示', message='数据查询中。。。')
  164. def excel_button_event(self):
  165. print("导出excel!")
  166. if self.user_var.file_save_stat == True:
  167. stat = tkinter.messagebox.askokcancel(title='提示', message='是否需要同步删除数据库中的数据?')
  168. if stat == True:
  169. self.user_var.del_data_stat = True
  170. else:
  171. self.user_var.del_data_stat = False
  172. print("excel delAuth={0}".format(self.user_var.del_data_stat))
  173. fn = filedialog.asksaveasfilename(title='另存为', initialfile=self.user_var.file_name, defaultextension=".xls",
  174. filetypes=[('xls文件', '.xls')])
  175. if fn:
  176. content = self.user_var.product_data.copy()
  177. if self.user_var.listview_content == "DATA":
  178. content.insert(0, self.user_var.data_headers)
  179. elif self.user_var.listview_content == "PARAM":
  180. content.insert(0, self.user_var.param_headers)
  181. self.user_var.file_save_stat = False
  182. thread_savefile = output_file.output_file(10, "Thread-output", 3, 'save_excel',
  183. filepath=fn, content=content)
  184. thread_savefile.start()
  185. else:
  186. tkinter.messagebox.showwarning(title='提示', message='文件生成中!')
  187. def clear_button_event(self):
  188. print("清除显示!")
  189. if self.user_var.listview_lock == False:
  190. self.user_var.listview_content = "NULL"
  191. self.clear_listview()
  192. self.excel_button.configure(state="disable")
  193. self.pdf_button.configure(state="disable")
  194. self.read_data_delay_label("无数据。。。", 'green')
  195. def days_button_event(self):
  196. print("多天数据!")
  197. if self.user_var.listview_lock == False:
  198. self.user_var.listview_content = "DATA"
  199. self.excel_button.configure(state="normal")
  200. self.pdf_button.configure(state="normal")
  201. self.clear_listview()
  202. begintime = int(time.mktime(time.strptime("{0} 00:00:00".format(
  203. self.user_var.inquire_begin_data), "%Y-%m-%d %H:%M:%S")))
  204. endtime = int(time.mktime(time.strptime("{0} 23:59:59".format(
  205. self.user_var.inquire_end_data), "%Y-%m-%d %H:%M:%S")))
  206. self.user_var.file_name = "多天数据{0}-{1}".format(time.strftime("%Y%m%d", time.localtime(begintime)),
  207. time.strftime("%Y%m%d", time.localtime(endtime)))
  208. wherestr = "WHERE end_time >= {0} and end_time <= {1}".format(begintime, endtime)
  209. thread_savefile = output_file.output_file(10, "Thread-output", 3, 'inquire_data', datastr=wherestr)
  210. thread_savefile.start()
  211. self.read_data_delay_label("数据生成中。。。", 'red')
  212. self.user_var.listview_lock = True
  213. else:
  214. tkinter.messagebox.showwarning(title='提示', message='数据查询中。。。')
  215. def all_button_event(self):
  216. print("全部数据!")
  217. if self.user_var.listview_lock == False:
  218. self.user_var.file_name = "全部数据{0}".format(datetime.datetime.now().strftime('%Y%m%d%H%M%S'))
  219. self.user_var.listview_content = "DATA"
  220. self.excel_button.configure(state="normal")
  221. self.pdf_button.configure(state="normal")
  222. self.clear_listview()
  223. thread_savefile = output_file.output_file(10, "Thread-output", 3, 'inquire_data')
  224. thread_savefile.start()
  225. self.read_data_delay_label("数据生成中。。。", 'red')
  226. self.user_var.listview_lock = True
  227. else:
  228. tkinter.messagebox.showwarning(title='提示', message='数据查询中。。。')
  229. def pdf_button_event(self):
  230. print("导出pdf!")
  231. if self.user_var.file_save_stat == True:
  232. fn = filedialog.asksaveasfilename(title='另存为', initialfile=self.user_var.file_name, defaultextension=".pdf",
  233. filetypes=[('pdf文件', '.pdf')])
  234. if fn:
  235. content = self.user_var.product_data.copy()
  236. if self.user_var.listview_content == "DATA":
  237. content.insert(0, self.user_var.data_headers)
  238. elif self.user_var.listview_content == "PARAM":
  239. content.insert(0, self.user_var.param_headers)
  240. self.user_var.file_save_stat = False
  241. thread_savefile = output_file.output_file(10, "Thread-output", 3, 'save_pdf',
  242. filepath=fn, content=content)
  243. thread_savefile.start()
  244. else:
  245. tkinter.messagebox.showwarning(title='提示', message='文件生成中!')
  246. def label_button_event(self):
  247. print("标签查询!")
  248. if self.user_var.listview_lock == False:
  249. self.user_var.listview_content = "DATA"
  250. txt = self.labeltext.get().strip()
  251. self.labeltext.config(text=txt)
  252. if txt != '' and len(txt) == 12:
  253. self.excel_button.configure(state="normal")
  254. self.pdf_button.configure(state="normal")
  255. self.clear_listview()
  256. wherestr = "WHERE batch = '{0}'".format(txt)
  257. thread_savefile = output_file.output_file(10, "Thread-output", 3, 'inquire_data', datastr=wherestr)
  258. thread_savefile.start()
  259. self.user_var.listview_lock = True
  260. self.user_var.file_name = "标签数据txt"
  261. else:
  262. tkinter.messagebox.showwarning(title='提示', message='请输入12位标签号!')
  263. else:
  264. tkinter.messagebox.showwarning(title='提示', message='数据查询中。。。')
  265. def read_data_delay_label(self, txt, color):
  266. self.delaylabel.configure(text=txt)
  267. self.delaylabel.configure(fg=color)
  268. def clear_listview(self):
  269. for widget in self.treeview_frame.winfo_children():
  270. widget.destroy()
  271. def set_param_listview(self):
  272. widths = (100, 130, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80)
  273. # 构建控件
  274. data_listview = Treeview(self.treeview_frame, columns=self.user_var.param_columns, show='headings')
  275. data_listview.column("#0", width=2, minwidth=1, stretch=YES)
  276. idx =1
  277. for column in self.user_var.param_columns:
  278. data_listview.column('#{0}'.format(idx), width=widths[idx - 1], minwidth=widths[idx - 1],
  279. stretch=YES, anchor=CENTER)
  280. idx = idx + 1
  281. idx = 1
  282. for header in self.user_var.param_headers:
  283. data_listview.heading('#{0}'.format(idx), text='{0}'.format(header), anchor=CENTER)
  284. idx = idx + 1
  285. for i, person in enumerate(self.user_var.product_data):
  286. data_listview.insert('', i, values=person)
  287. # 构建垂直Scrollbar
  288. scroll_y = Scrollbar(self.treeview_frame, orient=VERTICAL, command=data_listview.yview)
  289. # 设定控件布局
  290. scroll_y.pack(side='right', fill='y', padx=1, pady=1, ipadx=1, ipady=1)
  291. # 绑定滚动动作
  292. data_listview.configure(yscrollcommand=scroll_y.set)
  293. # 构建水平Scrollbar
  294. scroll_x = Scrollbar(self.treeview_frame, orient=HORIZONTAL, command=data_listview.xview)
  295. # 设定控件布局
  296. scroll_x.pack(side='bottom', fill='x', padx=1, pady=1, ipadx=1, ipady=1)
  297. # 绑定滚动动作
  298. data_listview.configure(xscrollcommand=scroll_x.set)
  299. # 设定控件布局
  300. data_listview.pack(side='left', fill='both', padx=1, pady=1, ipadx=1, ipady=1)
  301. def set_data_listview(self):
  302. widths = (80, 60, 100, 100, 60, 250, 50, 130, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80)
  303. # 构建控件
  304. data_listview = Treeview(self.treeview_frame, columns=self.user_var.data_columns, show='headings')
  305. data_listview.column("#0", width=2, minwidth=1, stretch=YES)
  306. idx =1
  307. for column in self.user_var.data_columns:
  308. data_listview.column('#{0}'.format(idx), width=widths[idx - 1], minwidth=widths[idx - 1],
  309. stretch=YES, anchor=CENTER)
  310. idx = idx + 1
  311. idx = 1
  312. for header in self.user_var.data_headers:
  313. data_listview.heading('#{0}'.format(idx), text='{0}'.format(header), anchor=CENTER)
  314. idx = idx + 1
  315. for i, person in enumerate(self.user_var.product_data):
  316. data_listview.insert('', i, values=person)
  317. # 构建垂直Scrollbar
  318. scroll_y = Scrollbar(self.treeview_frame, orient=VERTICAL, command=data_listview.yview)
  319. # 设定控件布局
  320. scroll_y.pack(side='right', fill='y', padx=1, pady=1, ipadx=1, ipady=1)
  321. # 绑定滚动动作
  322. data_listview.configure(yscrollcommand=scroll_y.set)
  323. # 构建水平Scrollbar
  324. scroll_x = Scrollbar(self.treeview_frame, orient=HORIZONTAL, command=data_listview.xview)
  325. # 设定控件布局
  326. scroll_x.pack(side='bottom', fill='x', padx=1, pady=1, ipadx=1, ipady=1)
  327. # 绑定滚动动作
  328. data_listview.configure(xscrollcommand=scroll_x.set)
  329. # 设定控件布局
  330. data_listview.pack(side='left', fill='both', padx=1, pady=1, ipadx=1, ipady=1)
  331. # 输入栏
  332. def user_frame_init(self):
  333. self.order_frame = Frame(
  334. self.main_frame, width=self.screen_width - 20, relief=SUNKEN, borderwidth=2,
  335. height=self.screen_height - self.title_canvas.winfo_reqheight() - self.button_canvas.winfo_reqheight() - 35)
  336. # 工单栏展示
  337. self.order_frame.place(x=12, y=self.title_canvas.winfo_reqheight() + 15)
  338. self.operate_frame = Frame(
  339. self.order_frame, width=990, borderwidth=0,
  340. height=110)
  341. self.operate_frame.pack(side='top', padx=1, pady=1, ipadx=2, ipady=2)
  342. self.return_button_canvas = Canvas(self.operate_frame, bg='DarkGray', relief=SOLID, borderwidth=1,
  343. width=117, height=33)
  344. self.return_button = Button(self.return_button_canvas, text="返回", fg='black', bg='white', width=11,
  345. activebackground='black', activeforeground='white',
  346. font=("宋体", self.font_size_text, "bold"), command=self.return_button_event)
  347. self.return_button.place(x=7, y=7)
  348. self.return_button_canvas.place(x=50, y=5)
  349. self.airparam_button_canvas = Canvas(self.operate_frame, bg='DarkGray', relief=SOLID, borderwidth=1,
  350. width=117, height=33)
  351. self.airparam_button = Button(self.airparam_button_canvas, text="气密参数查询", fg='black', bg='white', width=11,
  352. activebackground='black', activeforeground='white',
  353. font=("宋体", self.font_size_text, "bold"), command=self.airparam_button_event)
  354. self.airparam_button.place(x=7, y=7)
  355. self.airparam_button_canvas.place(x=170, y=5)
  356. self.thatday_button_canvas = Canvas(self.operate_frame, bg='DarkGray', relief=SOLID, borderwidth=1,
  357. width=117, height=33)
  358. self.thatday_button = Button(self.thatday_button_canvas, text="当天数据", fg='black', bg='white', width=11,
  359. activebackground='black', activeforeground='white',
  360. font=("宋体", self.font_size_text, "bold"), command=self.thatday_button_event)
  361. self.thatday_button.place(x=7, y=7)
  362. self.thatday_button_canvas.place(x=290, y=5)
  363. self.excel_button_canvas = Canvas(self.operate_frame, bg='DarkGray', relief=SOLID, borderwidth=1,
  364. width=117, height=33)
  365. self.excel_button = Button(self.excel_button_canvas, text="导出数据", fg='black', bg='white', width=11,
  366. activebackground='black', activeforeground='white', state="disabled",
  367. font=("宋体", self.font_size_text, "bold"), command=self.excel_button_event)
  368. self.excel_button.place(x=7, y=7)
  369. self.excel_button_canvas.place(x=410, y=5)
  370. self.clear_button_canvas = Canvas(self.operate_frame, bg='DarkGray', relief=SOLID, borderwidth=1,
  371. width=117, height=33)
  372. self.clear_button = Button(self.clear_button_canvas, text="清除显示", fg='black', bg='white', width=11,
  373. activebackground='black', activeforeground='white',
  374. font=("宋体", self.font_size_text, "bold"), command=self.clear_button_event)
  375. self.clear_button.place(x=7, y=7)
  376. self.clear_button_canvas.place(x=50, y=40)
  377. self.days_button_canvas = Canvas(self.operate_frame, bg='DarkGray', relief=SOLID, borderwidth=1,
  378. width=117, height=33)
  379. self.days_button = Button(self.days_button_canvas, text="多天数据", fg='black', bg='white', width=11,
  380. activebackground='black', activeforeground='white',
  381. font=("宋体", self.font_size_text, "bold"), command=self.days_button_event)
  382. self.days_button.place(x=7, y=7)
  383. self.days_button_canvas.place(x=170, y=40)
  384. self.all_button_canvas = Canvas(self.operate_frame, bg='DarkGray', relief=SOLID, borderwidth=1,
  385. width=117, height=33)
  386. self.all_button = Button(self.all_button_canvas, text="全部数据", fg='black', bg='white', width=11,
  387. activebackground='black', activeforeground='white',
  388. font=("宋体", self.font_size_text, "bold"), command=self.all_button_event)
  389. self.all_button.place(x=7, y=7)
  390. self.all_button_canvas.place(x=290, y=40)
  391. self.pdf_button_canvas = Canvas(self.operate_frame, bg='DarkGray', relief=SOLID, borderwidth=1,
  392. width=117, height=33)
  393. self.pdf_button = Button(self.pdf_button_canvas, text="导出pdf", fg='black', bg='white', width=11,
  394. activebackground='black', activeforeground='white', state="disabled",
  395. font=("宋体", self.font_size_text, "bold"), command=self.pdf_button_event)
  396. self.pdf_button.place(x=7, y=7)
  397. self.pdf_button_canvas.place(x=410, y=40)
  398. self.labeltitle = Label(self.operate_frame, text="输入查询的标签", font=("宋体", self.font_size_text), anchor='e')
  399. self.labeltitle.place(x=self.operate_frame.winfo_reqwidth() - self.labeltitle.winfo_reqwidth() - 50, y=5)
  400. self.labeltext = Entry(self.operate_frame, font=("宋体", self.font_size_text), fg="darkgoldenrod", bg="SkyBlue",
  401. width=20, justify='center')
  402. self.labeltext.place(x=self.operate_frame.winfo_reqwidth() - self.labeltext.winfo_reqwidth() - 28, y=30)
  403. self.label_button_canvas = Canvas(self.operate_frame, bg='DarkGray', relief=SOLID, borderwidth=1,
  404. width=117, height=33)
  405. self.label_button = Button(self.label_button_canvas, text="查看label", fg='black', bg='white', width=11,
  406. activebackground='black', activeforeground='white',
  407. font=("宋体", self.font_size_text, "bold"), command=self.label_button_event)
  408. self.label_button.place(x=7, y=7)
  409. self.label_button_canvas.place(
  410. x=self.operate_frame.winfo_reqwidth() - self.label_button_canvas.winfo_reqwidth() - 40, y=55)
  411. self.datatitlelabel = Label(self.operate_frame, text="气密数据查询列表", fg='dodgerblue',
  412. font=("宋体", self.font_size_text),
  413. anchor='w')
  414. self.datatitlelabel.place(x=self.operate_frame.winfo_reqwidth() / 2 - self.datatitlelabel.winfo_reqwidth() / 2,
  415. y=80)
  416. self.calbegin_canvas = Canvas(self.operate_frame, bg='white', relief=SOLID, borderwidth=1,
  417. width=180, height=33)
  418. self.calbegintitlelabel = Label(self.calbegin_canvas, text="起始:", fg='dodgerblue', bg='white',
  419. font=("宋体", self.font_size_text),
  420. anchor='w')
  421. self.calbegintitlelabel.place(x=10, y=10)
  422. self.cal_begin = DateEntry(self.calbegin_canvas, locale='zh_CN', width=12, background='darkblue',
  423. foreground='white', borderwidth=2)
  424. self.cal_begin.place(x=65, y=8)
  425. self.cal_begin.bind("<<DateEntrySelected>>", self.get_begin_data_event)
  426. self.calbegin_canvas.place(
  427. x=550, y=5)
  428. self.calend_canvas = Canvas(self.operate_frame, bg='white', relief=SOLID, borderwidth=1,
  429. width=180, height=33)
  430. self.calendtitlelabel = Label(self.calend_canvas, text="结束:", fg='dodgerblue', bg='white',
  431. font=("宋体", self.font_size_text),
  432. anchor='w')
  433. self.calendtitlelabel.place(x=10, y=10)
  434. self.cal_end = DateEntry(self.calend_canvas, locale='zh_CN', width=12, background='darkblue',
  435. foreground='white', borderwidth=2)
  436. self.cal_end.place(x=65, y=8)
  437. self.cal_end.bind("<<DateEntrySelected>>", self.get_end_data_event)
  438. self.calend_canvas.place(
  439. x=550, y=40)
  440. self.treeview_frame = Frame(self.order_frame, bg='white', relief=SOLID, borderwidth=1,
  441. width=990, height=350)
  442. self.treeview_frame.pack(side='bottom', padx=2, pady=2, ipadx=2, ipady=2)
  443. self.treeview_frame.pack_propagate(0)
  444. if self.user_var.listview_content == "DATA":
  445. self.excel_button.configure(state="normal")
  446. self.pdf_button.configure(state="normal")
  447. self.set_data_listview()
  448. self.read_data_delay_label("数据已生成。。。", 'green')
  449. elif self.user_var.listview_content == "PARAM":
  450. self.excel_button.configure(state="normal")
  451. self.pdf_button.configure(state="normal")
  452. self.set_param_listview()
  453. self.read_data_delay_label("数据已生成。。。", 'green')
  454. # t = time.time()
  455. #
  456. # print (t) #原始时间数据
  457. # print (int(t)) #秒级时间戳
  458. # print (int(round(t * 1000))) #毫秒级时间戳
  459. # print (int(round(t * 1000000))) #微秒级时间戳
  460. # dt = '2018-01-01 10:40:30'
  461. # ts = int(time.mktime(time.strptime(dt, "%Y-%m-%d %H:%M:%S")))
  462. # print (ts)
  463. # ts = 1515774430
  464. # dt = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ts))
  465. # print(dt)