打印精灵和 Codesoft 的可变数据打印操作方法比较


部分客户此前使用 Codesoft 软件。由于打印精灵的系统操作逻辑与 Codesoft 存在较大差异,初次使用时容易出现不熟悉、不知从何操作的情况。为帮助原 Codesoft 用户尽快迁移到打印精灵,现将两者的主要差异总结如下。

一、变量创建

打印精灵无需显式创建变量即可使用。

打印精灵和 Codesoft 都通过变量实现可变数据打印,但使用方式不同:

  • Codesoft:使用变量前必须先创建变量。
  • 打印精灵:只需在使用时,在输入框右侧输入变量名和示例值,点击“插入变量”即可自动创建一个变量,无需显式创建。

二、多变量使用

打印精灵支持在一个对象中同时插入多个变量。

  • Codesoft:文本、多行文本、条码、二维码只能绑定一个变量或一个常量。如需绑定多个变量,必须先用公式将变量组合成一个新变量。
  • 打印精灵:可以同时插入多个变量以及任意其他字符。因此在很多场景下,使用打印精灵可以无需编写公式(JS 脚本),操作更为简单。

三、公式与 JS 脚本

复杂的内容格式化,Codesoft 使用公式,打印精灵使用 JS 脚本。

总体而言,Codesoft 公式能实现的功能,JS 脚本均能实现,且在功能和灵活性方面更强。唯一的缺点是对非 IT 人员而言,需要一定的适应过程。

为便于转换,下面按常见使用场景列出对照表。

对比项 Codesoft 打印精灵
使用方法 一个公式是一个表达式,计算一个值。 可以有任意条语句,可以计算多个中间值。但是最终值必须通过 return 返回。
获取变量值 直接使用变量名,如 PRD_ID 使用 get("变量名")。获取的值可以赋给一个中间变量,后续使用中间变量参与运算,如 PRD_ID=get("PRD_ID");也可以直接用 return 返回:return get("PRD_ID")。由于 get() 是一个函数,可以用于任何可以使用函数的地方。
特殊符号 Char(13) 回车 "\n" 回车
连接字符 通过 & 连接变量或常量
如:"产品编号:"&PRD_ID & char(13) & PRD_NAME
方案1:使用 + 号拼接
return "产品编号"+get("PRD_ID" ) + "\n"+get("PRD_NAME")

方案2:使用模板字符串
return `产品编号${get("PRD_ID")}\n${get("PRD_NAME")}`
条件计算 IF(条件,真值,假值)
IF( WEIGHT>1000, "超重", "")
条件?真值:假值
get("WEIGHT")>1000? "超重":""

四、迁移示例

以下通过一个实际场景,演示如何将 Codesoft 公式转换为打印精灵的 JS 脚本。

需求:输出三行内容,第一行为“产品编号:”加编号,第二行为“产品名称:”加名称,第三行为根据重量判断是否显示“超重”提示。

Codesoft 公式

"产品编号:" & PRD_ID & Char(13) &
"产品名称:" & PRD_NAME & Char(13) &
IF(WEIGHT > 1000, "超重", "")

打印精灵 JS 脚本1 - 单语句模板(简单)

1return `产品编号:${get("PRD_ID")}
2产品名称:${get("PRD_NAME")}
3${get("WEIGHT") > 1000 ? "超重" : ""}`

打印精灵 JS 脚本2 - 多语句模板(更清晰)

 1// 获取变量值
 2var prdId = get("PRD_ID");
 3var prdName = get("PRD_NAME");
 4var weight = get("WEIGHT");
 5
 6// 计算重量提示
 7var weightTip = weight > 1000 ? "超重" : "";
 8
 9// 拼接并返回最终结果
10return `产品编号:${prdId}\n产品名称:${prdName}\n${weightTip}`;

对比说明

环节 Codesoft 打印精灵
变量获取 直接使用变量名 通过 get() 函数获取
换行 Char(13) \n
字符串拼接 & 连接 + 或模板字符串
条件判断 IF(条件,真值,假值) 条件?真值:假值
多步计算 单个表达式,难以拆分中间结果 可定义多个中间变量,逻辑更清晰

通过这个示例可以看出,打印精灵的 JS 脚本, 可以使用单语句模板结构上更接近codesoft; 也可使用多语句,在结构上更接近常规编程,便于拆分中间步骤、添加注释,也更适合处理复杂格式化逻辑。


留言

登录