• 单档——PK单号新增、修改时不允许编辑,PK单号自动生成


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

    范例(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
    

      

  • 相关阅读:
    (Bug修复)C#爬虫,让你不再觉得神秘
    C#高级特性(反射)
    Linux 宝塔部署 ASP.NET Core 应用
    WPF 的内部世界(Binding)
    渗透攻击红队内网靶场
    销量最优解
    遗传算法实现旅行商问题求解
    用java手写了个JSON解析&生成器
    Vue项目里面用a标签下载本地文件
    20192422李俊洁 实验六 Metasploit攻击渗透实践
  • 原文地址:https://www.cnblogs.com/xiaoli9627/p/6840149.html
Copyright © 2020-2023  润新知