赞
踩
本部分通过QSqlTableModel和tableView控件实现todolist工作待办的查询、新增、修改、删除和导出功能
界面支持筛选查询、新增、删除和导出功能。先上图。
日期范围为comboBox,预设为全部、本日、本周、上周、本月、上月、本年、本年之前。
程度为comboBox,根据重要和紧急程度分为:
事项为lineEdit,支持通过输入文本模糊匹配查询。
self.todomodel = QSqlTableModel()
self.todomodel.setTable("todolist") self.todomodel.setEditStrategy(QSqlTableModel.OnFieldChange)
setEditStrategy各取值含义如下:
QSqlTableModel.OnFieldChange,一改动马上提交数据库
QSqlTableModel.OnRowChange,当前行号变化再提交数据库
QSqlTableModel.OnManualSubmit,默认值,手动提交submitAll()修改才生效。
本日:date(pdate) = date(‘now’)
本周:date(pdate) >= date(‘now’,‘weekday 1’,’-7 day’))
上周:(date(pdate) >= date(‘now’,‘weekday 1’,’-14 day’) and date(pdate) < date(‘now’,‘weekday 1’,’-7 day’))
本月:(date(pdate) >= date(‘now’,‘start of month’))
上月:(date(pdate) >= date(‘now’,‘start of month’,’-1 month’) and date(pdate) < date(‘now’,‘start of month’))
本年:(date(pdate) >= date(‘now’,‘start of year’))
本年以前:(date(pdate) < date(‘now’,‘start of year’))
# 2、业务条件转换为查询过滤语句。 ##2.1文本模糊匹配 sql1 = "(content like '%{}%')".format(scontent) filterlist = sql1 ##2.2待办事项建立日期范围。 if sdaterange in [1, 2, 3, 4, 5, 6, 7]: if sdaterange == 1: # 本日 sql2 = "(date(pdate) = date('now'))" elif sdaterange == 2: # 本周 sql2 = "(date(pdate) >= date('now','weekday 1','-7 day'))" elif sdaterange == 3: # 上周 sql2 = "(date(pdate) >= date('now','weekday 1','-14 day') and date(pdate) < date('now','weekday 1','-7 day'))" elif sdaterange == 4: # 本月 sql2 = "(date(pdate) >= date('now','start of month'))" elif sdaterange == 5: # 上月 sql2 = "(date(pdate) >= date('now','start of month','-1 month') and date(pdate) < date('now','start of month'))" elif sdaterange == 6: # 本年 sql2 = "(date(pdate) >= date('now','start of year'))" elif sdaterange == 7: # 去年及以前 sql2 = "(date(pdate) < date('now','start of year'))" filterlist = filterlist + " and " + sql2 else: sql2 = '' ##2.3待办事项状态。 if sfinstatus in [1, 2]: sql3 = "(finstatus={})".format(sfinstatus) filterlist = filterlist + " and " + sql3 else: sql3 = '
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。