SAP表维护自动带出对象属性
生活随笔
收集整理的這篇文章主要介紹了
SAP表维护自动带出对象属性
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
需求:使用表維護(hù)實(shí)現(xiàn)維護(hù)一個(gè)對(duì)象的不同屬性。
解決:實(shí)現(xiàn)的方式有很多種,比如如果屬性固定,可以將屬性放到列上來維護(hù)處理,如果動(dòng)態(tài)可配置屬性也可以選擇自定義表維護(hù),或者增強(qiáng)表維護(hù)。這里給出其中一種可復(fù)用的實(shí)現(xiàn)示例以供參考。
操作步驟如下:
1、依次創(chuàng)建對(duì)象表,屬性表,以及對(duì)象屬性配置表
2、為對(duì)象屬性表創(chuàng)建維護(hù)視圖,并為所有表和視圖創(chuàng)建表維護(hù)
3. 創(chuàng)建視圖簇
點(diǎn)擊代碼編輯創(chuàng)建form程序,再次點(diǎn)擊生成對(duì)應(yīng)form,填寫代碼邏輯如下
FORM exi_10 ." 抬頭表TYPES: BEGIN OF ty_ylc_class_extra.INCLUDE TYPE ylc_class.TYPES: mode1 TYPE char1,mode2 TYPE char1,END OF ty_ylc_class_extra." 關(guān)聯(lián)表TYPES: BEGIN OF ty_ylc_class_attr_v_extra.INCLUDE TYPE ylc_class_attr_v.TYPES: mode1 TYPE char1,mode2 TYPE char255,END OF ty_ylc_class_attr_v_extra." 邏輯處理使用DATA: lt_ylc_class_extra TYPE TABLE OF ty_ylc_class_extra,ls_ylc_class_extra TYPE ty_ylc_class_extra,lt_ylc_class_attr_v_extra TYPE TABLE OF ty_ylc_class_attr_v_extra,ls_ylc_class_attr_v_extra TYPE ty_ylc_class_attr_v_extra.DATA:lt_ylc_class_attr_v TYPE TABLE OF ylc_class_attr_v,ls_ylc_class_attr_v TYPE ylc_class_attr_v,ls_ylc_class_attr TYPE ylc_class_attr,lt_ylc_attribute TYPE TABLE OF ylc_attribute,ls_ylc_attribute TYPE ylc_attribute.DATA: lv_chg_flag TYPE char1.STATICS: lt_ylc_class_attr_add TYPE TABLE OF ylc_class_attr.FIELD-SYMBOLS: <fs_value> TYPE any,<fs_tab> TYPE any.CONSTANTS: c_action TYPE string VALUE '(SAPLSVCM)VCL_ACTION', " 修改模式c_function TYPE string VALUE '(SAPLSVCM)VCL_FUNCTION', " 動(dòng)作代碼,切換為 EV_NAVIc_last_view TYPE string VALUE '(SAPLSVCM)VCL_LAST_VIEW', " 切換前的維護(hù)表c_next_view TYPE string VALUE '(SAPLSVCM)VCL_NEXT_VIEW', " 切換后的維護(hù)表c_extract_m_1 TYPE string VALUE '(SAPLSVCM)VCL_EXTRACT_M_1', " 順序?yàn)?的表維護(hù)對(duì)應(yīng)展示數(shù)據(jù)c_extract_m_2 TYPE string VALUE '(SAPLSVCM)VCL_EXTRACT_M_2', " 順序?yàn)?的表維護(hù)對(duì)應(yīng)展示數(shù)據(jù)c_total_m_2 TYPE string VALUE '(SAPLSVCM)VCL_TOTAL_M_2'. " 順序?yàn)?的表維護(hù)對(duì)應(yīng)所有數(shù)據(jù)ASSIGN (c_action) TO <fs_value>.IF sy-subrc = 0 AND <fs_value> = 'U'.ASSIGN c_function TO <fs_value>.IF sy-subrc = 0 AND <fs_value> = 'EV_NAVI'.ASSIGN (c_last_view) TO <fs_value>.IF sy-subrc = 0 AND <fs_value> = 'YLC_CLASS'.ASSIGN (c_next_view) TO <fs_value>.IF sy-subrc = 0 AND <fs_value> = 'YLC_CLASS_ATTR_V'. " 限制為 由 抬頭表切換到關(guān)聯(lián)表ASSIGN (c_extract_m_1) TO <fs_tab>.lt_ylc_class_attr_v_extra = <fs_tab>.IF sy-subrc = 0.ASSIGN (c_extract_m_2) TO <fs_tab>.IF sy-subrc = 0.lt_ylc_class_extra = <fs_tab>.ASSIGN (c_total_m_2) TO <fs_tab>.IF sy-subrc = 0." 邏輯處理部分lt_ylc_class_attr_v = <fs_tab>.SELECT *FROM ylc_attributeINTO TABLE lt_ylc_attribute.LOOP AT lt_ylc_class_extra INTO ls_ylc_class_extra WHERE mode2 = 'M'.LOOP AT lt_ylc_attribute INTO ls_ylc_attribute.READ TABLE lt_ylc_class_attr_v INTO ls_ylc_class_attr_v WITH KEY class = ls_ylc_class_extra-classattribute = ls_ylc_attribute-attribute.IF sy-subrc <> 0.lv_chg_flag = abap_true.ls_ylc_class_attr_v-mandt = sy-mandt.ls_ylc_class_attr_v-class = ls_ylc_class_extra-class.ls_ylc_class_attr_v-attribute = ls_ylc_attribute-attribute.ls_ylc_class_attr_v-attdesc = ls_ylc_attribute-attdesc.ls_ylc_class_attr_v-isactivate = ''.APPEND ls_ylc_class_attr_v TO lt_ylc_class_attr_v.MOVE-CORRESPONDING ls_ylc_class_attr_v TO ls_ylc_class_attr .APPEND ls_ylc_class_attr TO lt_ylc_class_attr_add.ENDIF.ENDLOOP.ENDLOOP.IF lv_chg_flag = abap_true.<fs_tab> = lt_ylc_class_attr_v.ENDIF.ENDIF.ENDIF.ENDIF.ENDIF.ENDIF.ELSEIF sy-subrc = 0 AND <fs_value> = 'SAVE' AND lt_ylc_class_attr_add IS NOT INITIAL." 保存LOOP AT lt_ylc_class_attr_v_extra INTO ls_ylc_class_attr_v_extra WHERE mode1 = 'U' OR mode1 = 'I' OR mode1 = 'M'.DELETE lt_ylc_class_attr_add WHERE class = ls_ylc_class_attr_v_extra-class AND attribute = ls_ylc_class_attr_v_extra-attribute.ENDLOOP.MODIFY ylc_class_attr FROM TABLE lt_ylc_class_attr_add.CLEAR lt_ylc_class_attr_add.ENDIF.ENDIF. ENDFORM.激活
4、效果展示
總結(jié)
以上是生活随笔為你收集整理的SAP表维护自动带出对象属性的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tfpose与openpose区别_人体
- 下一篇: 22.jsp动作元素