zoukankan      html  css  js  c++  java
  • 如何动态修改SAP CRM WebClient UI表格栏的宽度

    Achievement

    By clicking down or up button, the table width could be changed dynamically - each time the button is clicked,
    the width increases or shrinks at 10 px interval.



    (1) Create a table view with toolbar defined:

    (2) Create the attribute gt_toolbar_button in controller class:

    Define the on click handling logic for button DOWN and UP:

    (3) Create two event handler for DOWN and UP:

     method EH_ONDOWN.
       change( iv_up = abap_false ).
     endmethod.
     
     method EH_ONUP.
       change( iv_up = abap_true ).
     endmethod.
    

    The implementation of change method:

     method CHANGE.
      CALL METHOD me->configuration_descr->get_config_data
        RECEIVING
           rv_result                = DATA(lv_xml)
        EXCEPTIONS
           config_not_found         = 1.
      CHECK sy-subrc = 0.
      DATA(ls_config_data) = cl_bsp_dlc_table_utility=>conf_xml_to_abap( lv_xml ).
      LOOP AT ls_config_data-columndefinition ASSIGNING FIELD-SYMBOL(<column>).
         <column>-width = GET_WIDTH( iv_up = iv_up iv_old_value = <column>-width ).
      ENDLOOP.
      DATA(lv_xml_changed) = cl_bsp_dlc_table_utility=>conf_abap_to_xml( ls_config_data ).
      DATA(lr_configuration2) = CAST if_bsp_dlc_config_table_layout( me->configuration_descr ).
      lr_configuration2->set_active_table_layout( iv_config_data = lv_xml_changed ).
     endmethod.
    

    The implementation of get_width method:

      method GET_WIDTH.
         DATA lv_new TYPE i.
         DATA lv_temp TYPE string.
         lv_temp = iv_old_value.
         REPLACE ALL OCCURRENCES OF 'px' IN lv_temp WITH space.
         CONDENSE lv_temp NO-GAPS.
         lv_new = lv_temp.
         IF iv_up = abap_true.
           lv_new = lv_new + 10.
         ELSE.
           lv_new = lv_new - 10.
         ENDIF.
         lv_temp = lv_new.
         value = lv_temp && 'px'.
         CONDENSE value NO-GAPS.
      endmethod.
    

    Signature of these two methods:

     methods CHANGE
        importing
          !IV_UP type ABAP_BOOL .
      methods GET_WIDTH
        importing
          !IV_OLD_VALUE type STRING
          !IV_UP type ABAP_BOOL
        returning
          value(VALUE) type STRING .
    

    要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  • 相关阅读:
    DB9 ------ 接口定义
    以太网 ------ Auto-Negotiation(自动协商)
    Qt ------ 添加某个功能,比如(QSerialPort)注意事项
    Modbus
    Centos7.5 安装JDK1.8 步骤
    Kafka 消息中间件
    使用RabbitMQ实现分布式事务
    RabbitMq的环境安装
    RabbitMQ消息中间件的用法
    基于Docker+Jenkins实现自动化部署
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/13619142.html
Copyright © 2011-2022 走看看