范例(axmt500):

目的,控制新增的栏位(价格清单2),需点击菜单栏“修改价格清单2”才能对相应的栏位进行编辑修改,并记录修改人、日期;

1)在规格上增加新ACTION——action_modify_xmdaua012,修改价格清单2;并在azzi903上把ACTION添加到菜单栏;

2)在单头栏位开启设定中【 axmt500_set_entry(p_cmd)】对“价格清单2”栏位进行关闭,不允许编辑:

CALL cl_set_comp_entry("xmdaua012",FALSE) # by ljr

3)在单头栏位关闭设定中【 axmt500_set_no_entry(p_cmd)】对“价格清单2”栏位进行关闭, 不允许编辑:

 CALL cl_set_comp_entry("xmdaua012",FALSE) # by ljr

4)在ui_dialog中,ON ACTION action_modify_xmdaua012 下编辑程序:

         #應用 a43 樣板自動產生(Version:)
ON ACTION action_modify_xmdaua012
LET g_action_choice="action_modify_xmdaua012"
IF cl_auth_chk_act("action_modify_xmdaua012") THEN #add-point:ON ACTION action_modify_xmdaua012 name="menu.action_modify_xmdaua012"
# by ljr s DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)
INPUT g_xmda_m.xmdaua012 FROM xmdaua012 ATTRIBUTES(WITHOUT DEFAULTS) ON ACTION controlp INFIELD xmdaua012
INITIALIZE g_qryparam.* TO NULL
LET g_qryparam.state = 'i'
LET g_qryparam.reqry = FALSE
CALL cq_xmdtdoocno() #呼叫開窗
#DISPLAY g_qryparam.return1 TO xmdaua012 #顯示到畫面上
LET g_xmda_m.xmdaua012 = g_qryparam.return1
DISPLAY BY NAME g_xmda_m.xmdaua012 SELECT xmdtua001 INTO g_xmda_m.xmdaua012_desc FROM xmdt_t
WHERE xmdtdocno=g_xmda_m.xmdaua012
DISPLAY BY NAME g_xmda_m.xmdaua012_desc NEXT FIELD xmdaua012 #返回原欄位 END INPUT BEFORE DIALOG
CALL cl_set_comp_entry("xmdaua012",TRUE)
#重新導回資料到正確位置上
CALL DIALOG.setCurrentRow("s_detail1",g_idx_group.getValue("'1','2',"))
CALL DIALOG.setCurrentRow("s_detail2",g_idx_group.getValue("'3',"))
CALL DIALOG.setCurrentRow("s_detail3",g_idx_group.getValue("'4',"))
CALL DIALOG.setCurrentRow("s_detail4",g_idx_group.getValue("'5',"))
CALL DIALOG.setCurrentRow("s_detail5",g_idx_group.getValue("'6',"))
CALL DIALOG.setCurrentRow("s_detail6",g_idx_group.getValue("")) ON ACTION controlf
CALL cl_set_focus_form(ui.Interface.getRootNode()) RETURNING g_fld_name,g_frm_name
CALL cl_fldhelp(g_frm_name,g_fld_name,g_lang) ON ACTION controlr
CALL cl_show_req_fields() ON ACTION controls
IF g_header_hidden THEN
CALL gfrm_curr.setElementHidden("vb_master",)
CALL gfrm_curr.setElementImage("controls","small/arr-u.png")
LET g_header_hidden = #visible
ELSE
CALL gfrm_curr.setElementHidden("vb_master",)
CALL gfrm_curr.setElementImage("controls","small/arr-d.png")
LET g_header_hidden = #hidden
END IF ON ACTION accept
IF NOT cl_null(g_xmda_m.xmdaua012) THEN
INITIALIZE g_chkparam.* TO NULL
LET g_chkparam.arg1 = g_xmda_m.xmdaua012
IF cl_chk_exist("cv_xmdtdocno") THEN
LET g_xmda_m.xmdaua013 = g_user
LET g_xmda_m.xmdaua014 = cl_get_current()
UPDATE xmda_t SET xmdaua012=g_xmda_m.xmdaua012,
xmdaua013=g_xmda_m.xmdaua013,
xmdaua014=g_xmda_m.xmdaua014
WHERE xmdaent=g_enterprise AND xmdasite=g_site AND xmdadocno=g_xmda_m.xmdadocno
DISPLAY BY NAME g_xmda_m.xmdaua013,g_xmda_m.xmdaua014
SELECT ooag011 INTO g_xmda_m.xmdaua013_desc FROM ooag_t WHERE ooag001=g_xmda_m.xmdaua013
DISPLAY BY NAME g_xmda_m.xmdaua013_desc
END IF
END IF ACCEPT DIALOG ON ACTION cancel #在dialog button (放棄)
#add-point:input段cancel name="input.cancel" #end add-point
LET INT_FLAG = TRUE
LET g_detail_idx =
LET g_detail_idx2 =
#各個page指標
LET g_detail_idx_list[] =
LET g_detail_idx_list[] =
LET g_detail_idx_list[] =
LET g_detail_idx_list[] =
LET g_detail_idx_list[] =
LET g_detail_idx_list[] = CALL g_curr_diag.setCurrentRow("s_detail1",)
CALL g_curr_diag.setCurrentRow("s_detail2",)
CALL g_curr_diag.setCurrentRow("s_detail3",)
CALL g_curr_diag.setCurrentRow("s_detail4",)
CALL g_curr_diag.setCurrentRow("s_detail5",)
CALL g_curr_diag.setCurrentRow("s_detail6",) EXIT DIALOG ON ACTION close #在dialog 右上角 (X)
#add-point:input段close name="input.close" #end add-point
LET INT_FLAG = TRUE
EXIT DIALOG ON ACTION exit #toolbar 離開
#add-point:input段exit name="input.exit" #end add-point
LET INT_FLAG = TRUE
LET g_detail_idx =
LET g_detail_idx2 =
#各個page指標
LET g_detail_idx_list[] =
LET g_detail_idx_list[] =
LET g_detail_idx_list[] =
LET g_detail_idx_list[] =
LET g_detail_idx_list[] =
LET g_detail_idx_list[] = CALL g_curr_diag.setCurrentRow("s_detail1",)
CALL g_curr_diag.setCurrentRow("s_detail2",)
CALL g_curr_diag.setCurrentRow("s_detail3",)
CALL g_curr_diag.setCurrentRow("s_detail4",)
CALL g_curr_diag.setCurrentRow("s_detail5",)
CALL g_curr_diag.setCurrentRow("s_detail6",) EXIT DIALOG #交談指令共用ACTION
&include "common_action.4gl"
CONTINUE DIALOG
END DIALOG
# by ljr e
#END add-point END IF

这DIALOG段落内容可参考axmt500_input 下的axmt500.input.other 段落;

菜单ACTION控制栏位字段编辑,点击菜单ACTION才能编辑指定的栏位的更多相关文章

  1. 菜单和按钮-EasyUI Menu 菜单、EasyUI Linkbutton 链接按钮、EasyUI Menubutton 菜单按钮、EasyUI Splitbutton 分割按钮

    EasyUI Menu 菜单 通过 $.fn.menu.defaults 重写默认的 defaults. 菜单(Menu)通常用于上下文菜单.它是创建其他菜单组件(比如:menubutton.spli ...

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

    通过菜单ACTION来控制单身栏位内容的编辑修改: 范例axmt500: DEFINE l_xmdcua012_bk DYNAMIC ARRAY OF RECORD # ljr xmdcua012 L ...

  3. JavaScript网站设计实践(二)实现导航栏当前所选页面的菜单项高亮显示

    一.(一)中的代码还可以修改的地方. 在(一)中,如果是运行在服务器下,如apache等,可以把head和navigation的div抽取出来,放置在另一个html文件里,然后在页面中,include ...

  4. 雷林鹏分享:jQuery EasyUI 树形菜单 - 树形菜单拖放控制

    jQuery EasyUI 树形菜单 - 树形菜单拖放控制 当在一个应用中使用树(Tree)插件,拖拽(drag)和放置(drop)功能要求允许用户改变节点位置.启用拖拽(drag)和放置(drop) ...

  5. C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用心得

    在网上查了很多,发现没有讲述关于--C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用--的资料 自己研究了一个使用方法.下面来看看. 我有两个窗体:LOGINFRM,M ...

  6. (C)位字段(bit-field)

    位字段(bit-field) 在存储空间很宝贵的情况下,有可能需要将多个对象保存在一个机器字中,一种常用的方法是:使用类似于编译器符号表的单个二进制位标志集合,外部强加的数据格式(如设备接口等寄存器) ...

  7. 让你的Blend“编辑其他模板”菜单里出现你的Style

    原文:让你的Blend"编辑其他模板"菜单里出现你的Style 如图.. 昨天在做控件的时候遇到了一个新的要求,让美工可以在Blend里直接编辑自定义控件里子内容的模板.于是乎疯狂 ...

  8. union, enum, and struct, 以及结构填充和位字段实现。

    Table 4-9 Compiler storage of data objects by byte alignment Type Bytes Alignment char, bool, _Bool ...

  9. 20140321 sizeof 虚函数与虚函数表 静态数组空间 动态数组空间 位字段

    1.静态的数组空间char a[10];sizeof 不能用于1:函数类型 2:动态的数组空间new3:位字段 函数类型:int fun();sizeof(fun())计算的是返回类型的大小,并不是函 ...

随机推荐

  1. Python2.x 里解决中文编码的万能钥匙

    注意: Python2.x默认编码环境是ASCII,当和取回的数据编码格式不一致时,可能会造成乱码:我们可以指定保存内容的编码格式,一般情况下,我们可以在代码最上方添加 import sys relo ...

  2. InnoDB缓存---InnoDB Buffer Pool

    InnoDB Buffer Pool 定义 对于InnoDB存储引擎,不管用户数据还是系统数据都是以页的形式存储在表空间进行管理的,其实都是存储在磁盘上的. 当InnoDB处理客户端请求,需要读取某页 ...

  3. ElasticSearch3:RestAPI

    1.设置分片数和副本数 es7默认主分片数和主分片副本数都为1,通过 default_template 指定分片数 PUT http://192.168.8.101:9200/_template/de ...

  4. ci 框架中defined('BASEPATH') OR exit('No direct script access allowed');

    作用: OR 就是前面的是true时,就不走后面了. 加这个是为了防止不是从index.php访问到的控制器

  5. Oracle 报错 ORA-03290的处置

    MySql 的tuancate命令是直接truncate tableName,但在Oracle需要写成truncate table tableName,改正就好了. --END-- 2019.10.1 ...

  6. ViedoUtil获取视频的缩略图

    package com.jcf.utilsdemo; import android.graphics.Bitmap; import android.media.ThumbnailUtils; publ ...

  7. 数据分析 - seaborn 模块

    seaborn 模块 简述 对 matplotlib 模块进行了二次封装, 底层依旧使用还是 matplotlib 的, 但是在此基础上增加了很多的易用性模板, 更加方便使用 引用使用 import ...

  8. WPF 绑定集合 根据集合个数改变样式 INotifyCollectionChanged

    问题:当前ListBox Items 绑定 集合数据源ListA时候:ListA集合数据源中存在另外一个集合ListB,当更改或往ListB集合中添加数据的时候,通知改变? 实体类继承 INotify ...

  9. 如何使用QTP12 UFT做功能性测试(转载)

    首先,按照本博客的安装教程走的,右键管理员运行 接下来点击继续,这个界面只需要勾选到web即可 点击ok,开始运行 进入到主界面之后,file新建一个测试. 可以修改路径等等 点击create之后,出 ...

  10. ipmitool管理工具

    一.ipmitool简介 IPMI(Intelligent Platform Management Interface)智能平台管理接口 1.IPMI的核心是一个专用芯片/控制器(叫做服务器处理器或基 ...