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. 使用vue实现购物车功能

    页面效果图: html代码: <div class="shop-car" id='car'> <div class="count-custom" ...

  2. spark机器学习从0到1特征抽取–CountVectorizer(十三)

        一.概念 CountVectorizer 旨在通过计数来将一个文档转换为向量.当不存在先验字典时,Countvectorizer作为Estimator提取词汇进行训练,并生成一个CountVe ...

  3. js 前端实现文件流下载的几种方式

    后端是用Java写的一个下载的接口,返回的是文件流,需求:点击,请求,下载 利用iframe实现文件流下载 //把上一次创建的iframe删掉,不然随着下载次数的增多页面上会一堆的iframe var ...

  4. linux文档目录

  5. 永远不要使用双花括号初始化实例,否则就会OOM!

    生活中的尴尬无处不在,有时候你只是想简单的装一把,但某些"老同志"总是在不经意之间,给你无情的一脚,踹得你简直无法呼吸. 但谁让咱年轻呢?吃亏要趁早,前路会更好. 喝了这口温热的鸡 ...

  6. .Net基础之4——流程控制

    (1)异常捕获 我们在程序中经常会出现各种各样的异常,你如果想要你的程序变得坚强一点. 在你的代码中应该经常性的使用try-catch来进行异常捕获. 语法: try { 可能会出现异常的代码: } ...

  7. vue-cli中的index.html ,main.js , App.vue的关系

    ###发现不少小伙伴才刚开始接触到这个结构都被绕的迷糊,而发现很多人说的也不是那么准确,那么下面我来说一下是怎么回事### 1.首先我们来看看原生Vue中组件的写法, 我们按照vue-cli的结构按照 ...

  8. leetcode350之实现求解两数组交集(包含重复元素)

    给定两个数组,编写一个函数来计算它们的交集. 说明: 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致. 我们可以不考虑输出结果的顺序 def binarySearch(nums, t ...

  9. [安卓基础] 006.打开另一个Activity

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  10. html5学习之路_001

    安装环境 安装intellij idea作为开发环境 打开环境 新建一个html文件,打开之后出现代码框架,再次基础上继续编码即可,例如: <!DOCTYPE html> <html ...