编辑款式下拉框修复
This commit is contained in:
@@ -177,12 +177,17 @@ class FabricManager(QMainWindow):
|
||||
text = f"款号: {style_number}\n生产件数: {qty}\n损耗率: {self.loss_input.value()}%\n\n"
|
||||
try:
|
||||
with self.get_conn() as conn:
|
||||
cursor = conn.execute("SELECT category, fabric_type, usage_per_piece, unit FROM garment_materials WHERE style_number = ? ORDER BY id", (style_number,))
|
||||
for category, fabric_type, usage, unit in cursor.fetchall():
|
||||
cursor = conn.execute("SELECT category, fabric_type, model, usage_per_piece, unit FROM garment_materials WHERE style_number = ? ORDER BY id", (style_number,))
|
||||
for category, fabric_type, model, usage, unit in cursor.fetchall():
|
||||
if usage:
|
||||
total = usage * qty * (1 + loss)
|
||||
# 显示材料名称(如果有类型则显示类目-类型,否则只显示类目)
|
||||
material_name = f"{category}-{fabric_type}" if fabric_type else category
|
||||
# 显示材料名称:优先显示型号,否则显示类目-类型,最后只显示类目
|
||||
if model:
|
||||
material_name = model
|
||||
elif fabric_type:
|
||||
material_name = f"{category}-{fabric_type}" if category else fabric_type
|
||||
else:
|
||||
material_name = category or "未命名材料"
|
||||
text += f"{material_name}\n单件: {usage:.3f} {unit}\n总用量: {total:.3f} {unit}\n\n"
|
||||
except Exception as e:
|
||||
text += "计算失败: " + str(e)
|
||||
@@ -332,6 +337,7 @@ class FabricManager(QMainWindow):
|
||||
CREATE TABLE IF NOT EXISTS fabrics (
|
||||
model TEXT PRIMARY KEY,
|
||||
category TEXT DEFAULT '未分类',
|
||||
fabric_type TEXT,
|
||||
supplier TEXT,
|
||||
color TEXT,
|
||||
width REAL,
|
||||
@@ -356,6 +362,7 @@ class FabricManager(QMainWindow):
|
||||
style_number TEXT,
|
||||
category TEXT,
|
||||
fabric_type TEXT,
|
||||
model TEXT,
|
||||
usage_per_piece REAL,
|
||||
unit TEXT DEFAULT '米'
|
||||
)
|
||||
@@ -364,6 +371,30 @@ class FabricManager(QMainWindow):
|
||||
# 添加fabric_type列(如果不存在)
|
||||
try:
|
||||
conn.execute("ALTER TABLE garment_materials ADD COLUMN fabric_type TEXT")
|
||||
except:
|
||||
pass
|
||||
# 添加model列(如果不存在)
|
||||
try:
|
||||
conn.execute("ALTER TABLE garment_materials ADD COLUMN model TEXT")
|
||||
except:
|
||||
pass
|
||||
# 添加fabrics表的fabric_type列(如果不存在)
|
||||
try:
|
||||
conn.execute("ALTER TABLE fabrics ADD COLUMN fabric_type TEXT")
|
||||
except:
|
||||
pass
|
||||
# 数据迁移:将fabrics表中category字段的"类目-类型"格式拆分成两个字段
|
||||
try:
|
||||
cursor = conn.execute("SELECT model, category FROM fabrics WHERE category LIKE '%-%' AND (fabric_type IS NULL OR fabric_type = '')")
|
||||
rows = cursor.fetchall()
|
||||
for model, category in rows:
|
||||
if '-' in category:
|
||||
parts = category.split('-', 1)
|
||||
new_category = parts[0]
|
||||
new_fabric_type = parts[1]
|
||||
conn.execute("UPDATE fabrics SET category = ?, fabric_type = ? WHERE model = ?",
|
||||
(new_category, new_fabric_type, model))
|
||||
conn.commit()
|
||||
except:
|
||||
pass # 列已存在
|
||||
|
||||
|
||||
Reference in New Issue
Block a user