pychram写,一个有对话框窗口 库存管理软件,可以入库和出库,查询库存,记录入库时间和出库时间
时间: 2023-09-25 21:11:06 浏览: 78
库存管理软件
好的,您可以按照以下步骤来实现:
1. 创建一个 GUI 界面,包含一个对话框窗口和几个文本框、按钮等控件,用于输入和显示库存信息。
2. 创建一个数据库,用于存储库存数据和操作记录。可以使用 SQLite 或其他关系型数据库。
3. 编写代码,实现入库和出库功能。当用户点击“入库”或“出库”按钮时,程序应该将数据写入数据库,并更新库存数量和相关时间。
4. 实现查询库存功能。当用户点击“查询”按钮时,程序应该从数据库中读取数据,并在对话框窗口中显示库存信息。
5. 记录操作日志。每次入库或出库时,程序应该将操作记录写入数据库,包括操作时间、商品名称、数量等信息。
下面是一个简单的示例代码,供您参考:
```python
import sqlite3
import datetime
import tkinter as tk
# 创建数据库连接
conn = sqlite3.connect('inventory.db')
cursor = conn.cursor()
# 创建库存表
cursor.execute('''CREATE TABLE IF NOT EXISTS inventory
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
quantity INTEGER,
in_time TIMESTAMP,
out_time TIMESTAMP)''')
class InventoryManager:
def __init__(self, master):
self.master = master
master.title("库存管理软件")
# 创建控件
self.name_label = tk.Label(master, text="商品名称:")
self.quantity_label = tk.Label(master, text="数量:")
self.in_button = tk.Button(master, text="入库", command=self.in_stock)
self.out_button = tk.Button(master, text="出库", command=self.out_stock)
self.query_button = tk.Button(master, text="查询", command=self.query_stock)
self.name_entry = tk.Entry(master)
self.quantity_entry = tk.Entry(master)
self.result_text = tk.Text(master)
# 布局控件
self.name_label.grid(row=0, column=0)
self.quantity_label.grid(row=1, column=0)
self.name_entry.grid(row=0, column=1)
self.quantity_entry.grid(row=1, column=1)
self.in_button.grid(row=2, column=0)
self.out_button.grid(row=2, column=1)
self.query_button.grid(row=3, column=0)
self.result_text.grid(row=4, column=0, columnspan=2)
def in_stock(self):
name = self.name_entry.get()
quantity = int(self.quantity_entry.get())
# 写入库存表
cursor.execute("INSERT INTO inventory (name, quantity, in_time) VALUES (?, ?, ?)",
(name, quantity, datetime.datetime.now()))
conn.commit()
# 显示结果
self.result_text.insert(tk.END, f"{name} 入库 {quantity} 个\n")
def out_stock(self):
name = self.name_entry.get()
quantity = int(self.quantity_entry.get())
# 更新库存表
cursor.execute("SELECT quantity FROM inventory WHERE name = ?", (name,))
current_quantity = cursor.fetchone()[0]
new_quantity = current_quantity - quantity
cursor.execute("UPDATE inventory SET quantity = ?, out_time = ? WHERE name = ?",
(new_quantity, datetime.datetime.now(), name))
conn.commit()
# 显示结果
self.result_text.insert(tk.END, f"{name} 出库 {quantity} 个\n")
def query_stock(self):
name = self.name_entry.get()
# 从库存表中查询数据
cursor.execute("SELECT quantity, in_time, out_time FROM inventory WHERE name = ?", (name,))
data = cursor.fetchone()
# 显示结果
if data:
quantity, in_time, out_time = data
self.result_text.insert(tk.END, f"{name} 库存 {quantity} 个,入库时间 {in_time},出库时间 {out_time}\n")
else:
self.result_text.insert(tk.END, f"{name} 没有库存记录\n")
root = tk.Tk()
app = InventoryManager(root)
root.mainloop()
# 关闭数据库连接
conn.close()
```
这个程序使用了 Tkinter 模块创建 GUI 界面,并使用 SQLite 数据库存储库存信息和操作记录。您可以根据实际需要进行修改和优化。
阅读全文