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

范例(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. heartrbeat实现web服务器高可用

    今天的内容是用heartbeat实现web服务器高可用 一.简介: heartbeat的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行 ...

  2. JsonObject处理时间转换问题

    正常传时间的时候使用JsonObject转换的时候会把整个日期都转换成一个新的对象,而如何转换成传统的yyyy-MM-dd HH:mm:ss类型呢 常用的时间格式 private String for ...

  3. 网络流,设备、插头和转接器建图(简单map的应用)

    题意: 给你n个插座,m个设备,每台设备都有对应的插座,有k个转接器. 要求:求满足不能插上插座的用电器最少个数 solution: HINT:每种适配器都有无限个,所以建图的时候要改为INF. 答案 ...

  4. laravel如何从mysql数据库中随机抽取n条数据

    laravel如何从mysql数据库中随机抽取n条数据 一.总结 一句话总结: inRandomOrder():$userQuestions=UserQuestion::where($map)-> ...

  5. Qt学习之如何启动和终止一个线程

    先来给出每个文件的相关代码然后再加以分析 //*************dialog.h**************// #ifndef DIALOG_H #define DIALOG_H #incl ...

  6. JavaScript如何封装插件

    什么是封装呢? 我的理解就是 把一个功能单独做成一个组件,就像做饺子,以前做饺子必须自己先用面粉做饺子皮,再做饺子馅,然后再手工包饺子,但是现在人们发明了自动包饺子机器,虽然机器里面的每一步骤和你自己 ...

  7. HttpURLConnection 多线程下载

    影响下载的速度 * 宽带的带宽 * 服务器的限制 * 服务器的资源固定,开启的线程越多抢占的资源就越多 import java.io.InputStream; import java.io.Rando ...

  8. kettle在linux下面用于shell脚本执行:转换或者作业

    1 将windows下面创建好的转换,放到Linux某一个文件夹下面.如:把0816_em.ktr文件放到/home/cfj/kettle/testdemo下面. 注意里面的数据库用户名和密码可能需要 ...

  9. vue项目在(windowServer)nginx上的部署

    (一) 本地部署. 1.下载phpStudy (http://phpstudy.php.cn/) 2.安装到自己指定盘根目录的文件夹目录,安装完后会用到. 3.运行phpStusy可能报错,需要下载安 ...

  10. 【笔记】Docker入门

    这个文章讲的比较透彻,就不复制粘贴了 <Docker从入门到实践>阅读笔记 Docker安装 环境 root@fudonghai:~# uname -a Linux fudonghai - ...