通过菜单ACTION来控制单身栏位内容的编辑修改;

范例axmt500:

   DEFINE l_xmdcua012_bk  DYNAMIC ARRAY OF RECORD # ljr
xmdcua012 LIKE xmdc_t.xmdcua012
END RECORD
DEFINE l_i_2 INT # ljr
         #應用 a43 樣板自動產生(Version:)
ON ACTION action_modify_xmdcua012
LET g_action_choice="action_modify_xmdcua012"
IF cl_auth_chk_act("action_modify_xmdcua012") THEN #add-point:ON ACTION action_modify_xmdcua012 name="menu.action_modify_xmdcua012"
DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)
INPUT ARRAY g_xmdc_d FROM s_detail1.*
ATTRIBUTE(COUNT = g_rec_b,WITHOUT DEFAULTS, #MAXCOUNT = g_max_rec,
INSERT ROW = FALSE,
DELETE ROW = FALSE,
APPEND ROW = FALSE)
END INPUT BEFORE DIALOG
#在修改结算单价前,先把旧的结算单价备份,后面作对比判断哪行被更改了
CALL cl_set_comp_entry("xmdcua012",TRUE)
CALL cl_set_comp_entry("xmdc027,xmdcua007,xmdc001,xmdcud011,xmdc019,xmdc002,xmdc006",FALSE)
CALL cl_set_comp_entry("xmdcua009,xmdc007,xmdcud012,xmdcud013,xmdcud014,xmdcua010,xmdc008",FALSE)
CALL cl_set_comp_entry("xmdc009,xmdc024,xmdc012,xmdc013,xmdc045,xmdc016,xmdc017,xmdc010,xmdc011",FALSE)
CALL cl_set_comp_entry("xmdc015,xmdc046,xmdc047,xmdc048,xmdc023,xmdc020,xmdc021,xmdc022",FALSE)
CALL cl_set_comp_entry("xmdcunit,xmdcorga,xmdc052,xmdc049,xmdc053,xmdc050,xmdcsite,xmdc058",FALSE)
CALL cl_set_comp_entry("xmdc059,xmdc060,xmdc061,xmdcua001,xmdcua002,xmdcua003,xmdcua004,xmdcua005",FALSE)
CALL cl_set_comp_entry("xmdcua006,xmdcua011,l_pmao009,l_pmao010",FALSE) FOR l_i_2= TO g_xmdc_d.getLength()
LET l_xmdcua012_bk[l_i_2].xmdcua012 = g_xmdc_d[l_i_2].xmdcua012
END FOR ON ACTION accept
#判断结算单价是否已被修改,只处理已经被修改的行
FOR l_i_2= TO g_xmdc_d.getLength()
IF NOT cl_null(g_xmdc_d[l_i_2].xmdcseq) THEN
IF g_xmdc_d[l_i_2].xmdcua012 = l_xmdcua012_bk[l_i_2].xmdcua012 OR g_xmdc_d[l_i_2].xmdcua012 IS NULL THEN
CONTINUE FOR
ELSE
CALL axmt500_setPrice2_2(g_xmdc_d[l_i_2].xmdcseq,
g_xmdc_d[l_i_2].xmdc007,
g_xmdc_d[l_i_2].xmdcua012)
RETURNING g_xmdc_d[l_i_2].xmdcua013,g_xmdc_d[l_i_2].xmdcua014,
g_xmdc_d[l_i_2].xmdcua015,g_xmdc_d[l_i_2].xmdcua016
DISPLAY BY NAME g_xmdc_d[l_i_2].xmdcua013,g_xmdc_d[l_i_2].xmdcua014,
g_xmdc_d[l_i_2].xmdcua015,g_xmdc_d[l_i_2].xmdcua016
#更新结算单价修改者、修改时间
LET g_xmdc_d[l_i_2].xmdcua017 = g_user
LET g_xmdc_d[l_i_2].xmdcua018 = cl_get_current()
UPDATE xmdc_t SET xmdcua017=g_xmdc_d[l_i_2].xmdcua017,xmdcua018=g_xmdc_d[l_i_2].xmdcua018
WHERE xmdcent=g_enterprise AND xmdcsite=g_site AND xmdcdocno=g_xmda_m.xmdadocno AND xmdcseq=g_xmdc_d[l_i_2].xmdcseq
SELECT ooag011 INTO g_xmdc_d[l_i_2].xmdcua017_desc FROM ooag_t
WHERE ooagent=g_enterprise AND ooag001=g_xmdc_d[l_i_2].xmdcua017
DISPLAY BY NAME g_xmdc_d[l_i_2].xmdcua017,g_xmdc_d[l_i_2].xmdcua018,g_xmdc_d[l_i_2].xmdcua017_desc
END IF
END IF
END FOR ACCEPT DIALOG ON ACTION cancel #在dialog button (放棄) EXIT DIALOG ON ACTION close #在dialog 右上角 (X) EXIT DIALOG ON ACTION exit #toolbar 離開 EXIT DIALOG #交談指令共用ACTION
&include "common_action.4gl"
CONTINUE DIALOG END DIALOG
#END add-point END IF
PRIVATE FUNCTION axmt500_setPrice2_2(l_xmdcseq,l_xmdc007,l_xmdcua012)
#修改结算单价,根据新的结算单价计算结算金额等,更新、回传并显示 DEFINE l_xmdcseq LIKE xmdc_t.xmdcseq #单身项次
DEFINE l_xmdc001 LIKE xmdc_t.xmdc001 #单身料号
DEFINE l_xmdc007 LIKE xmdc_t.xmdc007 #单身数量
DEFINE l_xmdcua012 LIKE xmdc_t.xmdcua012 #单身结算单价 DEFINE l_xmdcua013 LIKE xmdc_t.xmdcua013 #回传参数,结算金额
DEFINE l_xmdcua014 LIKE xmdc_t.xmdcua014 #回传参数,结算未税单价
DEFINE l_xmdcua015 LIKE xmdc_t.xmdcua015 #回传参数,结算未税金额
DEFINE l_xmdcua016 LIKE xmdc_t.xmdcua016 #回传参数,结算税额 #判断订单的单价是否含税
#单价含税
IF g_xmda_m.xmda013 THEN
LET l_xmdcua013 = l_xmdcua012 * l_xmdc007
LET l_xmdcua014 = l_xmdcua012 / ( + g_xmda_m.xmda012 / )
LET l_xmdcua015 = l_xmdcua014 * l_xmdc007
LET l_xmdcua016 = l_xmdcua013 - l_xmdcua015
#单价不含税
ELSE
LET l_xmdcua013 = l_xmdcua012 * l_xmdc007
LET l_xmdcua014 = 0.00
LET l_xmdcua015 = 0.00
LET l_xmdcua016 = 0.00
END IF
#更新
UPDATE xmdc_t SET xmdcua012=l_xmdcua012,
xmdcua013=l_xmdcua013,
xmdcua014=l_xmdcua014,
xmdcua015=l_xmdcua015,
xmdcua016=l_xmdcua016
WHERE xmdcent=g_enterprise AND xmdcsite=g_site AND xmdcdocno=g_xmda_m.xmdadocno AND xmdcseq=l_xmdcseq
#返回值
RETURN l_xmdcua013,l_xmdcua014,l_xmdcua015,l_xmdcua016
END FUNCTION

T100——菜单action控制单身栏位的修改的更多相关文章

  1. 菜单ACTION控制栏位字段编辑,点击菜单ACTION才能编辑指定的栏位

    范例(axmt500): 目的,控制新增的栏位(价格清单2),需点击菜单栏“修改价格清单2”才能对相应的栏位进行编辑修改,并记录修改人.日期: 1)在规格上增加新ACTION——action_modi ...

  2. T100——修改单身栏位,开窗,当前行

    PRIVATE FUNCTION axmt500_update_xmdc028() ###更改出货库位 DEFINE l_i INT DEFINE l_index INT DIALOG ATTRIBU ...

  3. T100——作业action执行其他P作业,后台背景执行完后才能继续操作改作业

    范例:如axmt500订单,查询开单占用量: 客制作业cxmp500,通过参数-订单号,查询该订单下的料件,目前有库存量.开单占用量.库存可用量,查询后更新到该订单下的单身对应栏位: 现在axmt50 ...

  4. input 栏位光标末尾闪烁

    var input1 =window.document.getElementById("input1").createTextRange(); input1.collapse(fa ...

  5. 6 关于 Oracle NULL栏位和PL./SQL执行实验

    今日有针对NULL值有了相关实验. 对NULL 值插入的讨论. 1, PL/SQL 中可以执行插入''或者NULL 的操作, 前提是栏位允许为空. 2, 可以对NULL进行一系列数据库运算. 如:   ...

  6. ZZ_INEERNAL每个栏位的含义

    ZZ_INEERNAL包含10列,每列之间用,隔开 第一列:exception class,有KE/NE/JE/EE等 第二列:pid 第三列:tid 第四列:固定是99 第五列:固定是/data/c ...

  7. Linux显示各栏位的标题信息列

    Linux显示各栏位的标题信息列 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ who -H 名称 线路 时间 备注 youhaidong :0 2015-0 ...

  8. Rails Migration Data Model栏位修改及数据类型介绍

    测试版本Ruby:2.3.1   Rails:5.0.1 一.增加栏位       给devise默认的用户新增增加username字段 $ rails generate migration add_ ...

  9. SAP 销售条件表增强栏位

    有时遇到一个比较特殊的业务,比如公司间免费订单,既要让价格为0,不读取VK11里创建的价格, 又要让公司间的价格读取VK11,这实际上是有矛盾的,也就是说一个订单里面的两行,物料一样,客户一样,就会出 ...

随机推荐

  1. 预处理、const、static、sizeof-为什么inline能很好地取代表达式形式的预定义

    1:有如下几种原因: (1)inline定义的类的内联函数,函数的代码被放在符号表中,在使用时直接进行替换(像宏一样展开),没有了调用的开销,效率也很高. (2)类的内联函数也是一个真正的函数.编译器 ...

  2. Leetcode题目79.单词搜索(回溯+DFS-中等)

    题目描述: 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格.同一个单元格内的字母不允许 ...

  3. 如何使用SendGrid发送邮件

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  4. caps lock 映射成 esc,右Ctrl映射右移

    xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape' xmodmap -e 'clear Lock' -e 'keycode 105= Right'

  5. LeetCode 141. 环形链表(Linked List Cycle)

    题目描述 给定一个链表,判断链表中是否有环. 进阶:你能否不使用额外空间解决此题? 解题思路 快慢指针,慢指针一次走一步,快指针一次走两步,若两者相遇则说明有环,快指针无路可走则说明无环. 代码 /* ...

  6. mha之vip漂移 配置binlog-server备份服务器 Atlas

    MHAvip漂移 配置 通过MHA自带脚本方式,管理虚拟IP的漂移 获取管理脚本master_ip_failover cp master_ip_failover /usr/local/bin/ #脚本 ...

  7. LC 638. Shopping Offers

    In LeetCode Store, there are some kinds of items to sell. Each item has a price. However, there are ...

  8. substr 字符串截取

    <!DOCTYPE html> <html> <body> <?php echo substr("Hello world",0,10).& ...

  9. backbone之module

    上一篇列出了collection的代码,下面要把代码进行分离 //先是app.js var ContactManager = new Marionette.Application(); Contact ...

  10. Pro JavaScript List.11-11

    //为实现各种现代浏览器的requestAnimationFrame()方法,创建一段简单的跨浏览器保障代码(polyfill),以实现流畅.高效的动画.由保罗•艾里什(Paul Irish)编写,网 ...