T100——菜单action控制单身栏位的修改
通过菜单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控制单身栏位的修改的更多相关文章
- 菜单ACTION控制栏位字段编辑,点击菜单ACTION才能编辑指定的栏位
范例(axmt500): 目的,控制新增的栏位(价格清单2),需点击菜单栏“修改价格清单2”才能对相应的栏位进行编辑修改,并记录修改人.日期: 1)在规格上增加新ACTION——action_modi ...
- T100——修改单身栏位,开窗,当前行
PRIVATE FUNCTION axmt500_update_xmdc028() ###更改出货库位 DEFINE l_i INT DEFINE l_index INT DIALOG ATTRIBU ...
- T100——作业action执行其他P作业,后台背景执行完后才能继续操作改作业
范例:如axmt500订单,查询开单占用量: 客制作业cxmp500,通过参数-订单号,查询该订单下的料件,目前有库存量.开单占用量.库存可用量,查询后更新到该订单下的单身对应栏位: 现在axmt50 ...
- input 栏位光标末尾闪烁
var input1 =window.document.getElementById("input1").createTextRange(); input1.collapse(fa ...
- 6 关于 Oracle NULL栏位和PL./SQL执行实验
今日有针对NULL值有了相关实验. 对NULL 值插入的讨论. 1, PL/SQL 中可以执行插入''或者NULL 的操作, 前提是栏位允许为空. 2, 可以对NULL进行一系列数据库运算. 如: ...
- ZZ_INEERNAL每个栏位的含义
ZZ_INEERNAL包含10列,每列之间用,隔开 第一列:exception class,有KE/NE/JE/EE等 第二列:pid 第三列:tid 第四列:固定是99 第五列:固定是/data/c ...
- Linux显示各栏位的标题信息列
Linux显示各栏位的标题信息列 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ who -H 名称 线路 时间 备注 youhaidong :0 2015-0 ...
- Rails Migration Data Model栏位修改及数据类型介绍
测试版本Ruby:2.3.1 Rails:5.0.1 一.增加栏位 给devise默认的用户新增增加username字段 $ rails generate migration add_ ...
- SAP 销售条件表增强栏位
有时遇到一个比较特殊的业务,比如公司间免费订单,既要让价格为0,不读取VK11里创建的价格, 又要让公司间的价格读取VK11,这实际上是有矛盾的,也就是说一个订单里面的两行,物料一样,客户一样,就会出 ...
随机推荐
- epoll反应堆
/* * epoll基于非阻塞I/O事件驱动 */ #include <stdio.h> #include <sys/socket.h> #include <sys/ep ...
- Windows环境安装MySQL8.0.11
网络开发数据库是必不可少的.曾经安装个Mysql,但是忘了.再次安装还是得百度.那还不如自己写篇博客记录一下呢,以后再忘记就看自己的博客好 Mysql官网安装地址(windows环境): https: ...
- 【软件工程】Beta冲刺(4/5)
链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 新增数据分析展示等功能API 服务器后端部署,API接口的beta版实现 展示 ...
- R语言:各类型数据文件的导入
导入csv: read.csv() 导入txt: read.table() 注意,txt文件编码为unicode的导入r会报错,需转换成ANSI 读入excel:需要安装xlsx包,安装此包前先下载好 ...
- 框架 | Spring面试题总结
1.什么是Spring? Spring是一个开源的Java EE开发框架.Spring框架的核心功能可以应用在任何Java应用程序中,但对Java EE平台上的Web应用程序有更好的扩展性.Sprin ...
- mysql数据库指定ip远程访问
1.登录 mysql -u root -p 之后输入密码进行登陆 2.权限设置及说明 2.1添加远程ip访问权限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192. ...
- Oracle CDC (Change Data Capture)更新数据捕获——Asynchronous HotLog Mode(附带简单的kettle任务实现数据同步)
Performing Asynchronous HotLog Publishing Step 1 Source Database DBA: Set the database initializat ...
- vlc的流输出功能
vlc的流输出功能 流输出功能,可以将vlc读取到的流,输出到文件或者通过网络发送,客户端可以使用http.rtp.rtsp等协议访问,还可以进行转码等操作. 参考http://wiki.videol ...
- Linux命令集锦:scp命令
scp命令用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的,可能会稍微影响一下速度.当你服务器硬盘变为只读 read on ...
- spring-cloud-starter-stream-rocketmq 坑点j记录