所以我设法以给定的顺序获取项目列表,以便正确填充数据库。当转换项目以填充显示订单中包含的项目的 listctrl 小部件时......我得到了这个:
左侧窗口显示添加第一项时会发生什么......右侧窗口是我的问题所在。它基本上覆盖了第一个项目的文本并添加了一个空白列......但是价格正确地加起来并且所有项目都正确地添加到 sql 数据库中......所以我的问题在于我如何填充我的列表
下面显示的代码是填充前面显示的列表 ctrl 的函数......我似乎无法找出我出错的地方......有什么想法吗?
重新启动列表的代码
def refresh_list2(self, event):
"""Place the names of each ItemEntry into the list"""
index = 0
self.entrydict = {}
self.list2.DeleteAllItems()
for entry in self.ordite.list_entries():
if entry.Order_ID == self.entry.Order_ID:
self.list2.InsertStringItem(index,self.entry.Order_ID)
self.list2.SetStringItem(index,1,self.entryit.Item_ID)
self.list2.SetStringItem(index,2,str(self.entryit.Item_Price))
self.list2.SetStringItem(index,3,str(self.entryit.Item_Qty))
self.entrydict[index] = entry
index += 1
将项目插入数据库的代码
def add_item(self, event):
"""Add a new entry to the Order_Date ite"""
# start out with blank, generic Entry
self.entryit = oi.OrderItemEntry(self.entry.Order_ID,"","","0")
self.endiag = AddItemOrder(self,self.entryit)
self.endiag.ShowModal()
self.ordite.add_entry(self.entry.Order_ID,
str(self.entryit.Item_ID),
str(self.entryit.Item_Price),
str(self.entryit.Item_Qty) )
self.refresh_list2(None)
self.addPrice(None)
仍在考虑在后端创建一个函数,该函数根据给定的 order_ID 存储项目对象的过滤列表