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://javaforall.cn/synimg/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://javaforall.cn/synimg/ac3c995d-6610-44a6-98d9-5b73022aeb0d20220712755ca899-904f-4af3-a0e5-45566eaf38801.jpg

 

5.样例布局展示

http://javaforall.cn/synimg/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://javaforall.cn/synimg/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://javaforall.cn/synimg/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://javaforall.cn/synimg/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字段,控制对应字段的可编辑,然后在赋值时根据情况来给值)

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • hashmap和hashtable和hashset的区别_Hashtable

    hashmap和hashtable和hashset的区别_Hashtable相同点:hashmap和Hashtable都实现了map接口不同点:Hashtable是不允许键或值为null的,HashMap的键值则都可以为null。实现方式不同:Hashtable继承了Dictionary类,而HashMap继承的是AbstractMap类。初始化容量不同:HashMap的初始容量为:16,Hashtable初始容量为:11,两者的负载因子默认都是:0.75。扩容机制不同:当已用容量>总容量*负载因子时,HashMap扩容规则为当前

  • JAVA静态内部类_java静态内部类实例化

    JAVA静态内部类_java静态内部类实例化写在前面  不知不觉,我正式入职到部门实习也有一周多的时间了,这段时间确实学到了不少东西。从大公司的办公、办事的流程准则,到程序员的日常研发工作和其中的注意事项,导师和同事们都很乐于帮助我融入这个新环境。  因为实习生不用加班,业余时间也比较多。便想着利用空闲时间来深入学习、总结一些平时工作中遇到的知识点和代码细节,把之前因为准备期末都快要荒废掉的写博客总结的习惯重新拾回来。fighting~!

    2022年10月10日
  • exec 与 exec sp_executesql 的用法及比较[通俗易懂]

    exec 与 exec sp_executesql 的用法及比较[通俗易懂]exec与exec sp_executesql 都可以用于执行动态sql。下面先介绍它们的用法,然后再对它们进行比较(下面用到的数据库表来自SQLSERVER的示例数据库AdventureWorks2008)一、exec与exec sp_executesql 用法1.动态sql(使用字符串拼接的方式)declare@FName2varchar(20)=’Ken’,  …

  • 跟我学Telerik公司的RadControls控件(二)

    跟我学Telerik公司的RadControls控件(二)  继上篇我们学习了RadWindow控件的用法之后,本篇我们将学习在项目中更加方便开发人员的常用控件RadAjax控件.  RadAjax是面向ASP.NET应用程序无编码AJAX使能化的第一个框架。这个专利Click-and-Go™技术可以让你不需要对你应用程序做任何修改(摆放Callback面板,设置触发器等)。最棒的是,你根本不需要写一行的JavaScript或s…

  • SEO学习(九)——快速网站诊断(Google网管工具)[通俗易懂]

    SEO学习(九)——快速网站诊断(Google网管工具)[通俗易懂]SEO服务商在刚刚与客户接触时,尤其需要对目标为网站做快速检查,发现其中的重要问题。一、快速诊断的步骤:   1、检查与研究竞争对手网站时同样的指标,另外还要计算页面收录比例(即搜索引擎收录页面数也网站实际总页面数之比)。   2、查看Google网站管理员工具给出的信息。二、Google网管工具1、robots文件检查     整个网站不能收录或某个目录下所有页面都不

  • yum 安装vsftp_yum安装vsftp「建议收藏」

    yum 安装vsftp_yum安装vsftp「建议收藏」1、安装vsftp,本文采用yum安装:#yuminstallvsftpd2、安装后运行:#servicevsftpdrestartShuttingdownvsftpd:[OK]Startingvsftpdforvsftpd:[OK]3、新增加系统用户ftptest:#useradd-d/var/www-s/sbin/nologinftptest//增加新用…

发表回复

您的电子邮箱地址不会被公开。

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