由系统自动生成单号(日期+流水),用户新增、修改时不允许编辑单号;

范例(cxmt631):

1)在#单头栏位开启设定#中,即 cxmt631_set_entry(p_cmd)下:

   #add-point:Function前置處理 name="set_entry.pre_function"
{
#end add-point IF p_cmd = "a" THEN
CALL cl_set_comp_entry("xmabucdocno",TRUE)
#根據azzi850使用者身分開關特定欄位
IF NOT cl_null(g_no_entry) THEN
CALL cl_set_comp_entry(g_no_entry,TRUE)
END IF
#add-point:set_entry段欄位控制 name="set_entry.field_control"
} IF p_cmd = "a" THEN
CALL cl_set_comp_entry("xmabucdocno",FALSE)
#根據azzi850使用者身分開關特定欄位
IF NOT cl_null(g_no_entry) THEN
CALL cl_set_comp_entry(g_no_entry,TRUE)
END IF
#end add-point
END IF

a表示新增,  CALL cl_set_comp_entry("xmabucdocno",FALSE) 表示设定控件是否可输入;原先是true允许输入,被注释掉改为false;

2)在#单头栏位关闭设定#,即 cxmt631_set_no_entry(p_cmd)下(以下代码原本就有,非客制):

   IF p_cmd = 'u' AND g_chkey = 'N' THEN
CALL cl_set_comp_entry("xmabucdocno",FALSE)
#根據azzi850使用者身分開關特定欄位
IF NOT cl_null(g_no_entry) THEN
CALL cl_set_comp_entry(g_no_entry,FALSE)
END IF
#add-point:set_no_entry段欄位控制 name="set_no_entry.field_control" #end add-point
END IF

u表示修改;

r表示复制;

以上两个函数均为在cxmt631_input 中被调用;

3)在cxmt631_input  中,置入当新增时,调用自定义函数生成单号的指令:

            #add-point:input開始前 name="input.before.input"

            IF p_cmd = 'a' THEN
call cxmt631_test_xmabucdocno()
END IF #end add-point

  

4)自定义函数 cxmt631_test_xmabucdocno()

PRIVATE FUNCTION cxmt631_test_xmabucdocno()
DEFINE
l_slip LIKE type_t.chr30,
l_yy LIKE type_t.chr30,
l_date LIKE type_t.chr30,
l_chr LIKE type_t.chr30,
l_verno LIKE type_t.chr30,
l_sql string #LET l_slip = "cxm-"
LET l_yy = g_today USING 'YYYY'
let l_yy = g_today using 'mm'
LET l_yy = g_today USING 'dd'
LET l_date = g_today using 'yyyymmdd'
LET l_chr = l_date CLIPPED LET l_sql = "SELECT MAX(SUBSTR(xmabucdocno,LENGTH(xmabucdocno)-2,3)) ",
" FROM xmabuc_t ",
" WHERE SUBSTR(xmabucdocno,1,LENGTH(xmabucdocno)-3) = '",l_chr,"'"
PREPARE t101_pr2 FROM l_sql
EXECUTE t101_pr2 INTO l_verno IF cl_null(l_verno) THEN
LET g_xmabuc_m.xmabucdocno = l_chr,"001"
ELSE
LET l_verno = l_verno + 1
LET g_xmabuc_m.xmabucdocno = l_chr,l_verno USING '&&&'
END IF
END FUNCTION

  

单档——PK单号新增、修改时不允许编辑,PK单号自动生成的更多相关文章

  1. Devexpress 中如何写ASPxGridView新增修改时的数据验证

    //验证 protected void grid_Deptlist_RowValidating(object sender, DevExpress.Web.Data.ASPxDataValidatio ...

  2. OpenERP7.0中非admin帐号新增其它用户问题

    在OpenERP7.0中,通过admin新增了一个管理员帐号,然后登录管理员帐号,再新增其它用户时提示错误,系统提示对users没有create权限. 经测试了解,是因为安装了多公司模块后,在记录规则 ...

  3. 基于PHP和mysql的自动生成表单

    开发背景:公司要求管理系统能够由管理员在前台页面管理系统表单,能够对表单进行增删改查基本操作,表单的各个字段都可以被修改.删除,可以添加新的字段,并且不影响系统正常运行,前台表单展示要由系统自动处理, ...

  4. 疯狂的表单-html5新增表单元素和属性

    疯狂的表单 2015/11/27 16:44:07 从三方面来介绍html5表单的新特性 表单结构更灵活 要提交数据的控件可以布局在form标签之外,看下面的代码,表单元素可以写到form元素之外,只 ...

  5. Laravel小项目之第4节 Laravel-通过表单实现新增及操作状态提示功能

    第4节 Laravel-通过表单实现新增及操作状态提示功能 4.1 显示新增表单视图 4.2 通过模型实现新增 4.3 操作状态提示 4.1 显示新增表单视图 修改边栏的链接 \resources\v ...

  6. 单节点下多个Tomcat服务器并存的端口号配置

    一个服务器节点同时安装多个tomcat服务器时,如果仅仅修改访问端口号则会提示端口冲突启动失败,还需要修改另外端口号解决,一共需要修改3处地方,修改如下: 编辑配置文件:server.xml 1.首先 ...

  7. centos 7 下进入单用户模式修改root密码

    centos7进入单用户模式修改root用户密码 在工作中可能会遇到root密码忘记,那么这里就要进入单用户模式下了. 在重启电脑之后 时间:2015-05-13 10:42来源:blog.51cto ...

  8. salesforce 零基础学习(六十九)当新增/修改一条记录以后发生了什么(适合初学者)

    salesforce开发中,我们会对object进行很多的操作,比如对object设置字段的必填性唯一性等,设置validation rule实现一下相关的字段的逻辑校验,设置workflow实现某个 ...

  9. SpringMVC中使用bean来接收form表单提交的参数时的注意点

    这是前辈们对于SpringMVC接收表单数据记录下来的总结经验: SpringMVC接收页面表单参数 springmvc请求参数获取的几种方法 下面是我自己在使用时发现的,前辈们没有记录的细节和注意点 ...

随机推荐

  1. Spring Cloud Eureka(四):Eureka 配置参数说明

    Eureka Client 配置项(eureka.client.*) org.springframework.cloud.netflix.eureka.EurekaClientConfigBean 参 ...

  2. Java线程间如何通信(五)

    1.简述 线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能称为一个整体. 使线程之间进行通信后,在大大提高CPU利用率的同时还会使开发人员对各个线程任务在处理的过程中进行有效的把控. ...

  3. [Alg] 二叉树的非递归遍历

    1. 非递归遍历二叉树算法 (使用stack) 以非递归方式对二叉树进行遍历的算法需要借助一个栈来存放访问过得节点. (1) 前序遍历 从整棵树的根节点开始,对于任意节点V,访问节点V并将节点V入栈, ...

  4. mysql:unknown variable 'default-character-set=utf8'

    1.修改my.cnf后,执行 service mysql restart 重启数据库失败 service mysql restart Shutting down MySQL.. SUCCESS! St ...

  5. Java写入的常用技巧(二)

    在一般从流接收数据写入介质的场景中,大部分存在每批次数据较小,导致小文件较多的问题. 一般考虑设置一个缓冲池,将多个批次的数据先缓冲进去,达到一定大小,再一次性批量写入 //公共缓冲池和缓冲池大小,如 ...

  6. Consider defining a bean of type `xxx` in your configuration问题解决

    在使用SpringBoot装配mybatis时出现了异常 *************************** APPLICATION FAILED TO START *************** ...

  7. jetbrains 2019 激活 error 1653219 解决办法

    我以前用PyCharm按照http://idea.lanyus.com/上的激活码直接可激活. 后来用到IDEA(最新版)了之后激活报错.错误代码为1653219. 后参考博客 解决办法: 把host ...

  8. httpClinent工具类

    package com.juchn.gateway.common.utils; import java.io.BufferedReader; import java.io.IOException; i ...

  9. Python写的大小写转换小工具

    几行代码的小工具,用于进行如下转换 TRANSACTIONS ON CLOUD COMPUTING => Transactions On Cloud Computing orig = 'TRAN ...

  10. Kafka API使用