T100——菜单action控制单身栏位的修改

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

范例axmt500:

   DEFINE l_xmdcua012_bk  DYNAMIC ARRAY OF RECORD #170701 ljr
          xmdcua012 LIKE xmdc_t.xmdcua012
          END RECORD
   DEFINE l_i_2 INT #170701 ljr
         #應用 a43 樣板自動產生(Version:4)
         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=1 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=1 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 / (1 + g_xmda_m.xmda012 / 100)
        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
时间: 2024-08-27 03:56:01

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

1.30 Java周末总结①控制显示多少位小数位②读txt和写txt模拟ATM数据库

1.30 Java周末总结①控制显示多少位小数位②读txt和写txt模拟ATM数据库 一.控制显示多少位小数位 有些时候小数位数太多了,想保留多少位小数,这里介绍一种利用四舍五入保留想要的小数位数Math.round四舍五入到整数位,所以把小数乘以整10或整百,在除以整10或整百,就得到想要的位数了 double a = 3.14159265359;double weishu = 5;double b = Math.pow(10,weishu);a = Math.round(a*b)/b; 二.

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

今日有针对NULL值有了相关实验. 对NULL 值插入的讨论. 1, PL/SQL 中可以执行插入''或者NULL 的操作, 前提是栏位允许为空. 2, 可以对NULL进行一系列数据库运算. 如: SELECT ROUND(TO_NUMBER(MAX(A.IN_STATION_TIME)-SYSDATE))*24 FROM SFISM4.R_WIP_TRACKING_T A WHERE A.IN_STATION_TIME IS NULL 总结: 相应TO_NUMBER(NULL)也是可行, MA

mysql简单的操作(关于栏位的新增,修改,删除)

-- mysql新增栏位,并添加注释 语法: alter tabel 表名 add column 新增字段名 类型(长度定义) comment '需要添加的注释内容' 例子:alter table tbl_user_report_sms add column rpProve VARCHAR(100) COMMENT'被举报人的归属省份' -- 删除栏位 语法: alter table 表名 drop 删除的字段名 例子:alter table tbl_user_report_sms DROP r

使用VBA自动填写考勤模板中的日期栏位

首先说明一下,公司每个月末都要求员工填写考勤信息,然后发了个模板,我觉得每次都要填写日期和星期几这样的信息比较繁琐,所以就想了一个偷懒的办法,而且对模板样式也做了一下变更,使其信息展示效率得到了提高. 简单来那就是使用Office中自带的VBA功能来对考勤模板中类似日期这样有规律可循的栏位进行自动化的填写. 如图所示 这样每次填写考勤记录的时候只需填写月度栏位的信息,然后点击模板做成按钮就可以实现日期和星期栏位信息的自动化填写啦. [模板下载] PS:至于我在Excel中的VBA代码是怎么写的可

ZZ_INEERNAL每个栏位的含义

ZZ_INEERNAL包含10列,每列之间用,隔开 第一列:exception class,有KE/NE/JE/EE等 第二列:pid 第三列:tid 第四列:固定是99 第五列:固定是/data/core 第六列:exception level,0: fatal, 1: exception, 2: warning, 3: reminding 第七列:exception type info string: 如果是NE,则这个栏位是signal名称,比如:SIGSEGV, KE则为空, SWT则为

SAP HU上面的'Obj.to Which HU Belongs'栏位初探

SAP HU上面的'Obj.to Which HU Belongs'栏位初探 HU02,创建一个新的HU, 保存之, HU03显示这个HU 189141203942, 其'obj.to Which HU belongs'字段值为0000565293. Se16 + VEKP表,根据HU号码拿到internal HU No. 根据internal HU no去表VEPO表里查, 这个表里,0000565293 表现为Delivery字段值,如上图. 实际上,该号码并不是一个真的交货单号,去LIKP

关于JFace中的右键菜单Action类,ActgionGroup类,MenuManager类

Action类,ActionGroup类,MenuManager类介绍 SWT中菜单是Mean类,在前面章节中已经介绍过Menu类的使用. 菜单项用MeauItem类来实现.但是在实际开发中,同一种功能会有多中表现形式, 例如:Eclipse中的"新建"功能,他会分别出现在主菜单,主工具栏,右键菜单里, 如果都是用MeanuItem来实现,就需要写三份代码,以后也要维护三份代码.当然也可以将时间处理 写成外部类来共享代码,但名称,图像以及一些其他的信息写成外部类来共享则不太方便. JF

【CefSharp】 禁用右键菜单 与 控制弹出窗口的方式

这周没什么时间,一开始就在忙一些CefSharp的事情,Win10的研究就放了下来,CefSharp的资料挺少的,但好在是开源的,可以我们便宜的折腾.因为两个的内容都不多,我就合成一篇文章啦. 这还里还要吐嘈一下WinForm,也可能是WPF玩的年头长了,觉得WinForm真TNND的难用呀,弄几个定义的控件,相当之麻烦. 回归正文. 一.禁用右键菜单 禁用右键菜单其实是很容易的.主就要是实现一个接口 IMenuHandler,这个接口有一个 OnBeforeContextMenu的方法,我们在

java,中双精度double控制保留两位小数,js控制两位小数

Java DecimalFormat dcmFmt = new DecimalFormat("0.00"); double db = 12333.353; System.out.println(dcmFmt.format(db)); JS <script type="text/javascript"> //保留两位小数 //功能:将浮点数四舍五入,取小数点后2位 function toDecimal(x) { var f = parseFloat(x);