跳至主要內容

TamuraLabel

chanchaw大约 3 分钟projs

源码与业务逻辑

打印标签

负责打印的类是:clsCPRKDY,执行打印的方法是:PrintBQ 执行逻辑(2020年6月24日 08:38:34):按照内箱、外箱、产品、栈板的顺序打印 内箱模板表:G_NXMB 内箱标签打印数据源存储过程是:P_GetBQ_N 然后根据配置内箱模板是否打印二维码进行分支打印 根据本表的字段 B_ARForm 判断是否是二维码标签 外箱模板表:G_WXMB 外箱标签打印数据源存储过程是:P_GetBQ_W_Quomodo2 类似内箱根据是否是二维码标签进行分支打印 本存储过程的倒数第二个参数 @LotNo 来自打印参数设置窗体中的“出货批次”

出货批次.png
出货批次.png

存储过程中的逻辑是:如果手动输入了内容,那么打印时候结合日期和箱号,如果没有手动输入那么软件自动计算出批次号,其计算来自函数 usf_GetLotNoPM 2020年6月24日 08:40:39 ,原本品名OFN-Y1260单独一个外箱打印模板,今日该客户要品名ON-Y1244也使用该外箱模板,同时原本的内箱模板更换为和外箱模板一样,并且把之前的品名OFN-Y1260的内箱模板也修改为外箱模板。

订单

单表对象编号:110901 窗体:frmModBLS_110901 打印工具类:clsCPRKDY,弹出的设置打印用到的参数的方法是:GetPrintParams_ByPopForm 打印参数设置窗体:frmSetPrintCount 外箱标签样式表:G_WXMB 内箱标签样式表:G_NXMB 外箱标签数据源存储过程:P_GetBQ_W_Quomodo2 普通内箱标签数据源存储过程:P_GetBQ_N 二维码内箱标签存储过程:P_GetBQ_N_Spec

正常打印

  • 客户订单窗体 = frmModBLS_110901
  • 第一层打印函数是 PrintQuomodo
  • 新老方式打印标签 全局变量 g_DataFlowQuomode,来自配置文件 [标签数据流模式] 下的 [采用新版本] 等于1表示使用新版本打印标签,0表示使用老版本
  • 调用工具类 clsCPRKDY 进行打印,打印前要设置多个属性然后调用 PrintBQ 执行打印
  • 打印顺序:内箱、外箱、产品标签、栈板标签
  • 打印内箱标签
    • 调用工具类 clsCPRKDY 的函数 getBQRecordSet_NX 构建内箱标签构成的记录集
    • 首先清空临时表 G_BQ_NX 中当前计算机名的所有数据
    • 循环向表 G_BQ_NX 中写入数据,每一行数据是一个内箱标签,多数内箱都要装满,最后一箱有可能不满
    • 调用存储过程 P_GetBQ_N 从表 G_BQ_NX 中获取上面创建的内箱标签的记录集
    • 调用工具类 clsCPRKDY 的方法 PrintBQ_NX 执行打印,传入上一步中获取到的内箱标签记录集
  • 品名 打印参数设置页面中有3个品名:订单品名、BOM品名01、BOM品名02 后面2个品名都来自基础资料,标签打印时的第二个品名是BOM品名02

修改BOM权限

在表 G_SystemUser 中的字段 B_Edit 的1表示有权限修改BOM,相反0表示没有权限 在 2020年12月4日 13:58:29 检查只有“系统管理员”有权限修改BOM,其他任何账号没有权限 该用户密码是 abc123@

开发人员工具

删除指定订单号的所有打印日志

-- 删除指定订单号的所有打印日志
DECLARE @DDH VARCHAR(100)
SET @DDH = 'PL0046213'
DELETE FROM G_LogPrint WHERE B_DDH=(
    SELECT G_Orders.B_ID FROM G_Orders WHERE B_DDH=@DDH
);

删除2019年以前的所有订单 - 不包含2019

DELETE FROM G_Orders WHERE YEAR(B_DateDR)<='2018'

标记多数订单为完工状态 - 加速订单页面的打开速度

-- 设置指定MAPS编码之外的所有订单为已完工状态
-- 加速日常业务中订单窗体的打开速度
UPDATE g_order SET b_finished=1 WHERE b_bh !='B-9000798Z'