ABAP WDA

ABAP WDA一、20181217-20181226笔记selection_options和alv 二、相关服务1、事务码:SICF默认SERVICE,执行。Service:default_host/sap/option/*default_host/sap/public/bc/*default_host/sap/bc/wdvddefault_host/sap/bc/webdynp…

大家好,又见面了,我是你们的朋友全栈君。

一、20181217-20181226笔记

selection_options和alv 

二、相关服务

1、

事务码:SICF

默认SERVICE,执行。

Service:
default_host/sap/option/*
default_host/sap/public/bc/*
default_host/sap/bc/wdvd
default_host/sap/bc/webdynpro/*

2

在应用WEBDYNPRO之前,首先要将你的APPLICATION SERVER中的FQDN配置好,也就是说您的WS必须是

Full Qualified Domain Name,如:hostname.companyname.com这种形式,任何以IP地址或者机器名称为命名

URL地址都不能正常访问WEBDYNPRO,因此在开始开发WEBDYNPRO之前,首先我们要和BASIS确认服务器是

Full Qualified Domain NameFQDN

三、界面、元素介绍

 

1.ELEMENTS:

   

Context上下文的参数

 

添加元素

添加单个元素

按上下文添加

展示文本

删除

 

 

BUTTON  按钮

     

      TRAY              可折叠块

INPUT_FIELD     (文本输入框)

LABEL           (说明文本)

TABLE            表控制

VIEW_CONTAINER_UIELEMENT 视图组建控制器(一般用来放ALVSELECT_OPTIONS或其他组建)

2.APPLICATION STRUC

http://qn.javajgs.com/20220712/c3b79fe9-da12-48ba-b8b7-b3a6df50c43220220712044fa406-abc2-466f-84ff-5a51a6ca9b0c1.jpg

 

3.架构说明

一般的程序框架如图:

1)组建控制器是定义的全局的组建,与视图相似,组建控制器是一个程序对外的部分,是整个程序最开始执行的环节 ,也是控制多个视图间数据交互的纽带,一般考虑到程序的扩展性会优先使用组件控制器,然后关联各视图。

2)组建接口是用来引入一些外部组建接口的。引入的组建接口可添加到相应的视图窗口中使用

3)视图是一个DYNPRO程序显示的部分,可有多个视图,视图见可跳转,每个视图中需要显示的字段结构表等信息需要单独定义在该视图的节点中(CONTEXT)注意:组建控制器中也可以添加节点,作为全局节点属性,如果将它与某视图中的节点进行MAPPING,则可以再视图结束后,程序没结束的时候保存节点属性。一般界面跳转如此做

4)窗口与视图相似,只是每个程序每次显示只能有一个单独的窗口,可定义多个窗口,窗口间跳转,与视图跳转相似,都是在Inbound Plugs(入站)和Outbound Plugs(出站)里做对应的绑定。

5)应用程序,单独的执行程序。

4.普通样例展示

http://qn.javajgs.com/20220712/ac3c995d-6610-44a6-98d9-5b73022aeb0d20220712755ca899-904f-4af3-a0e5-45566eaf38801.jpg

 

5.样例布局展示

http://qn.javajgs.com/20220712/8e079a90-1397-4604-b6b9-11be262e2dba20220712285d9f1e-9bab-4ada-a4e2-638f278f4b511.jpg

6.布局说明

一般是以TRAY为折叠区域划分设计屏幕,(此处为两个,1是查询条件,2是查询结果)

在某个区域中,可用GROUP来分组。(看个人习惯)

区域的Layout一般选择MatrixLayout (MatrixHeadData 行开头 MatrixData 紧接着 HEAD,没有新的HEAD,会一直往后排。新的HEAD,另起一行)

常用属性:

enabled        是否灰显,EDITABLE

readOnly     只显示

suggestValues  这个是值建议,就像淘宝输入 手机 会有手机壳,手机膜。。。

value               绑定的VALUE

visible             可见

width              占的宽度,或者比例 一般200250150TRAY 一般95%之类

EVENTS          事件,每种ELEMENT对应事件不同,有field的输入,按钮的事件。。。

cellDesign        单元格格式

colSpan           字段占列数,比如文本框,我们可以设置占5格等(前提是容器TRAY,CONTAINERCOL设置的够)

hAlign             格式

以上是些常用的属性。

 

7.视图的整体介绍

http://qn.javajgs.com/20220712/22c1e6fa-419b-473a-bca3-01d22f02c22e202207123bf755bf-02f2-49b3-bc87-089b97eeaeee1.jpg

Properties:VIEW的属性,一般引入一些控件,alvselect-option

Layout:视图布局,显示的样式,字段排版

Inbound Plugs:转入的连接(内向链接),一般视图跳转需要带些参数什么的,需要在这里定义plugs和参数相关信息

Outbound Plugs:转出的连接(外向链接),对Inbound对应,传出的连接和参数

Context:节点。视图使用的表,结构,全部放在这里。一般0-1/1-1/0-n三种。前两种相当于工作区,结构,后一种是内表。1-1时需要勾选Initialization Lead Selection

Attributes:视图属性,可在本视图的各方法中使用

Action一般是对应ELEMENT对应的EVENT产生的

Methods:方法

 

 

四、SELECT_OPTIONS

1、引入组件

WDR_SELECT_OPTIONS

2、组件加入视图

3、在layout中添加按钮和ViewContainerUIElement

只写ID即可

在视图的Attributes页签中,添加组件对象GD_HANDLE   typr ref to IF_WD_SELECT_OPTIONS.

 

 

 

初始化代码:

method WDDOINIT .
  DATA:LO_CP_USAGE  TYPE REF TO IF_WD_COMPONENT_USAGE,
       LO_SELECT_OP TYPE REF TO IWCI_WDR_SELECT_OPTIONS,
       LT_RANGE     TYPE REF TO DATA.

  “get the component usage
  LO_CP_USAGE WD_THIS->WD_CPUSE_SELECT_OPTION( ).
  IF LO_CP_USAGE->HAS_ACTIVE_COMPONENT( ) IS INITIAL.
    LO_CP_USAGE->CREATE_COMPONENT( ).
  ENDIF.
  “get the select option usage
  选择屏幕的引用
  LO_SELECT_OP WD_THIS->WD_CPIFC_SELECT_OPTION( ).

  “init the select option
  修改SELECT_OPTIONS
  WD_THIS->GD_HANDLE LO_SELECT_OP->INIT_SELECTION_SCREEN( ).
  设置全局信息
  WD_THIS->GD_HANDLE->SET_GLOBAL_OPTIONS(
                                        I_DISPLAY_BTN_CANCEL ABAP_FALSE
                                        I_DISPLAY_BTN_CHECK 
ABAP_FALSE
                                        I_DISPLAY_BTN_RESET 
ABAP_TRUE
                                        I_DISPLAY_BTN_EXECUTE 
ABAP_FALSE ).
  “CREATE ONE RANGE TABLE
*  LT_RANGE = WD_THIS->GGD_HANDLE->CREATE_RANGE_TABLE(  ).
DEFINE ADD_SELECT_OPTIONS.

  CALL METHOD WD_THIS->GD_HANDLE->CREATE_RANGE_TABLE
    
EXPORTING
      I_TYPENAME     &1
    RECEIVING
      RT_RANGE_TABLE 
LT_RANGE.   “RANGE_TABLE
  CALL METHOD WD_THIS->GD_HANDLE->ADD_SELECTION_FIELD
    
EXPORTING
      I_ID          &2     “ID
*     I_WITHIN_BLOCK        = MC_ID_MAIN_BLOCK
      I_DESCRIPTION &3    描述
*     I_IS_AUTO_DESCRIPTION = ABAP_TRUE
      IT_RESULT     LT_RANGE.   “RANGE_TABLE
*     I_OBLIGATORY  = ABAP_FALSE  “必输
*     I_COMPLEX_RESTRICTIONS       =
*     I_USE_COMPLEX_RESTRICTION    = ABAP_FALSE
*     I_NO_COMPLEX_RESTRICTIONS    = ABAP_FALSE
*     I_VALUE_HELP_TYPE     = IF_WD_VALUE_HELP_HANDLER=>CO_PREFIX_NONE
*     I_VALUE_HELP_ID       =
*     I_VALUE_HELP_MODE     =
*     I_VALUE_HELP_STRUCTURE       =
*     I_VALUE_HELP_STRUCTURE_FIELD =
*     I_HELP_REQUEST_HANDLER       =
*     I_LOWER_CASE  =
*     I_MEMORY_ID   =
*     I_NO_EXTENSION        = ABAP_FALSE
*     I_NO_INTERVALS        = ABAP_FALSE
*     I_AS_CHECKBOX = ABAP_FALSE
*     I_AS_DROPDOWN = ABAP_FALSE
*     IT_VALUE_SET  =
*     I_READ_ONLY   = ABAP_FALSE
*     I_DONT_CARE_VALUE     =
*     I_EXPLANATION =
*     I_TOOLTIP     =
*     I_IS_NULLABLE = ABAP_TRUE
*     I_FORMAT_PROPERTIES   =
*     I_SUGGEST_VALUES      =
*     I_SUGGEST_FILTER_METHOD      =
    .
END-OF-DEFINITION.

ADD_SELECT_OPTIONS ‘VBELN’ ‘S_VBELN’ ‘订单号’.
ADD_SELECT_OPTIONS ‘POSNR’ ‘S_POSNR’ ‘订单行项目’.
endmethod.

 

查询按钮(SEARCH事件)代码:

method ONACTIONSEARCH .
  字段搜索条件
  DATA lo_nd_search TYPE REF TO if_wd_context_node.
  DATA lo_el_search TYPE REF TO if_wd_context_element.
  DATA ls_search TYPE wd_this->element_search.
  展示TABLE
  DATA lo_nd_item TYPE REF TO if_wd_context_node.
  DATA lt_item TYPE wd_this->Elements_item.
  “SELECT OPTIONS条件
  DATA:RT_RANGE TYPE REF TO DATA.
  FIELD-SYMBOLS:<FS_VBELN> TYPE TABLE,
                <FS_POSNR> TYPE TABLE.
*
*
*
*
  得到字段搜索条件的填入值
  lo_nd_search wd_context->get_child_nodename wd_this->wdctx_search ).
  lo_el_search lo_nd_search->get_element(  ).
  IF lo_el_search IS INITIAL.
  ENDIF.
  lo_el_search->get_static_attributes(
    IMPORTING
      static_attributes ls_search ).

  获取TABLE内容
  lo_nd_item wd_context->get_child_nodename wd_this->wdctx_item ).
  SELECT
    *
    
FROM LIPS
    
INTO CORRESPONDING FIELDS OF TABLE lt_item
    
WHERE VBELN ls_searchVBELN
    
AND POSNR ls_searchPOSNR.

  获取SELECT OPTIONS条件的填入值
  DEFINE GET_RANGE.
  RT_RANGE WD_THIS->GD_HANDLE->GET_RANGE_TABLE_OF_SEL_FIELDI_ID &1 ).此处ID对应上面INIT中的ID
  ASSIGN RT_RANGE->TO &2.
  END-OF-DEFINITION.
  GET_RANGE ‘S_VBELN’ <FS_VBELN>.
  GET_RANGE ‘S_POSNR’ <FS_POSNR>.
  
  
获取TABLE内容
  SELECT
    *
    
FROM LIPS
    
INTO CORRESPONDING FIELDS OF TABLE lt_item
    
WHERE VBELN IN <FS_VBELN>
    
AND POSNR IN <FS_POSNR>.

  绑定table传入网页
  将以获取查询信息的内表lt_item绑到NODE中
  lo_nd_item->bind_tablenew_items lt_item SET_INITIAL_ELEMENTS ABAP_TRUE ).
  重要,默认是ABAP_TRUE,表示表格每次传值都会刷新ALV框体,
  如果为ABAP_FALSE,则表示每次查询的内容都会往框体里追加
endmethod.

 

清空按钮(CLEAR事件)代码:

method ONACTIONCLEAR .
  字段搜索条件
  DATA lo_nd_search TYPE REF TO if_wd_context_node.
  DATA lo_el_search TYPE REF TO if_wd_context_element.
  DATA ls_search TYPE wd_this->element_search.
  设置字段搜索条件的填入值
  lo_nd_search wd_context->get_child_nodename wd_this->wdctx_search ).
  lo_el_search lo_nd_search->get_element(  ).
  IF lo_el_search IS INITIAL.
  ENDIF.

  CLEAR ls_search.
  lo_el_search->SET_static_attributes( ).
endmethod.

 

4、嵌入SELECT OPTIONS视图

5、效果:

 

五、ALV组件的使用

1、引入组件

SALV_WD_TABLE

2、视图引入组件中集成的ALV对象

视图method页签中新建方法

WDDOMODIFYVIEW里加上 CALL METHOD ME->INIT_ALV.

或(WD_THIS->INIT_ALV)

不然不调用INIT_ALV( )方法

http://qn.javajgs.com/20220712/fb0efb08-2a4c-47d2-b407-a803f1ca92e920220712d67363a1-cb3e-4c83-963c-f4d7ac6672781.jpg

INIT_ALV方法加入到WDDOMODIFYVIEW

INIT_ALV( ).

INIT_ALV添加初始化代码:

METHOD INIT_ALV .

  DATALR_SALV_WD_TABLE_USAGE TYPE REF TO IF_WD_COMPONENT_USAGE.“①重要的下面要用
  DATALR_SALV_WD_TABLE TYPE REF TO IWCI_SALV_WD_TABLE.         “②重要的下面要用
  DATALR_CONFIG TYPE REF TO CL_SALV_WD_CONFIG_TABLE.“③重要的下面要用
  DATALR_TABLE_SETTINGS TYPE REF TO IF_SALV_WD_TABLE_SETTINGS.
  DATALR_COLUMN_SETTINGS TYPE REF TO IF_SALV_WD_COLUMN_SETTINGS,
        LR_COLUMN          TYPE REF TO CL_SALV_WD_COLUMN,
        LT_COLUMNS         TYPE SALV_WD_T_COLUMN_REF,
        LS_COLUMN          TYPE SALV_WD_S_COLUMN_REF,
        LR_COLUMN_HEADER   TYPE REF TO CL_SALV_WD_COLUMN_HEADER.
  DATAlr_function TYPE REF TO cl_salv_wd_function_std,
        lt_functions TYPE salv_wd_t_function_std_ref,
        ls_function  TYPE salv_wd_s_function_std_ref.

  实例LAV组件
  LR_SALV_WD_TABLE_USAGE WD_THIS->WD_CPUSE_ALV( ).    “①重要的 将ALV组件实例化
  IF LR_SALV_WD_TABLE_USAGE->HAS_ACTIVE_COMPONENT( ) IS INITIAL.
    LR_SALV_WD_TABLE_USAGE->CREATE_COMPONENT( ).
  ENDIF.

获取参考模型
  LR_SALV_WD_TABLE WD_THIS->WD_CPIFC_ALV( ).        “②重要的 将引用的ALV组件实例 复制
  给参数
  LR_CONFIG LR_SALV_WD_TABLE->GET_MODEL( ).     “③重要的  获取控制器的get_model方法,实现定制

  设置ui元素
  LR_COLUMN_SETTINGS ?= LR_CONFIG.
  LT_COLUMNS LR_COLUMN_SETTINGS->GET_COLUMNS( ).

  “ALV table 设置是否可以输入
  LR_TABLE_SETTINGS ?= LR_CONFIG.
  LR_TABLE_SETTINGS->SET_READ_ONLYABAP_FALSE ).

  设置ALV按钮
  LR_CONFIG->IF_SALV_WD_FUNCTION_SETTINGS~SET_ENABLEDABAP_TRUE ).
  LR_CONFIG->IF_SALV_WD_FUNCTION_SETTINGS~SET_VISIBLECL_WD_TOOLBAR=>E_VISIBLEVISIBLE ).
  LT_FUNCTIONS LR_CONFIG->IF_SALV_WD_FUNCTION_SETTINGS~GET_FUNCTIONS_STD( ).标准功能”GET_FUNCTIONS  “用户自定义功能
  LOOP AT LT_FUNCTIONS INTO LS_FUNCTION.
    lr_function LS_FUNCTIONR_FUNCTION.
    CASE LS_FUNCTIONID.
      WHEN  ‘SALV_WD_INPUT_DELETE’.
        隐藏按钮
        lr_function->set_visiblecl_wd_uielement=>e_visiblenone ).
    ENDCASE.
  ENDLOOP.
  设置ALV按钮排除
*  LR_CONFIG->IF_SALV_WD_FUNCTION_SETTINGS~DELETE_FUNCTION( ID = ‘SALV_WD_PDF’ ).
*  LR_CONFIG->IF_SALV_WD_FUNCTION_SETTINGS~DELETE_FUNCTION( ID = ‘SALV_WD_VIEW_LOAD’ ).
*  LR_CONFIG->IF_SALV_WD_FUNCTION_SETTINGS~DELETE_FUNCTION( ID = ‘SALV_WD_INPUT_APPEND_ROW’ ).
*  LR_CONFIG->IF_SALV_WD_FUNCTION_SETTINGS~DELETE_FUNCTION( ID = ‘SALV_WD_INPUT_INSERT_ROW’ ).
*  LR_CONFIG->IF_SALV_WD_FUNCTION_SETTINGS~DELETE_FUNCTION( ID = ‘SALV_WD_INPUT_DELETE’ ).
*  LR_CONFIG->IF_SALV_WD_FUNCTION_SETTINGS~DELETE_FUNCTION( ID = ‘SALV_WD_INPUT_CHECK’ ).

  “ALV TABLE 可显示行设置
  LR_CONFIG->IF_SALV_WD_TABLE_SETTINGS~SET_VISIBLE_ROW_COUNT’15’ ).

  选择模式(黄条)
  LR_CONFIG->IF_SALV_WD_TABLE_SETTINGS~SET_SELECTION_MODECL_WD_TABLE=>E_SELECTION_MODESINGLE_NO_LEAD ).

*  “获得单独字段
*  LR_COLUMN = LR_COLUMN_SETTINGS->GET_COLUMN( ‘POSNR’ ).

  LOOP AT LT_COLUMNS INTO LS_COLUMN.
    LR_COLUMN LS_COLUMNR_COLUMN.
    CASE LS_COLUMNID.
*      WHEN ‘VBELN’.
*        LS_COLUMN-R_COLUMN->DELETE_HEADER( ).
*        LR_COLUMN_HEADER = LS_COLUMN-R_COLUMN->CREATE_HEADER( ).
*        LR_COLUMN_HEADER->SET_TEXT( ‘交货单子’ ).
**        LS_COLUMN-R_COLUMN->SET_POSITION( 1 ).
*      WHEN ‘POSNR’.
*        LS_COLUMN-R_COLUMN->DELETE_HEADER( ).
*        LR_COLUMN_HEADER = LS_COLUMN-R_COLUMN->CREATE_HEADER( ).
*        LR_COLUMN_HEADER->SET_TEXT( ‘单子行项目’ ).
**        LS_COLUMN-R_COLUMN->SET_POSITION( 1 ).
      WHEN ‘ERNAM’.
        此处使用INPUT_FIELD 是为了展示前面设置的可编辑属性(默认都是text,不可编辑,所以有要编辑的列,需要这里设置一下)
        DATALR_INPUT_FIELD TYPE REF TO CL_SALV_WD_UIE_INPUT_FIELD.
        CREATE OBJECT LR_INPUT_FIELD
          
EXPORTING
            VALUE_FIELDNAME ‘ERNAM’.此ID要与COLUMN对应,或者用GET_COLUMNS,然后循环处理列属性
        LR_COLUMN->SET_CELL_EDITORLR_INPUT_FIELD ).
*      WHEN OTHERS.
*        LR_COLUMN = LS_COLUMN-R_COLUMN.
*        “隐藏字段
*        LR_COLUMN->SET_VISIBLE( CL_WD_UIELEMENT=>E_VISIBLE-NONE ).
**        LR_COLUMN->SET_VISIBLE( ’01’ ).
    ENDCASE.
  ENDLOOP.

  用宏来设置字段
  DEFINE SET_COLUMN.
    LR_COLUMN LR_COLUMN_SETTINGS->GET_COLUMN&1 ).
    LR_COLUMN->DELETE_HEADER( ).
    LR_COLUMN_HEADER LR_COLUMN->CREATE_HEADER( ).
    LR_COLUMN_HEADER->SET_TEXT&2 ).
    LS_COLUMNR_COLUMN->SET_POSITION&3 ).
    是否显示的字段
    LR_COLUMN->SET_VISIBLE&4 ).
    “VISIBILITY  ’99’
    “VISIBILITY_BLANK  ’00’
    “VISIBILITY_NONE  ’01’
    “VISIBILITY_VISIBLE  ’02’
  END-OF-DEFINITION.

  用宏来隐藏字段
  DEFINE SET_COLUMN_NONE.
    LR_COLUMN LR_COLUMN_SETTINGS->GET_COLUMN&1 ).
    排除不显示的字段
    LR_COLUMN->SET_VISIBLE’01’ ).
    “VISIBILITY  ’99’
    “VISIBILITY_BLANK  ’00’
    “VISIBILITY_NONE  ’01’
    “VISIBILITY_VISIBLE  ’02’
  END-OF-DEFINITION.

  SET_COLUMN_NONE ‘LGORT’.
  SET_COLUMN_NONE ‘CHARG’.
  SET_COLUMN_NONE ‘LICHN’.
  SET_COLUMN_NONE ‘KDMAT’.
  SET_COLUMN_NONE ‘PRODH’.
  SET_COLUMN_NONE ‘LFIMG’.
  SET_COLUMN_NONE ‘MEINS’.
  SET_COLUMN_NONE ‘VRKME’.
  SET_COLUMN_NONE ‘UMVKZ’.
  SET_COLUMN_NONE ‘UMVKN’.
  SET_COLUMN_NONE ‘NTGEW’.
  SET_COLUMN_NONE ‘BRGEW’.
  SET_COLUMN_NONE ‘GEWEI’.
  SET_COLUMN_NONE ‘VOLUM’.
  SET_COLUMN_NONE ‘VOLEH’.
  SET_COLUMN_NONE ‘VKGRP’.
  SET_COLUMN_NONE ‘SPART’.

*  LR_TABLE_SETTINGS->SET_VISIBLE_ROW_COUNT( ’10’ ).”设置可见行
*  LR_TABLE_SETTINGS->SET_ROW_SELECTABLE( ABAP_TRUE ).”设置行选择
*  LR_TABLE_SETTINGS->SET_WIDTH( ‘50%’ ).”设置ALV宽度
*  LR_TABLE_SETTINGS->SET_EDIT_MODE( IF_SALV_WD_C_TABLE_SETTINGS=>EDIT_MODE ).”设置编辑模式
**  LR_TABLE_SETTINGS->SET_EDIT_MODE( IF_SALV_WD_C_TABLE_SETTINGS=>EDIT_MODE_STANDARD ).”设置不可编辑模式
*  LR_TABLE_SETTINGS->SET_READ_ONLY( ABAP_FALSE ).”设置ALV整体不可编辑
*  LR_TABLE_SETTINGS->SET_SCROLLABLE_COL_COUNT( ’10’ ).”设置滚动条
*  LR_TABLE_SETTINGS->SET_ENABLED( ABAP_TRUE ) .”可处理的
*  LR_TABLE_SETTINGS->SET_EMPTY_TABLE_TEXT( ‘Empty’ ) .”设置空表时显示的文本
*  LR_TABLE_SETTINGS->SET_FIXED_TABLE_LAYOUT( ABAP_FALSE ).  “使列宽可自动调节
*  LR_TABLE_SETTINGS->SET_DISPLAY_EMPTY_ROWS( ABAP_FALSE ).  “不展示空表
ENDMETHOD.

 

讲节点参数传入ALV组件

用向导‘魔法棒’添加代码

 

删减无用代码:

 

 

 

 

3、控制器中创建组件、全局节点(之前在视图中创建,现在ALV需要绑定数据)

创建组件

可按结构或按下图

可复制MAIN中已创建的

4、在ALV组件中绑定数据到ALV

http://qn.javajgs.com/20220712/4066289e-a9e7-44f1-b217-7fa8194c55c620220712319620bd-3d54-484d-b8d1-2563faaed0001.jpg

绑定成功后,DATA变成双向箭头

在视图中,绑定ITEM节点到COMPONENTCONTROLLER的节点,同上

(注,如果ALV数据只在单个VIEW里使用可以在VIEW中,将ITEM节点绑定到ALVDATA节点)

5、ALV控制器创建,并在窗口中添加

为了程序效果,这里会将原有的TABLE保留,并将ALV放到TABLE下面

LAYOUT中创建ViewContainerUIElement容器,放在TABLE后面

 

 

 

激活测试

六、字段,表等visiable,enable,read_only控制

今天主要讲一下布局控制:(visiable,enable,read_only)

visiable:可见性,控制字段,组件,分组等是否现实在界面上。一般按条件来控制隐藏的可以在CONTEXT NODE里定义个属性,类型WDY_BOOLEAN

              然后再根据条件赋值X:可见  :不可见                  visiable使用的较少)

enable:功能性,控制字段,组件,分组等是否功能有效,字段灰色显示。一般用在全局的属性上,例如保存后,全局灰显。定义同上

read_only:最常见属性,控制字段是否可编辑。可控制字段,分组,表等等。。。一般的显示状态和编辑状态切换通过此属性来控制

                 (相对于displayOnlydisplayAsText之类的基本不用,read_only却常用)

(行可编辑,单元格可编辑,可在ITEM中加入READ_ONLY字段,控制对应字段的可编辑,然后在赋值时根据情况来给值)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157995.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • GoLand 2021.12.12激活[最新免费获取]

    (GoLand 2021.12.12激活)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html0BXA05X8YC-eyJsa…

    2022年3月30日
    42
  • 近日学习笔记:df -h和du -sh命令,查看linux版本,vbm管理工具,su命令,ssh服务升级技巧,source命令

    近日学习笔记:df -h和du -sh命令,查看linux版本,vbm管理工具,su命令,ssh服务升级技巧,source命令文章目录df -h和du -sh区别df -h查看整个系统中文件系统的使用情况du -sh *查看当前目录下各个文件及目录占用空间大小查看Linux系统版本的命令:VirtualBox管理工具Vboxmanagesu与 su -的区别echo $?ssh服务升级BBS-GO的安装 linux + 宝塔面板【进了解】宝塔界面+数据库+NGINX的安装source命令~目录和/目录的区别df -h和du -sh区别(du, disk usage,-s仅显示总计,-h自适应单位 )df -h查看整个系统中文

    2022年8月11日
    4
  • iphone4s6.1.3越狱_苹果4S越狱

    iphone4s6.1.3越狱_苹果4S越狱转自:http://hi.baidu.com/%E5%BA%AD%E5%89%8D%E9%97%B2%E6%AD%A5/blog/item/7ca7af387709dae53a87cef2.htmlCYDIA软件类dock2.0.2———————–强大的快捷程序软件装了你就不会卸载DOCK2.0.2上图说话?(这个软件需要激活)XX已经做好汉化附件下载,这里补充下DOCK下载cydia.xsellize.com源的,可以完美激活同步推1.02.5IPA软件—–

    2022年9月20日
    0
  • Zuul网关_vue动态路由和静态路由的区别

    Zuul网关_vue动态路由和静态路由的区别1.微服务架构所面临的问题?1)针对某个功能,客户端在微服务架构的情况下需要请求多个模块接口2)针对于身份认证、日志、流量控制等公共模块每个微服务都需要做一遍,不利于业务与非业务的拆分针对于这些问题,Zuul可完美解决,我们可用Zuul做:1)客户端只需要知道网关而不需要知道具体模块的地址,所有服务由网关对外提供2)身份认证类…

    2022年8月15日
    2
  • vi的撤销命令

    vi的撤销命令

    2021年10月22日
    284
  • Android的启动模式:singleTask与singleTop的使用

    Android的启动模式:singleTask与singleTop的使用最近有小伙伴询问Activity的启动模式是使用singleTask好还是singleTop好,在两种模式中纠结,所以今天就简单讲解一下两种模式的使用场景!Android的四种启动模式(网上一搜一堆哦)standard:默认模式,允许多实例singleTop:相比于standard,有新的启动请求时,只有在目标Activity处于当前栈顶时,才会调用onNewIntent()…

    2022年4月19日
    184

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号