常见问题:TFORMer Designer
代码片段:如何为唯一包裹 ID 创建时间戳?
代码片段:如何为唯一包裹 ID 创建时间戳?
如果您无法使用持久化序列字段,使用时间戳是一种变通方法。以下表达式会为唯一包裹 ID 创建一个 12 位字母数字时间戳(每个打印作业递增)。
CStr(Chr(65 + Year(Now()) % 26)) + CStr(Chr(65 + CLng(Format(Now(), "MM")) - 1)) + CStr(Chr(47 + CLng (IIF (Day(Now()) >10, 7, 0)) + Day(Now()))) + CStr(Chr(65 + Hour(Now()))) + Format(Now(), "mmss") + Format(PrintedItems, "0000")
- 将年、月、小时转换为 A-Z 以节省空间。
- 将日期转换为 A-Z,0..7
- 将实际的标签份数用作 4 位计数器
将此表达式放入一个计算字段中,例如 clPackageID(数据类型为 Text)。如果您使用单独的标签份数,请按记录副本(Record Copy)进行计算。
8 位版本
使用 8 位时,我们可以去掉年份和秒数,并将序列部分限制为 3 位。
CStr(Chr(65 + CLng(Format(Now(), "MM")) - 1)) + CStr(Chr(47 + CLng (IIF (Day(Now()) >10, 7, 0)) + Day(Now()))) + CStr(Chr(65 + Hour(Now()))) + Format(Now(), "mm") + Format(PrintedItems, "000")
该自动生成的包裹 ID 由 5 位时间戳(月/日/小时/分钟)加上 3 位序号组成。这意味着单次作业中的商品/托盘数量限制为 999 个,且两次打印作业之间的最短时间间隔必须为 1 分钟。该包裹 ID 每年可能会重复。