python控件与数据库的关联_python列表插件(能与数据库交互不是那么迫切,暂时记录代码,仅供参考)...

import clr

clr.AddReference("Kingdee.BOS")

clr.AddReference("Kingdee.BOS.App")

clr.AddReference("Kingdee.BOS.Core")

clr.AddReference("Kingdee.BOS.DataEntity")

clr.AddReference("Kingdee.BOS.ServiceHelper")

from Kingdee.BOS.Core.List.PlugIn import *

from Kingdee.BOS.Core.List import *

from Kingdee.BOS.Core.DynamicForm import *

from Kingdee.BOS.App.Data import *

from Kingdee.BOS.Core.Permission import *

from Kingdee.BOS.ServiceHelper import *

def AfterBarItemClick(e):

#this.View.ShowMessage("执行")

#DataTable dt;

if e.BarItemKey=="AI_BTNTEST":

#把当前组织‘是否为结算点’更新为0

updatesql="update T_ENG_ROUTEOPERDETAIL set F_AI_YESNOJSD=0  where FPROORGID={0}".format(str(this.Context.CurrentOrganizationInfo.ID))

flag = DBUtils.Execute(this.Context, updatesql)

if flag>0:

selsql="select FDETAILID,FPROCESSID,FENTRYID,FWORKCENTERID from T_ENG_ROUTEOPERDETAIL where FPROORGID={0} order by FENTRYID,FOPERNUMBER".format(str(this.Context.CurrentOrganizationInfo.ID))

dt = DBServiceHelper.ExecuteDynamicObject(this.Context, selsql)

updatestr="";

for i in range(len(dt)) :

if i+1==len(dt):

continue

else:

if dt[i][2]==dt[i + 1][2]:    #判断当前行与下一行是否为同一个单据

if dt[i][3]==dt[i + 1][3]:        #判断当前行与下一行是否为同一个工作中心

continue

else:

if getThisOrgDDID()!="":        #判断当前组织是否有电镀

if str(dt[i][1]) != getThisOrgDDID():

if updatestr=="":

updatestr = str(dt[i][0])

else:

updatestr = updatestr + "," +str(dt[i][0])

else:

if i != 0 && str(dt[i - 1][3]) == str(dt[i + 1][3]):

laststr =find_last(updatestr,",")

updatestr = updatestr[0, laststr]

continue

else :

continue

else:

if updatestr == "":

updatestr = str(dt[i][0])

else:

updatestr = updatestr + "," + str(dt[i][0])

else:

if this.Context.CurrentOrganizationInfo.ID == 101293 && dt[i][1] == 356519:

#1.将当前行上一行的主键从更新字符串中剔除

#2.将当前行主键加入字符串

updatestr = updatestr.replace(str(dt[i - 1][0]),"")

else :

continue

updatejsd="update T_ENG_ROUTEOPERDETAIL set F_AI_YESNOJSD=1 where FDETAILID in ({0})".format(str(updatestr))

count=DBUtils.Execute(this.Context, updatejsd)

if count > 0:

this.View.ShowMessage("修改成功")

else:

this.View.ShowMessage("修改失败")

def getThisOrgDDID():

strs = ""

sql="select t0.FID from T_ENG_PROCESS t0 inner join T_ENG_PROCESS_L t1 on(t0.FID=t1.FID and t1.FNAME='电镀' and t0.FUSEORGID={0} and t0.FDOCUMENTSTATUS='C' and t0.FFORBIDSTATUS='A' and t1.FLOCALEID=2052)".format(str(this.Context.CurrentOrganizationInfo.ID))

dt=DBServiceHelper.ExecuteDynamicObject(this.Context, sql)

if len(dt) > 0:

strs=str(dt[0][0])

return strs

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这里提供一个简单的示例代码,演示如何连接Python GUI交互界面和学生信息管理系统的数据库。 我们假设使用MySQL作为数据库Python的GUI库使用Tkinter,具体代码如下: ```python import tkinter as tk import mysql.connector # 连接数据库 mydb = mysql.connector.connect( host="localhost", user="username", password="password", database="database_name" ) # 创建GUI窗口 root = tk.Tk() root.title("学生信息管理系统") # 定义GUI控件 label_name = tk.Label(root, text="姓名") entry_name = tk.Entry(root) label_age = tk.Label(root, text="年龄") entry_age = tk.Entry(root) button_add = tk.Button(root, text="添加") # 定义添加函数 def add_student(): name = entry_name.get() age = entry_age.get() cursor = mydb.cursor() sql = "INSERT INTO students (name, age) VALUES (%s, %s)" val = (name, age) cursor.execute(sql, val) mydb.commit() print(cursor.rowcount, "记录插入成功。") # 将控件添加到GUI窗口 label_name.grid(row=0, column=0) entry_name.grid(row=0, column=1) label_age.grid(row=1, column=0) entry_age.grid(row=1, column=1) button_add.grid(row=2, column=1) # 绑定添加函数 button_add.config(command=add_student) # 运行GUI程序 root.mainloop() ``` 以上代码中,我们首先连接了MySQL数据库。然后,创建了一个Tkinter的GUI窗口,并定义了三个控件:一个Label和两个Entry,分别用于输入学生的姓名和年龄;还有一个Button,用于添加学生信息。在定义Button的时候,我们将它绑定到了add_student函数上。这个函数会从Entry中读取学生的姓名和年龄,然后将它们插入到数据库中。 当我们运行这个程序时,会弹出一个GUI窗口,我们可以在窗口中输入学生的姓名和年龄,然后点击"添加"按钮将学生信息保存到数据库中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值