from tkinter import ttk
from tkinter import messagebox
import pymssql
import tkinter
import decimal
import time
#定义数据库连接函数
def da(str):
conn = pymssql.connect(host=' 数据库地址',database='数据库名称',user='用户账号',password='用户密码')
cur = conn.cursor()
cur.execute(str)
row = cur.fetchall()
return row
#定义treeview控件子节点数据清空
def dletebutton(tree):
x = tree.get_children()
for item in x:
tree.delete(item)
#定义查询函数
def det():
phone = ent.get()#获取文本框内容传给变量phone 保存
vip = ent1.get()#获取文本框内容传给变量vip保存
tim = (time.strftime('%Y-%m-%d', time.localtime()))#获取当前系统时间以%Y-%m-%d 格式输出
if phone == ''and vip == '':
tkinter.messagebox.showerror('警告:', '手机号码、会员号不能为空')
elif phone == '':
dletebutton(tree)
ent1.delete(0,'end')
sql1 = '''select khm013.khhykh,khm013.xjqbh,xjqms,xjqmz,xfmeje,syqsrq,syjzrq
from khm013 inner join khm17 on khm013.xjqbh=khm17.xjqbh
inner join khm01 on khm013.khhykh=khm01.khhykh
where khxfzt=\'n\' and syjzrq>=\'%s\' and khm013.khhykh=\'%s\'''' % (tim, vip)
a = da(sql1)
for i in a:
tree.insert('', 'end', values=i)
elif vip == '':
dletebutton(tree)
ent.delete(0,'end')
sql2 = '''select khm013.khhykh,khm013.xjqbh,xjqms,xjqmz,xfmeje,syqsrq,syjzrq from
khm013 inner join khm17 on khm013.xjqbh=khm17.xjqbh
inner join khm01 on khm013.khhykh=khm01.khhykh
where khxfzt=\'n\' and syjzrq>=\'%s\' and khm01.khhysj=\'%s\'''' % (tim, phone)
b = da(sql2)
for i in b:
tree.insert('', 'end', values=i)
else:
tkinter.messagebox.showerror('警告:', '手机号码、会员号只能选其一查询')

root = tkinter.Tk()
root.title('优惠券查询')
lab = ttk.Label(root,text='优惠券查询',font=('黑体',20))
lab.grid(row=0,columnspan=5)

lab1 = ttk.Label(root,text='手机号码:')
lab1.grid(row=1,column=0)

ent = ttk.Entry(root,text='手机号码')
ent.grid(row=1,column=1)

lab2 = ttk.Label(root,text='会员号码:')
lab2.grid(row=1,column=2)

ent1 = ttk.Entry(root,text='会员号码')
ent1.grid(row=1,column=3)

but = ttk.Button(root,text='确定',command=det)
but.grid(row=1,column=4)

#使用tkinter编写界面
tree = ttk.Treeview(root,columns=['会员号码','优惠券ID','优惠券描述','优惠券面值','满多少可使用','起始日期','截止日期'],show = 'headings')
tree['columns']=('会员号','优惠券ID','优惠券描述','优惠券面值','满多少可使用','起始日期','截止日期')
tree['height']=15
tree.column('会员号',width=100,anchor='center')
tree.column('优惠券ID',width=100,anchor='center')
tree.column('优惠券描述',width=100,anchor='center')
tree.column('优惠券面值',width=100,anchor='center')
tree.column('满多少可使用',width=100,anchor='center')
tree.column('起始日期',width=100,anchor='center')
tree.column('截止日期',width=100,anchor='center')
tree.heading('会员号',text='会员号')
tree.heading('优惠券ID',text='优惠券ID')
tree.heading('优惠券描述',text='优惠券描述')
tree.heading('优惠券面值',text='优惠券面值')
tree.heading('满多少可使用',text='满多少可使用')
tree.heading('起始日期',text='起始日期')
tree.heading('截止日期',text='截止日期')
tree.grid(row=2,columnspan=5)
root.mainloop()

--------最后界面浏览----------

python3 优惠券查询GUI程序的更多相关文章

  1. 用 PHP-GTK2 做 Win32 GUI 程序

    PHP通常是做为服务器端脚本执行,如果告诉你PHP可以编写普通的GUI程序,你应该很感兴趣.下面介绍的PHP-GTK就是PHP的GUI扩展.GTK是一个业界标准的图形库,具有良好的移植性.如果你用过l ...

  2. 在OSX和Windows版本Docker上运行GUI程序

    看到很多人在Docker问题区讨论:如何在OS X和Windows的Docker上运行GUI程序, 随手记录几个参考资料: https://github.com/docker/docker/issue ...

  3. Python In Action:二、 最小的GUI程序:麻雀虽小,五脏俱全

    Python in Action第二个例子,倒是很简单,却是最基本的GUI程序框架,里面有最基本的实现GUI流程 import wx class MyApp(wx.App): def OnInit(s ...

  4. 客户端GUI程序开发漫谈

    这篇文章包含了这个领域的很多开源项目的介绍,还有我多年来的心血和汗水  去年夏天的时候,我用QT做了一个小工具 后来还用QT做了流程设计器 我把程序分享给飞扬青云之后,他甚至搞出来一套QT的皮肤来 说 ...

  5. 教程和工具--用wxPython编写GUI程序的

    wxPython是个很好的GUI库,对底层的C++库进行了封装,调用起来很方便,尤其是操作前台UI界面和后台多线程,两者配合很方便,做GUI程序最难是写界面尤其是布局. 关于wxPython,自己正在 ...

  6. Windows下用python编写简单GUI程序的方法

    Python实现GUI简单的来说可以调用Tkinter库,这样一般的需求都可以实现,显示简单的windows窗口代码如下: python_gui.py #!C:\Python27\python.exe ...

  7. J2msi 自己制作的把exe打成安装包简易GUI程序(第二版 带DLL注册)

    J2msi 自己制作的把exe打成安装包简易GUI程序(第二版 带DLL注册) 之前那一版本(http://www.cnblogs.com/rojas/p/4794684.html)没考虑 DLL 注 ...

  8. 使用PyQt来编写第一个Python GUI程序

    原文:使用PyQt来编写第一个Python GUI程序 本文由 伯乐在线 - Lane 翻译,Daetalus 校稿.未经许可,禁止转载!英文出处:pythonforengineers.com.欢迎加 ...

  9. 数独GUI程序项目实现

    数独GUI程序项目实现 导语:最近玩上了数独这个游戏,但是找到的几个PC端数独游戏都有点老了...我就想自己做一个数独小游戏,也是一个不错的选择. 前期我在网上简单地查看了一些数独游戏的界面,代码.好 ...

随机推荐

  1. Mybatis系列二-快速开发

    mybatis学习系列第二篇 分页 在网页中常常用到,在查询数据库内容并想将其输出的时候,因为有时有多组数据,一页展示过于突兀,所以会用到分页操作. 在sql用limit来分页. 首先是UserMap ...

  2. Redux:store

    Store是一个对象.他有如下职责: 1.存放state 2.对外提供访问state的接口: getState() 3.允许state更新:dispatch(action) 4.注册监听器: subs ...

  3. Django操作cookie

    浏览器清空cookie快捷键:ctrl+shift+delete,cookie中包含csrf认证信息 获取Cookie request.COOKIES['key'] request.COOKIES.g ...

  4. JQuery动态创建表单并提交

    // 捕捉链接的点击事件 $('#btn').click(function(){ // 取得要提交的参数 var my_val = $.trim($('#ipt').val()); // 取得要提交页 ...

  5. Jmeter(二) - 从入门到精通 - 创建测试计划(Test Plan)(详解教程)

    1.简介 上一篇中宏哥已经教你把JMeter的测试环境搭建起来了,那么这一篇我们就将JMeter启动起来,一睹其芳容,首先宏哥给大家介绍一下如何来创建一个测试计划(Test Plan). 2.创建一个 ...

  6. 英语四六级模拟考试系统APP

    Android studio开发的.eclipse的SSM框架作为服务器后台.Mysql5.6. 我先上几张图吧. 需要源码可以留言给我.另外本人接外包或者有问题也可以问我.留言,我会看的.

  7. web项目——启动时tomcat报错:Server Tomcat v7.0 Server at localhost failed to start.

    报错信息:Server Tomcat v7.0 Server at localhost failed to start. 报错截图: 原因分析:在使用SSM框架时,生成的mapping与系统配置文件不 ...

  8. Spring MyBatis配置文件

    Config文件夹 log4j.properties配置文件 # # Global logging configuration log4j.rootLogger=DEBUG, stdout # Con ...

  9. DDD之1微服务设计为什么选择DDD

    背景 名词解释 如果你的团队目前正是构建微服务架构风格的软件系统,问自己两个问题? 软件架构演进 软件架构大致经历了从单机架构,集中式架构,分布式微服架构,程序的层次图如下所示. 单机架构 特点如下: ...

  10. 一篇文章,全面掌握Git

    版本控制 版本控制就是记录项目文件的历史变化.它为我们查阅日志,回退,协作等方面提供了有力的帮助. 版本控制一般分为集中化版本控制和分布式版本控制. 集中化主要的版本数据都保存服务端. 分布式版本数据 ...