CertFlow 合格证打印操作手册

本文档详细说明打印功能的每个按钮、右键菜单和页面跳转行为

目录

  1. 页面跳转关系图

  2. 查询页面操作详解

  3. 打印页面操作详解

  4. 参数补充对话框

  5. 完整操作流程图


页面跳转关系图

┌─────────────────────────────────────────────────────────────────────┐
│                          页面跳转关系图                              │
└─────────────────────────────────────────────────────────────────────┘

    ┌──────────────┐                    ┌──────────────┐
    │   首页       │                    │   导入页     │
    │  (index=0)   │                    │  (index=1)   │
    └──────┬───────┘                    └──────┬───────┘
           │                                   │
           └──────────────┬────────────────────┘
                          ↓
                   ┌──────────────┐
                   │   查询页     │ ←─────────────────┐
                   │  (index=2)   │                   │
                   └──────┬───────┘                   │
                          │                           │
    ┌─────────────────────┼─────────────────────┐     │
    │                     │                     │     │
    ↓                     ↓                     ↓     │
┌───────┐          ┌───────────┐          ┌───────┐  │
│工具栏 │          │ 右键菜单  │          │导航按钮│  │
│打印按钮│          │打印合格证 │          │🖨 打印│  │
└───┬───┘          └─────┬─────┘          └───┬───┘  │
    │                    │                    │      │
    └────────────────────┼────────────────────┘      │
                         ↓                          │
                   ┌──────────────┐                 │
                   │   打印页     │ ────────────────┘
                   │  (index=3)   │    (返回首页)
                   └──────────────┘

关键跳转:查询页 → 打印页 会自动携带选中记录的ID


查询页面操作详解

界面区域说明

┌─────────────────────────────────────────────────────────────────────┐
│ [选择列] [📋 复制] [🙈 隐藏] [🏷️ 打印合格证]        [🔍 搜索]      │ ← 工具栏
├─────────────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐                    │ ← 筛选行
│ │产品型号: [▼]│ │订单号: [▼] │ │状态: [▼]   │                    │
│ └─────────────┘ └─────────────┘ └─────────────┘                    │
├─────────────────────────────────────────────────────────────────────┤
│ ☑ | ID | 产品型号 | 订单号 | 客户 | 生产状态 | 合格证编号 | ...     │ ← 表头
│ ☐ | 1  | Z41H-25C | PO001 | XX公司 | 生产中   | V2506001    |     │
│ ☐ | 2  | D942X-10Q| PO002 | YY公司 | 已完成   | 未生成      |     │ ← 数据行
│ ☐ | 3  | ...      | ...   | ...    | ...      | ...         |     │
├─────────────────────────────────────────────────────────────────────┤
│ 选中 0 条                         第 1 / 10 页    [◀ 上一页] [下一页 ▶]│
└─────────────────────────────────────────────────────────────────────┘

工具栏按钮详解

按钮

图标

点击效果

是否弹窗

触发后页面跳转

选择列

-

弹出自定义列对话框,勾选需要显示的字段

✅ 是

📋 复制

📋

将选中行的数据复制到剪贴板(JSON格式)

❌ 否

🙈 隐藏

🙈

将选中行的is_hidden设为true,行立即消失

❌ 否

🏷️ 打印合格证

🏷️

跳转到打印页,自动携带选中ID

❌ 否

跳转到 index=3

🔍 搜索

-

根据筛选条件刷新表格

❌ 否

筛选条件说明

筛选字段

操作符

说明

产品型号

包含(contains)

模糊匹配

订单号

包含(contains)

模糊匹配

生产状态

等于(eq)

精确匹配

是否已编号

为空/不为空

判断合格证编号是否存在

右键菜单详解

在表格任意行右键点击,弹出菜单:

┌─────────────────────────────────────────────────────────────────┐
│ 📝 自动编号              ← 为选中行生成合格证编号               │
├─────────────────────────────────────────────────────────────────┤
│ ✏️ 手动编号              ← 手动输入前缀和起始号                 │
├─────────────────────────────────────────────────────────────────┤
│ 📋 复制编号              ← 将源行的编号复制到其他选中行         │
├─────────────────────────────────────────────────────────────────┤
│ ────────────                                                   │
├─────────────────────────────────────────────────────────────────┤
│ 📅 设置年月              ← 将计划日期设为编号前缀年月           │
├─────────────────────────────────────────────────────────────────┤
│ 📋 填充计划单号          ← 批量填充生产计划单号                 │
├─────────────────────────────────────────────────────────────────┤
│ ────────────                                                   │
├─────────────────────────────────────────────────────────────────┤
│ 🏷️ 打印合格证           ← 跳转到打印页,自动携带选中ID          │
├─────────────────────────────────────────────────────────────────┤
│ ────────────                                                   │
├─────────────────────────────────────────────────────────────────┤
│ 🙈 隐藏                  ← 隐藏选中行                           │
├─────────────────────────────────────────────────────────────────┤
│ 👁 取消隐藏              ← 取消隐藏(需先清除筛选)               │
├─────────────────────────────────────────────────────────────────┤
│ ────────────                                                   │
├─────────────────────────────────────────────────────────────────┤
│ 📎 导出选中行            ← 导出为Excel文件                      │
└─────────────────────────────────────────────────────────────────┘

各菜单项的详细行为

📝 自动编号-自动编号

属性

说明

触发条件

至少选中1行

执行动作

调用CertificateNumberService.generate_numbers()

编号格式

V{YYMM}{流水号},如 V2506001

弹窗确认

✅ 是(生成后询问"是否跳转打印")

结果反馈

状态栏显示"已编号 X 条(前缀=V)"

✏️ 手动编号-手动编号

属性

说明

触发条件

至少选中1行

执行动作

弹出输入框,输入前缀和起始编号

编号格式

{前缀}{起始号} 开始连续递增

弹窗确认

✅ 是(输入对话框 + 确认对话框)

结果反馈

状态栏显示"已编号 X 条(手动)"

📋 复制编号-复制编号

属性

说明

触发条件

选中多行,其中一行已有编号

执行动作

将源行的编号复制到其他选中行

弹窗确认

❌ 否

结果反馈

状态栏显示"复制编号 X 条"

📅 设置年月-设置年月

属性

说明

触发条件

至少选中1行

执行动作

plan_date设为编号前缀的年月(如V2506 → 2025-06-01)

弹窗确认

❌ 否

结果反馈

状态栏显示"已设置 X 条计划日期"

🏷️ 打印合格证-打印合格证

属性

说明

触发条件

至少选中1行

执行动作

发射navigate_to_print信号,携带选中ID列表

页面跳转

自动切换到打印页(index=3)

数据传递

打印页自动加载选中ID对应的数据

🙈 隐藏-隐藏

属性

说明

触发条件

至少选中1行

执行动作

设置is_hidden=True

弹窗确认

❌ 否

结果反馈

行立即从表格消失

📎 导出选中行-导出为excel文件

属性

说明

触发条件

至少选中1行

执行动作

弹出文件保存对话框,导出为Excel

弹窗确认

✅ 是(文件保存对话框)

结果反馈

状态栏显示"已导出 X 条"


打印页面操作详解

Tab页概览

┌─────────────────────────────────────────────────────────────────────┐
│ [打印] │ [数据源] │ [打印历史] │ [设置]                              │ ← Tab标签
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│                        当前Tab页内容                                 │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

Tab 0: 打印 - 左侧控制面板

┌─────────────────────────────────────────────────────────────────────┐
│ ┌─ 合格证模板 ─────────────────────────────────────────────────────┐│
│ │ [全中文合格证模板 ▼]                                              ││
│ │   ├─ 全中文合格证模板    → template_style=1, 底图已印MPa         ││
│ │   ├─ 中英文合格证模板    → template_style=2, 显示"2.5MPa"        ││
│ │   ├─ 全英文合格证模板    → template_style=3, 显示"2.5MPa"        ││
│ │   └─ 俄英文合格证模板    → template_style=4, 显示"2.5MPa"        ││
│ └──────────────────────────────────────────────────────────────────┘│
│                                                                     │
│ ┌─ 产品信息 ───────────────────────────────────────────────────────┐│
│ │ 产品名称:[高性能蝶柜                    ]                        ││
│ │ 产品型号:[D942X-10Q                     ]                        ││
│ │ 公称通径:[DN100                         ]  ← 可手动修改          ││
│ │ 公称压力:[1.0MPa                        ]  ← 可手动修改          ││
│ │ 适用温度:[≤120℃                         ]                        ││
│ │ 适用介质:[水                             ]                        ││
│ │ 出厂年月:[2026.06                       ]  ← 格式: YYYY.MM       ││
│ │ 检验标准:[GB/T 13927-2008               ]                        ││
│ │ 检验工号:[ZQ001                         ]                        ││
│ └──────────────────────────────────────────────────────────────────┘│
│                                                                     │
│ ┌─ 合格证编号设置 ─────────────────────────────────────────────────┐│
│ │ 编号模式:[读取编号           ▼]                                 ││
│ │   ├─ 读取编号           → 从Certificate读取已有编号              ││
│ │   ├─ 正则式自动刷新编号 → V+YYMM+流水号                          ││
│ │   ├─ 直接复制编号       → 所有页使用同一编号                     ││
│ │   └─ 三位流水编号       → V+三位流水号                           ││
│ │ 前缀:[V   ] 起始编号:[1  ] 数量:[3  ] 后缀:[   ]                ││
│ └──────────────────────────────────────────────────────────────────┘│
│                                                                     │
│ ┌─ 打印选项 ───────────────────────────────────────────────────────┐│
│ │ ☑ 自动填写口径压力      ← 从型号自动解析DN/PN                    ││
│ │ ☑ 首张打印前预览        ← 打印前弹出预览对话框                   ││
│ │ ☑ 保存打印日志到数据库  ← 写入print_logs表                       ││
│ └──────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────┘

Tab 0: 打印 - 右侧预览面板

┌─────────────────────────────────────────────────────────────────────┐
│                         实时预览                                     │
│                                    [◀ 上一张] [1/3] [下一张 ▶]      │
├─────────────────────────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │                                                                 │ │
│ │                    60mm × 100mm 预览区域                        │ │
│ │                                                                 │ │
│ │   产品名称:高性能蝶阀                                           │ │
│ │   产品型号:D942X-10Q                                            │ │
│ │   公称通径:DN100                                                │ │
│ │   公称压力:1.0MPa                                               │ │
│ │   工作温度:≤120℃                                               │ │
│ │   适用介质:水                                                   │ │
│ │   检验标准:GB/T 13927-2008                                      │ │
│ │   检验工号:ZQ001                                                │ │
│ │   出厂日期:2026.06                                              │ │
│ │   产品编号:V2506001                                             │ │
│ │                                                                 │ │
│ └─────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
                    ↓ 底部按钮区域
┌────────────┬────────────┬────────────┬────────────┐
│  单次打印  │  批量打印  │  打印预览  │  生成PDF   │
└────────────┴────────────┴────────────┴────────────┘

Tab 0 按钮详解

按钮

点击效果

执行动作

弹窗

页面影响

单次打印

弹出预览对话框

用户确认后调用print_single()

✅ 预览对话框

批量打印

弹出确认对话框

按数量循环调用print_single()

✅ 确认对话框

进度条显示

打印预览

弹出大窗口

仅显示HTML预览,不打印

✅ 预览窗口

生成PDF

保存文件对话框

调用page.printToPdf()

✅ 文件对话框

◀ 上一张

切换编号

预览上一张编号的样式

预览刷新

下一张 ▶

切换编号

预览下一张编号的样式

预览刷新

Tab 1: 数据源

┌─────────────────────────────────────────────────────────────────────┐
│ [加载数据] [刷新] [生成合格证] [查模板] [一键打印]     [筛选型号...] │
├─────────────────────────────────────────────────────────────────────┤
│ ID | 产品名称 | 产品型号 | 产品规格 | 订货单位 | 项目名称 | ...     │
│ 1  | 蝶阀    | D942X-10Q| DN100    | XX公司   | 项目A    |         │
│ 2  | 闸阀    | Z41H-25C | DN150    | YY公司   | 项目B    |         │
│ 3  | 截止阀  | J41H-16C | DN50     | ZZ公司   | 项目C    |         │
└─────────────────────────────────────────────────────────────────────┘
                              ↓ 双击任意行
┌─────────────────────────────────────────────────────────────────────┐
│ 匹配的历史模板(双击选择):                                          │
│ ┌─────────────────────────────────────────────────────────────────┐│
│ │ [1] D942X-10Q | DN100 | PN1.0MPa | ≤120℃ | 水 | GB/T 13927    ││
│ │ [2] D942X-10Q | DN150 | PN1.0MPa | ≤120℃ | 水 | GB/T 13927    ││
│ └─────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────┘

按钮

点击效果

与打印Tab的交互

加载数据

从数据库加载SalePlan

刷新

重新加载数据

生成合格证

调用create_certificates()

生成后可切换到打印Tab

查模板

templates.xlsx查询历史模板

结果在下方列表显示

一键打印

完整流程:生成→查模板→打印→回填

自动切换到打印Tab

双击数据行

填充打印表单 + 自动查模板

填充左侧表单 + 查询模板

双击模板行

应用模板 + 更新Certificate

填充左侧表单 + 更新数据库

Tab 2: 打印历史

┌─────────────────────────────────────────────────────────────────────┐
│ [刷新]                                           [筛选...]          │
├─────────────────────────────────────────────────────────────────────┤
│ ID | 合格证编号 | 产品型号 | DN | PN | 打印机 | 状态 | 打印时间    │
│ 101| V2506001   | D942X-10Q|100 |1.0MPa|EPSON | success|2026-06-06 │
│ 100| V2506002   | D942X-10Q|100 |1.0MPa|EPSON | success|2026-06-06 │
│ 99 | V2506003   | D942X-10Q|100 |1.0MPa|EPSON | success|2026-06-06 │
└─────────────────────────────────────────────────────────────────────┘

每条记录包含完整的51个Access SignTb兼容字段。

Tab 3: 设置

配置项

可选值

默认值

影响范围

默认打印机

系统已安装打印机列表

系统默认

GDI打印

纸张大小

60x100mm / 130x75mm / A4

60x100mm

打印尺寸

页边距(上)

0-20mm

3mm

HTML预览

页边距(下)

0-20mm

2mm

HTML预览

页边距(左)

0-20mm

3mm

HTML预览

页边距(右)

0-20mm

3mm

HTML预览


参数补充对话框

触发条件

当Certificate记录缺少以下任一参数时自动弹出:

  • 公称通径 (DN) 为空

  • 公称压力 (PN) 为空

  • 工作温度 为空

  • 适用介质 为空

对话框结构

┌─────────────────────────────────────────────────────────────────────┐
│ 参数补充 - D942X-10Q                                      [✕]       │
├─────────────────────────────────────────────────────────────────────┤
│ 产品型号:D942X-10Q                                                 │
│ 以下参数缺失或需确认,请补充后继续打印:                              │
├─────────────────────────────────────────────────────────────────────┤
│ ┌─ 基本参数 ─────────────────────────────────────────────────────┐ │
│ │ 公称通径 (DN):[DN100                    ]  ← 必填,否则下次再弹│ │
│ │ 公称压力 (PN):[1.0MPa                    ]  ← 必填              │ │
│ │ 工作温度:    [≤120℃                      ]  ← 必填              │ │
│ │ 适用介质:    [水                          ]  ← 必填              │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ ┌─ 检验参数 ─────────────────────────────────────────────────────┐ │
│ │ 试压标准:    [GB/T 13927-2008            ]  ← 可选              │ │
│ │ 检验工号:    [ZQ001                        ]  ← 可选              │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ ┌─ 材质参数 ─────────────────────────────────────────────────────┐ │
│ │ 阀体材质:    [WCB                    ▼]  ← 下拉可选,可手动输入│ │
│ │ 阀杆材质:    [2Cr13                  ▼]                        │ │
│ │ 启闭件材质:  [2Cr13                  ▼]                        │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│                                                                     │
│   [跳过全部(留空)]              [确认并打印]  [取消]               │
└─────────────────────────────────────────────────────────────────────┘

按钮行为详解

按钮

行为

数据库操作

下次同型号

确认并打印

保存所有填写参数

写入Certificate + 自学习表

直接命中,不再弹窗

跳过全部

所有参数留空

不写入自学习表

下次仍会弹窗

取消

关闭对话框

无操作

取消本次打印

自学习机制

用户确认后,系统自动记录到配置表:

参数类型

写入表

下次效果

口径(DN)

caliber_mappings

同口径字符串直接转换

压力+型号

model_param_mappings

同型号自动填充PN

温度/介质

model_param_mappings

同型号自动填充


完整操作流程图

┌─────────────────────────────────────────────────────────────────────┐
│                        完整打印流程                                   │
└─────────────────────────────────────────────────────────────────────┘

    ┌─────────────┐
    │ 1. 导入Excel │
    │  (导入页面)  │
    └──────┬──────┘
           ↓
    ┌─────────────┐
    │ 2. 查询筛选 │
    │  (查询页面) │
    └──────┬──────┘
           ↓
    ┌─────────────┐
    │ 3. 勾选记录 │
    │  (多选)     │
    └──────┬──────┘
           ↓
    ┌─────────────────────────────────────────────────────────────┐
    │                   4. 选择操作方式                            │
    ├─────────────────────────┬───────────────────────────────────┤
    │    方式A:工具栏按钮     │        方式B:右键菜单             │
    │    「🏷️ 打印合格证」     │        「🏷️ 打印合格证」           │
    └────────────┬────────────┴───────────────┬───────────────────┘
                 ↓                            ↓
    ┌─────────────────────────────────────────────────────────────┐
    │              5. 自动跳转到打印页面 (index=3)                 │
    │                 携带选中记录的ID列表                         │
    └─────────────────────────────────────────────────────────────┘
                 ↓
    ┌─────────────────────────────────────────────────────────────┐
    │              6. 检查Certificate是否存在                      │
    ├─────────────────────────┬───────────────────────────────────┤
    │       不存在            │           已存在                  │
    │   调用create_certificates│   直接使用现有记录                │
    └────────────┬────────────┴───────────────┬───────────────────┘
                 ↓                            ↓
    ┌─────────────────────────────────────────────────────────────┐
    │              7. 检查参数完整性                               │
    ├─────────────────────────┬───────────────────────────────────┤
    │      参数完整            │         参数缺失                  │
    │    跳过补充对话框        │    弹出参数补充对话框              │
    └────────────┬────────────┴───────────────┬───────────────────┘
                 ↓                            ↓
    ┌─────────────────────────────────────────────────────────────┐
    │                    8. 用户确认打印                           │
    ├─────────────────────────┬───────────────────────────────────┤
    │      单次打印            │          批量打印                 │
    │    弹出预览对话框        │        确认数量后执行              │
    └────────────┬────────────┴───────────────┬───────────────────┘
                 ↓                            ↓
    ┌─────────────────────────────────────────────────────────────┐
    │              9. GDI精确打印 (win32print)                     │
    ├─────────────────────────┬───────────────────────────────────┤
    │        成功             │            失败                   │
    │    记录success日志      │    降级为HTML打印 + 记录failed     │
    └────────────┬────────────┴───────────────┬───────────────────┘
                 ↓                            ↓
    ┌─────────────────────────────────────────────────────────────┐
    │              10. 记录打印日志 (print_logs表)                 │
    │                  51字段完全兼容Access SignTb                 │
    └─────────────────────────────────────────────────────────────┘
                 ↓
    ┌─────────────────────────────────────────────────────────────┐
    │              11. 铭牌刻印系统读取                            │
    │         SQLite print_logs表 → Access链接表/导出.mdb          │
    └─────────────────────────────────────────────────────────────┘

常见问题

Q1: 查询页面点击「打印合格证」后没有反应?

A: 检查是否至少选中了一行记录。需要先勾选表格左侧的复选框。

Q2: 打印页面没有自动填充产品信息?

A:

  1. 确认是从查询页面通过「打印合格证」按钮跳转过来的

  2. 检查选中的记录是否已生成Certificate(可在数据源Tab查看)

Q3: 参数补充对话框反复弹出?

A: 说明必填参数(DN/PN/温度/介质)留空了。点击「确认并打印」前请填写完整。

Q4: 如何批量打印不同型号的产品?

A:

  1. 在查询页面勾选多行(可跨页)

  2. 点击「打印合格证」

  3. 系统会为每条记录独立生成Certificate

  4. 在打印页使用「批量打印」功能

Q5: GDI打印失败怎么办?

A: 系统会自动降级为HTML打印,在浏览器中手动打印即可。长期失败请检查:

  • 打印机是否就绪

  • 纸张尺寸是否设置为60×100mm

  • 打印机驱动是否支持自定义纸张

Q6: 如何查看历史打印记录?

A: 进入打印页面的「打印历史」Tab页,可筛选查询。


附录:编号格式说明

模式

格式

示例

适用场景

正则式

V{YYMM}{流水号}

V2506001

默认模式,含年月信息

三位流水

V{3位流水}

V001

简单流水号

直接复制

{指定编号}

2506-001

特殊编号规则

读取编号

从Certificate读取

-

已编号产品


文档版本: 2.0 | 更新日期: 2026-06-06