流水号

可变数据软件如何实现流水号循环打印

谁都会走 提交于 2020-03-24 10:46:13
3 月,跳不动了?>>> 我们使用 中琅可变数据软件 打印的时候,有时候会遇到数据呈循环流水变化,如001,002,003,004;001,002,003,004……。我们知道使用中琅 可变数据软件 打印 流水号 很简单,但是如何实现流水号 循环打印 呢,其实也很简单,使用中琅可变数据打印软件中的 脚本编程 功能就可以实现。 1.打开 中琅可变数据软件 ,在文档设置中根据实际纸张设置纸张尺寸和标签尺寸。 2.在新建的标签中绘制一个普通文本,双击这个普通文本,在图形属性-数据源中点击“编辑”按钮,数据类型选择“序列生成”,开始字符串设置为0。 ​ 3.点击右边的“+”,添加一个“ 脚本编程 ”的数据处理方法,在下面的输入框中将最后一个语句改为“strReturn = strReturn%4 + 1;”(这个语句可以实现循环生成1.0到4.0)。 4.点击右边的“+”,添加一个“丢弃”的数据处理方法,丢弃右边的两位。 5.点击右边的“+”,添加一个“补齐”的数据处理方法,补齐3位。 6.点击软件顶部的“打印设置”按钮,设置好数据量,点击结束页码后面的“尾页”,然后先点击下面的“浏览”按钮,查看批量生成效果,确认无误之后再进行打印。 以上就是 中琅可变数据软件 中实现 流水号循环打印 的全部过程,有需要的小伙伴们可以按照上面的步骤操作试一下。 来源: oschina 链接: https:

单据号生成

梦想的初衷 提交于 2020-03-20 08:08:31
熟悉仓库管理系统的人会比较清楚,系统中统有各种各样的单据,如补货单 、进货单、出库单等等。在这里,我们先介绍一种单据编码定义规则: [ 仓库编码 ][ 单据类型 ][YYMMDD][4 位流水号 ] 如: 0101JH1202030001 : 仓库编码: 0101 单据类型: JH( 进货 ) 生成日期: 120203 (12 年 02 月 03 日 ) 四位流水: 0001 上述规则是一种比较简单的编码方式,要注意的是上述的流水号在仓库、单据和日期之间不共享,即是说不同的仓库、不同的单据每天的流水号都是从 1 开始。 首先,我们采用一个表 NoType ,用来记录系统中的各种单据类型。 序号 列名 数据类型 长度 主键 允许空 默认值 说明 1 NoType varchar 10 是 否 单据类型 2 NoTypeName nvarchar 50 否 单据名称 然后,我们使用另一个表 NoGenerate 来记录每个仓库每种单据当日的最后生成的流水号。 序号 列名 数据类型 长度 主键 允许空 默认值 说明 1 Date nchar 10 是 否 日期 2 NoType varchar 10 是 否 类型 3 HouseCode varchar 20 是 否 库房编号 4 LatestNo int 4 是 否 ((1)) 最后流水号 使用 Update 更新方式 CREATE

物联网架构成长之路(35)-利用Netty解析物联网自定义协议

ぐ巨炮叔叔 提交于 2020-02-14 17:58:44
一、前言   前面博客大部分介绍了基于EMQ中间件,通信协议使用的是MQTT,而传输的数据为纯文本数据,采用JSON格式。这种方式,大部分一看就知道是熟悉Web开发、软件开发的人喜欢用的方式。由于我也是做web软件开发的,也是比较喜欢这种方式。阿里的物联网平台,也是推荐这种方式。但是,但是做惯硬件开发,嵌入式开发就比较喜欢用裸TCP-Socket连接。采用的是二进制协议。基于此大部分应用场合为了兼容旧设备,就需要单独开发一个TCP服务器的网关。这里使用以前学过的,也是比较流行的Netty框架。   话不多说,下面就开始了。 二、协议 定义 描述 启动符‘@@’ (2字节) 数据包的第1、2字节,为固定值 64,64。 控制单元 业务流水号 (2字节) 数据包的第3、4字节。发送/确认模式下,业务流水号由发送端在发送新的数据包时按顺序加一,确认方按发送包的业务流水号返回;请求/应答模式下,业务流水号由请求端在发送新的请求命令时按顺序加一,应答方按请求包的业务流水号返回。低字节传输在前。业务流水号是一个2字节的正整数,由通信双方第一次建立网络连接时确定,初始值为0。业务流水号由业务发起方(业务发起方指发送/确认模式下的发送端或者请求/应答模式下的请求端)独立管理。业务发起方负责业务流水号的分配和回收,保证在业务存续期间业务流水号的唯一性。 协议版本号 (2字节) 协议版本号包含主版本号

SAP-ABAP程序开发规范

浪尽此生 提交于 2020-02-13 10:31:09
SAP--ABAP程序开发规范 1 范围 本标准规定了SAP S/4 系统程序开发过程中术语定义、命名规则、程序结构、测试方法和请求管理。 本标准适用于SAP S/4 系统的ABAP语言开发的程序。 2 规范性引用文件 下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。 GB/T 1.1-2000《标准化工作导则 第1部分:标准的结构和编写规则》 3 术语和定义 3.1 SAP SAP来自于Systems Applications and Products in Data Processing,它是德国思爱普公司的英文名称。 3.2 SAP S/4 SAP S/4 是一个基于客户/服务机结构的开放、集成的企业资源计划系统(Enterprise Resource Planning,简称:ERP)软件,其功能涵盖企业的财务管理、后勤管理(含采购、库存、生产、销售、设备、项目、质量等模块)和人力资源管理等各个方面。SAP S/4 软件由德国SAP公司所研创,其R 指实时(realtime), 而3表示S/4 系统是三层架构:数据库、应用服务器、展现层。 3.3 ABAP ABAP是一种高级商务应用编程语言(Advanced Business Application

JAVA中list集合去重

可紊 提交于 2020-01-03 22:50:18
场景:修改商品状态 是这样的有两张表,一张是主表,一张是子表,根据SAP传递的流水号和批次号,更新状态.因为主表中的流水号,对应多件商品的批次号,所以更新批次号的时候也需要更新主表中的商品总状态,因约定过,同一批商品的状态必须一致,所以不考虑不同状态,更新主表问题.我是先操作更新了子表中的商品状态,然后再更新主表状态,更新子表根据批次号,更新主表根据流水号,这样正常操作下,一起更新实际上也没什么问题,无奈旁边坐一个大佬,看了一眼就说,你这样重复更新没有任何意义,因为调你的SAP方发送是根据子表的批次号给你状态的,但是每一个信息都附加一个主表的流水号,这样流水号重复了,你放到同一个循环中更新就重复更新主表状态了,这样会对数据库造成压力,所以你看看优化一下,先给主表去重,然后在更新.然后我就问了一个非常低级的问题,list集合怎么去重…然后大佬说,唉,用set啊,你这问题问的. 然后就给我写了段代码,以下是自己测试写的main方法 public static void main(String[] args) { List<String> list=Lists.newArrayList(); list.add("1"); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("4"); list.add(

sap abap 流水号设置

☆樱花仙子☆ 提交于 2019-12-24 11:10:00
1.TCODE:SNRO,进入如图所示界面 2.   短文本和长文本用来说明这个编号范围对象,输入任意描述即可。   子对象数据元素我们这里不填。这里需要说明一下,所谓子对象,多数指一个组织结构,比如公司代码、销售组织、工厂等,这样编号就在对应的每个组织下面独立编号,最典型的例子是财务凭证,每个公司代码下的财务凭证都是独立编号的(其对应的数据表 BKPF,也必定把公司代码做为一个键字段)。而我们这个调度单对应于销售订单,销售订单没有按照组织级别分别编号,因此相应的调度单也就不需要了。 到期年标记是指编号按年度归零,每当开始一个新年度时,相应的编号也需要从头开始,比如财务凭证和物料凭证都是这样(比如表BKPF 和MKPF,都把年度做为一个键字段) ,而我们的调度单不需要对应年度,因此这里也不打勾。   编号长度域就填创建的域,但是一定要先激活。指定这个编号范围对象 YLBPP001的长度,我们定义域长度为 10,因此这个编号范围对象生成的编号长度也是 10 位。 无滚动是指如果编号达到最大,是否自动从头开始,勾上就不从头开始,而在获取编号的时候提示出错。我们这里应该打勾。    编号范围处理,属于翻译问题,实际就是编号范围的事务码,如果指定这个事务码,就可以不需要通过 SNUM 或者 SNRO 的主屏幕然后输入编号范围对象的名字来维护这个编号范围

postman(五):在不同接口之间传递数据

匿名 (未验证) 提交于 2019-12-02 23:04:42
为了更灵活地构造请求以及处理响应数据,postman提供了Pre-request-Script和Tests,在这两个标签中可以编写js代码辅助测试。之前学习了在发送请求的Tests标签如何添加断言以及postman中的环境变量,有了上述基础后,就可以继续学习如何在不同接口之间传递参数了,这一篇就主要说一说如何在Pre-request-Script和Tests标签中添加合适的脚本提取我们需要的数据。 收到response之后,可以在Tests标签中编写脚本,处理返回的数据 想象如下场景:假如测试2个接口,接口A负责生成地址信息,且返回一个地址流水号;接口B负责删除地址信息,且就是根据地址流水号还来删除,而且删除后,该地址流水号就无法再次使用了。 这样的话我们在测试接口B时,每次都要提前准备一条可用的地址流水号,而且如果更换测试环境,就得重新造数据,用起来非常不方便。 基于此,可以考虑每次在测试接口B之前,都先调用接口A来生成一条地址流水号,然后把数据传给B,这样即使是更换数据库也能够灵活进行测试了,不需要再提前准备数据。 首先该请求的响应内容如下,为响应为json格式的字符串 在Tests标签中编写如下脚本 var JsonData = JSON.parse(responseBody); //定义一个变量,并且将请求返回的内容赋给该变量 pm.environment.set(

订单流水号(唯一编号)的生成

匿名 (未验证) 提交于 2019-12-02 22:10:10
(1)通过存储过程方式生成(以Oracle为例) Create Or Replace Procedure MyProcedure { CV_1 OUT NVARCHAR2 } AS BEGIN DECLARE V_CURRENTCODE NVARCHAR2(100) BEGIN SELECT MAX([编码字段名]) INTO V_CURRENTCODE FROM [表名]; IF substr(V_CURRENTCODE,8) = to_char(sysdate,'yyyymmdd') THEN SELECT CAST( CAST(nvl(Max(substr([编码字段名] , 0 ,8)),0) AS nvarchar2(30)) || CAST(nvl(Max(substr([编码字段名] , 9 ,4)),0) AS nvarchar2(30)) AS INT)+1 AS [编码字段名] INTO CV_1 FROM [表名] dbms_output.put_line(CV_1); ELSE SELECT DISTINCT(to_char(sysdate,'yyyymmdd')|| '0001') as [编码字段名] into CV_1 from dual ; dbms_output.put_line(CV_1); END IF; END;

Redis实现生成自增流水号

匿名 (未验证) 提交于 2019-12-02 21:53:52
@Override public String generate(String bizCode) { //** 获取今天的日期:yyyyMMdd *//* String date = com.i2p.util.DateUtils.getCurentDate(); String key = "serial.number:" + date; //** 自增 *//* long sequence = this.incr(key); String seq = SequenceUtils.getSequence(sequence); StringBuilder sb = new StringBuilder(); sb.append(bizCode).append(seq); String serial = sb.toString(); return serial; } package com.i2p.util; public class SequenceUtils { static final int DEFAULT_LENGTH = 4; public static String getSequence(long seq) { String str = String.valueOf(seq); int len = str.length(); if (len >= DEFAULT

54.查表法按日期生成流水号的案例

ε祈祈猫儿з 提交于 2019-11-29 05:41:17
--以下代码生成的编号长度为12,前6位为日期信息,格式为YYMMDD,后6位为流水号。 --创建得到当前日期的视图 CREATE VIEW v_GetDate AS SELECT dt=CONVERT(CHAR(6),GETDATE(),12) GO --得到新编号的函数 CREATE FUNCTION f_NextBH() RETURNS char(12) AS BEGIN DECLARE @dt CHAR(6) SELECT @dt=dt FROM v_GetDate RETURN( SELECT @dt+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6) FROM tb WITH(XLOCK,PAGLOCK) WHERE BH like @dt+'%') END GO --在表中应用函数 CREATE TABLE tb( BH char(12) PRIMARY KEY DEFAULT dbo.f_NextBH(), col int) --插入资料 INSERT tb(col) VALUES(1) INSERT tb(col) VALUES(2) INSERT tb(col) VALUES(3) DELETE tb WHERE col=3 INSERT tb(col) VALUES(4) INSERT tb(BH,col) VALUES