导航

F4 Search help

Posted on 2010-07-21 14:52  Hahappyppy  阅读(145)  评论(0编辑  收藏  举报

************************************************************************
* プログラム : ZZF4HELP
* 名称    : 入力項目選択ヘルプ用サンプル
* 機能概要  : 独自検索ヘルプ.
* 作成者   : 莫怀远
* 作成日   : 2005/09/30
*----------------------------------------------------------------------*
REPORT  ZZF4HELP.
* 入力項目選択ヘルプ用
TYPES: BEGIN OF TY_VALUES,
         VALUE    TYPE SETHEADERT-SETNAME,
         DESCRIPT TYPE SETHEADERT-DESCRIPT,
       END OF TY_VALUES.
CONSTANTS:
  CNS_TITLE(8)     TYPE C VALUE 'ソート区分'.   "入力項目選択ヘルプ用タイトル
DATA:
  IT_VALUES TYPE TABLE OF TY_VALUES,
  TW_VALUES LIKE LINE  OF IT_VALUES.
DATA:
  IT_DYNPFIELDS TYPE TABLE OF DYNPREAD,
  TW_DYNPFIELDS LIKE LINE  OF IT_DYNPFIELDS.
*----------------------------------------------------------------------*
*     パラメータ定義
*----------------------------------------------------------------------*
* 出力区分定義
  PARAMETERS:PA_OUTYP(1) TYPE C OBLIGATORY.
*----------------------------------------------------------------------*
*    AT SELECTION-SCREEN
*----------------------------------------------------------------------*
* 入力項目選択ヘルプ用
AT SELECTION-SCREEN ON VALUE-REQUEST FOR PA_OUTYP.
  PERFORM FRM_F4_HELP_OUTYP.
AT SELECTION-SCREEN.
* 出力区分のチェック
  IF NOT ( PA_OUTYP = '1' OR PA_OUTYP = '2' OR PA_OUTYP = '3' ).
    SET CURSOR FIELD 'PA_OUTYP'.
    MESSAGE E001(ZFI0) WITH TEXT-M06 PA_OUTYP.
  ENDIF.
*----------------------------------------------------------------------*
*    START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.
  WRITE: '出力区分:',
         PA_OUTYP.
*&---------------------------------------------------------------------*
*&      Form  FRM_F4_HELP_OUTYP
*&---------------------------------------------------------------------*
*       出力区分項目の入力選択ヘルプ
*----------------------------------------------------------------------*
FORM FRM_F4_HELP_OUTYP.
  CLEAR: TW_VALUES.
  REFRESH: IT_VALUES.
  TW_VALUES-VALUE = '1'.
  TW_VALUES-DESCRIPT = '社員番号'.
  APPEND TW_VALUES TO IT_VALUES.
  TW_VALUES-VALUE = '2'.
  TW_VALUES-DESCRIPT = '部門番号'.
  APPEND TW_VALUES TO IT_VALUES.
  TW_VALUES-VALUE = '3'.
  TW_VALUES-DESCRIPT = '年齢'.
  APPEND TW_VALUES TO IT_VALUES.
  PERFORM FRM_F4_HELP USING 'PA_OUTYP'
                            CNS_TITLE.
ENDFORM.                    " FRM_F4_HELP_OUTYP
*&---------------------------------------------------------------------*
*&      Form  FRM_F4_HELP
*&---------------------------------------------------------------------*
*       項目の入力選択ヘルプ
*----------------------------------------------------------------------*
*   -->  P_PARAM          項目名
*   -->  P_TITLE          タイトル
*----------------------------------------------------------------------*
FORM FRM_F4_HELP USING P_PARAM
                       P_TITLE.
  DATA: LIT_DDSHRETVAL TYPE STANDARD TABLE OF DDSHRETVAL,
        LTW_DDSHRETVAL LIKE LINE           OF LIT_DDSHRETVAL.
  SORT IT_VALUES BY VALUE.
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      RETFIELD     = 'VALUE'
      DYNPPROG     = SY-CPROG
      DYNPNR       = SY-DYNNR
      WINDOW_TITLE = P_TITLE
      VALUE_ORG    = 'S'
    TABLES
      VALUE_TAB    = IT_VALUES
      RETURN_TAB   = LIT_DDSHRETVAL
    EXCEPTIONS
      PARAMETER_ERROR        = 1
      NO_VALUES_FOUND        = 2
      OTHERS                 = 3.
  IF SY-SUBRC <> 0.
    MESSAGE E005(ZCA0) WITH TEXT-M01.        "'値がありません。'
  ENDIF.
  CLEAR: TW_DYNPFIELDS.
  REFRESH: IT_DYNPFIELDS.
  READ TABLE LIT_DDSHRETVAL INTO LTW_DDSHRETVAL INDEX 1.
      CASE SY-DYNNR.
        WHEN '1000'.
          TW_DYNPFIELDS-FIELDNAME = P_PARAM.
      ENDCASE.
      TW_DYNPFIELDS-FIELDVALUE = LTW_DDSHRETVAL-FIELDVAL.
  APPEND TW_DYNPFIELDS TO IT_DYNPFIELDS.
  CALL FUNCTION 'DYNP_VALUES_UPDATE'
  EXPORTING
    DYNAME     = SY-CPROG
    DYNUMB     = SY-DYNNR
  TABLES
    DYNPFIELDS = IT_DYNPFIELDS
  EXCEPTIONS
    OTHERS     = 1.
ENDFORM.                    " FRM_F4_HELP
=========================================================

F4IF_INT_TABLE_VALUE_REQUEST
DYNP_VALUES_READ  
            Read screen field values before PAI field transport
DYNP_VALUES_UPDATE             Change screen field contents w/o PBO