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

范例(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. Robot Framework(七)创建用户关键字

    2.6创建用户关键字 关键字表用于通过将现有关键字组合在一起来创建新的更高级别关键字.这些关键字称为用户关键字,以区别于 测试库中实现的最低级库关键字.创建用户关键字的语法与创建测试用例的语法非常接近 ...

  2. UVA 1393 Highways,UVA 12075 Counting Triangles —— (组合数,dp)

    先看第一题,有n*m个点,求在这些点中,有多少条直线,经过了至少两点,且不是水平的也不是竖直的. 分析:由于对称性,我们只要求一个方向的线即可.该题分成两个过程,第一个过程是求出n*m的矩形中,dp[ ...

  3. centos 安装mariadb 替代mysql

    yum install mariadb-server mariadb systemctl start mariadbmysql -uroot -p默认密码mysql -uroot -pmysql_se ...

  4. 【软件工程】Beta冲刺(2/5)

    链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 新增修改用户信息.任务完成反馈等功能API 服务器后端部署,API接口的bet ...

  5. Docker的镜像制作与整套项目一键打包部署

    Dockerfile常用指令介绍 指令 描述 FROM 构建的新镜像是基于哪个镜像.例如:FROM centos:6 MAINTAINER 镜像维护者姓名或邮箱地址.例如:MAINTAINER Mr. ...

  6. LC 641. Design Circular Deque

    Design your implementation of the circular double-ended queue (deque). Your implementation should su ...

  7. C# 程序的关闭 讲究解释

    程序的关闭是很讲究的,处理的不好的话,将软件连续开启和关闭,当数次后在启动软件后程序会崩溃.或者程序退出很慢.细节决定成败,一款好的软件应该从各方面都要做严格地反复地推敲,力争做到无可挑剔.    有 ...

  8. Selenium 2自动化测试实战32(Fixtures)

    Fixtures fixtures可以形象地把它看作是夹心饼干外层的两片饼干,这两片饼干就是setUp/tearDown,中间的心就是测试用例.除此之外,unittest还提供了更大范围的fixtur ...

  9. MATLAB学习(一)数组、变量、表达式、常用简单运算

    >> x=[1 2 3;4 5 6;7 8 9] x = 1 2 3 4 5 6 7 8 9 >> y=[1,2,3] y = 1 2 3 >> y=[1,2,3 ...

  10. 什么是MapReduce?

    [学习笔记] 什么是MapReduce?马 克-to-win @ 马克java社区:1)MapReduce是面向大数据并行程序设计的模型和方法,这一点很像我们前面讲的MVC,MVC解决动态网站问题而 ...