Table Control中自定义 F4 帮助

部分一:根据屏幕已有信息获取帮助信息,填充到内表 

FORM get_batch .
  DATA l_stepl LIKE sy-stepl."Index of Current Step Loop Line
  DATA l_lgort TYPE ekpo-lgort.
  DATA l_matnr TYPE ekpo-matnr.
  DATA l_xchpf TYPE marc-xchpf.
  DATA l_dynpread TYPE STANDARD TABLE OF dynpread WITH HEADER LINE.
    " get the index of Current Step Loop Line 
  CALL FUNCTION 'DYNP_GET_STEPL'
    IMPORTING
      povstepl        = l_stepl     EXCEPTIONS
      stepl_not_found = 1
      OTHERS          = 2.


  l_dynpread-fieldname = 'WA_ITEM-MATNR'.
  l_dynpread-stepl = l_stepl.
  APPEND l_dynpread.
  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      dyname             = sy-repid
      dynumb             = sy-dynnr
      translate_to_upper = 'X'
    TABLES
      dynpfields         = l_dynpread.

  READ TABLE l_dynpread WITH KEY fieldname = 'WA_ITEM-MATNR'.
*  IF l_dynpread-fieldvalue IS INITIAL.
**   material number can not be empty
**    MESSAGE e005(z0303) .
*  ENDIF.
  l_matnr = l_dynpread-fieldvalue.


  CALL FUNCTION 'DYNP_GET_STEPL'
    IMPORTING
      povstepl        = l_stepl
    EXCEPTIONS
      stepl_not_found = 1
      OTHERS          = 2.


  l_dynpread-fieldname = 'WA_ITEM-LGORT'.
  l_dynpread-stepl = l_stepl.
  APPEND l_dynpread.
  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      dyname             = sy-repid
      dynumb             = sy-dynnr
      translate_to_upper = 'X'
    TABLES
      dynpfields         = l_dynpread.

  READ TABLE l_dynpread WITH KEY fieldname = 'WA_ITEM-LGORT'.
  IF l_dynpread-fieldvalue IS INITIAL.
*   material number can not be empty
*   MESSAGE e398(00) WITH 'Pleas select GI location before input batch'
*                           space space space.
  ENDIF.
  l_lgort = l_dynpread-fieldvalue.
  CLEAR i_mchb_h.

*   i_mchb在之前已经填充的内表。这里也可以直接从数据库中获取需要的帮助信息。:select * into...
*   

  LOOP AT i_mchb INTO wa_mchb WHERE matnr EQ l_matnr
                              AND  werks EQ p_reswk
                              AND lgort EQ l_lgort
                              AND  clabs > 0.

    APPEND wa_mchb TO i_mchb_h.
  ENDLOOP.


ENDFORM.                    " GET_BATCH

部分二:调用help的module.

  MODULE sh_batch INPUT.

  PERFORM get_batch.

* data: t_return   like ddshretval occurs 0 with header line.sub_callback_batch
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield    = 'CHARG'
      dynpprog    = sy-repid
      dynpnr      = sy-dynnr
      dynprofield = 'WA_ITEMS-CHARG'
      value_org   = 'S'
    TABLES
      value_tab   = i_mchb_h.
ENDMODULE.                 " SH_BATCH  INPUT

第三部分:在屏幕flow Logic中添加

  process on value-request."帮助时触发
    field wa_item-charg module sh_batch.
"需要帮助的字段

你可能感兴趣的:(数据库,table,callback)