使用列表中未显示的字段进行后续搜索

2024-06-26 10:03:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用wx.ListCtrl显示数据库查询的结果。如果用户选择了一个项目,我想使用一个未显示的字段(Client.idClient)查询另一个表并显示结果(只能是一行)。显示的查询和“核心”是:-

sql = "SELECT Client.idClient, Client.LastName, Client.FirstName, \
        MedicalCondition FROM Client INNER JOIN MedicalCondition \
        ON Client.idClient =  MedicalCondition.idClient \
        ORDER BY Client.LastName ASC, Client.FirstName ASC, MedicalCondition

try:    
      cursor.execute(sql)       
except ValueError:
      print "Error: unable to read data"
      print("Error:", ValueError)

rows = cursor.fetchall()

self.listCtrl.InsertColumn(0, 'Last Name', width = 175)
self.listCtrl.InsertColumn(1, 'First Name', width = 150)
self.listCtrl.InsertColumn(2, 'Condition', width=175)

 #print 'Done headings'

 n=0

 for r in rows:
       self.listCtrl.InsertStringItem(n, r[1])
       self.listCtrl.SetStringItem(n, 1, r[2])
       self.listCtrl.SetStringItem(n, 2, r[3])
       n+=1

我的问题是如何捕获Client.idClient以进行后续搜索。创建隐藏数组来保存数据似乎效率低下,而且随着分页和滚动等功能的添加,可能会变得相当复杂

先谢谢你


Tags: selfclientsqlerrorfirstnamewidthcursorprint
1条回答
网友
1楼 · 发布于 2024-06-26 10:03:02

为此,我将使用ObjectListView而不是wx.listctrl。它允许您存储除极易显示的数据之外的数据。如果单击某个项目会导致您执行另一个搜索,该搜索应显示在第二个listctrl类型小部件中,那么我更推荐ObjectListView。您可以将第一个项目放在框架顶部,只有当用户单击第一个项目中的某个项目并且搜索有结果时,第二个项目才会出现

或者可以打开另一个窗口,其中ObjectListview显示结果。以下教程将帮助您开始切换到ObjectListView:

这个小部件最近被分叉了,因为原来的小部件不再被维护。有关最新版本和文档,请参阅以下链接:

相关问题 更多 >