Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

select option with multiple values using F4 help

SwarnaliBasu
Participant
0 Likes
790

HI

i am using select option , i want to use it for multiple values and pass it through REUSE_ALV_BLOCK_LIST_APPEND, but when i am selecting multiple values then the last value is considered not the other 2, can anyone help for refrence i am posting the code

SELECT-OPTIONS:s_grpid  FOR apqi-groupid
*&---------------------------------------------------------------------*
*& AT SELECTION SCREEN WITH VALUE REQUEST for select-option-high
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_grpid-high." and

  PERFORM f_choose USING 'GROUPID'
                       's_grpid'
                CHANGING s_grpid-high.

  CHECK NOT s_grpid IS INITIAL.

  SELECT qid INTO p_qid FROM apqi UP TO 2 ROWS
                       WHERE datatyp = c_bdc
                         AND  mandant = sy-mandt
                         AND groupid = s_grpid-high.
*                         AND qstate = 'E'.
*                         and CREDATE = s_date
*                         AND cretime = s_time.
  ENDSELECT.

  CHECK sy-dbcnt = 2.

  PERFORM f_choose_bdc1 USING 'QID' ''
                     CHANGING p_qid.



*&---------------------------------------------------------------------*
*& AT SELECTION SCREEN WITH VALUE REQUEST for select-option-low
*&---------------------------------------------------------------------
*

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_grpid-low.

  PERFORM f_choose_low USING 'GROUPID'
                             's_grpid'
                             CHANGING s_grpid-low.
*  PERFORM f_choose_bdc USING 'GROUPID'
*                              's_grpid-low'
*                     CHANGING s_grpid-low.
*
  CHECK NOT s_grpid IS INITIAL.


  SELECT qid INTO  p_qid FROM apqi UP TO 2 ROWS
                        WHERE groupid = s_grpid-low
                          AND mandant = sy-mandt
                          AND datatyp = c_bdc.

  ENDSELECT.
  CHECK sy-dbcnt = 2.

  PERFORM f_choose_bdc USING 'QID' ''
                     CHANGING p_qid. 

HI

i am using select option , i want to use it for multiple values and pass it through REUSE_ALV_BLOCK_LIST_APPEND, but when i am selecting multiple values then the last value is considered not the other 2, can anyone help for refrence i am posting the code

SELECT-OPTIONS:s_grpid  FOR apqi-groupid
*&---------------------------------------------------------------------*
*& AT SELECTION SCREEN WITH VALUE REQUEST for select-option-high
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_grpid-high." and

  PERFORM f_choose USING 'GROUPID'
                       's_grpid'
                CHANGING s_grpid-high.

  CHECK NOT s_grpid IS INITIAL.

  SELECT qid INTO p_qid FROM apqi UP TO 2 ROWS
                       WHERE datatyp = c_bdc
                         AND  mandant = sy-mandt
                         AND groupid = s_grpid-high.
*                         AND qstate = 'E'.
*                         and CREDATE = s_date
*                         AND cretime = s_time.
  ENDSELECT.

  CHECK sy-dbcnt = 2.

  PERFORM f_choose_bdc1 USING 'QID' ''
                     CHANGING p_qid.



*&---------------------------------------------------------------------*
*& AT SELECTION SCREEN WITH VALUE REQUEST for select-option-low
*&---------------------------------------------------------------------
*

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_grpid-low.

  PERFORM f_choose_low USING 'GROUPID'
                             's_grpid'
                             CHANGING s_grpid-low.
*  PERFORM f_choose_bdc USING 'GROUPID'
*                              's_grpid-low'
*                     CHANGING s_grpid-low.
*
  CHECK NOT s_grpid IS INITIAL.


  SELECT qid INTO  p_qid FROM apqi UP TO 2 ROWS
                        WHERE groupid = s_grpid-low
                          AND mandant = sy-mandt
                          AND datatyp = c_bdc.

  ENDSELECT.
  CHECK sy-dbcnt = 2.

  PERFORM f_choose_bdc USING 'QID' ''
                     CHANGING p_qid. 

3 REPLIES 3
Read only

SwarnaliBasu
Participant
0 Likes
698
FORM   f_choose_low USING u_value1 TYPE fieldname
                         u_value2 TYPE dynfnam
                CHANGING u_val .

  TYPES:
    BEGIN OF ty_s_values,
      qid      TYPE apq_quid,
      groupid  TYPE apq_grpn,
      creator  TYPE apq_mapn,
      credate  TYPE apq_crda,
      cretime  TYPE apq_crti,
      transcnt TYPE apq_tran,
      msgcnt   TYPE apq_reco,
    END OF ty_s_values.

  DATA:
    lt_values  TYPE TABLE OF ty_s_values,
    lt_return  TYPE  TABLE OF ddshretval,
    wg_return  LIKE ddshretval,
    l_progname TYPE sy-repid,
    l_dynnum   TYPE sy-dynnr.

  l_progname = sy-repid.
  l_dynnum   = sy-dynnr.

  IF u_value1 = 'GROUPID'.
    SELECT groupid qid userid credate cretime transcnt msgcnt
      FROM apqi
      INTO CORRESPONDING FIELDS OF TABLE lt_values
*     WHERE groupid in s_grpid
     where datatyp = c_bdc
       AND mandant = sy-mandt
       AND qstate = 'E'
       AND credate IN s_date
      AND cretime IN s_time.
  ELSE.
    SELECT groupid qid userid credate cretime transcnt msgcnt
      FROM apqi
      INTO CORRESPONDING FIELDS OF TABLE lt_values
*      WHERE groupid in s_grpid
     where datatyp = c_bdc
       AND mandant = sy-mandt
       AND groupid = s_grpid-low  " change
       AND qstate = 'E'
      AND credate IN s_date
      AND cretime IN s_time.
  ENDIF.

* F4 help
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield        = u_value1
      dynpprog        = l_progname
      dynpnr          = l_dynnum
      dynprofield     = 's_grpid-low'
      value_org       = 'S'
    TABLES
      value_tab       = lt_values
      return_tab      = lt_return
    EXCEPTIONS
      parameter_error = 1
      no_values_found = 2
      OTHERS          = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  CHECK NOT lt_return[] IS INITIAL.
  READ TABLE lt_return INTO wg_return INDEX 1.
  u_val = wg_return-fieldval.

ENDFORM.                    "f_choose_low 
Read only

SwarnaliBasu
Participant
0 Likes
698

FORM f_choose_bdc USING u_value1 TYPE fieldname
                         u_value2 TYPE dynfnam
                CHANGING u_val.

  TYPES:
    BEGIN OF ty_s_values,
      qid      TYPE apq_quid,
      groupid  TYPE apq_grpn,
      creator  TYPE apq_mapn,
      credate  TYPE apq_crda,
      cretime  TYPE apq_crti,
      transcnt TYPE apq_tran,
      msgcnt   TYPE apq_reco,
    END OF ty_s_values.

  DATA:
    lt_values  TYPE TABLE OF ty_s_values,
    lt_return  TYPE  TABLE OF ddshretval,
    wg_return  LIKE ddshretval,
    l_progname TYPE sy-repid,
    l_dynnum   TYPE sy-dynnr.

  l_progname = sy-repid.
  l_dynnum   = sy-dynnr.

  IF u_value1 = 'GROUPID'.
    SELECT groupid qid userid credate cretime transcnt msgcnt
      FROM apqi
      INTO CORRESPONDING FIELDS OF TABLE lt_values
     WHERE datatyp = c_bdc
       AND mandant = sy-mandt
             AND qstate = 'E'
       AND credate IN s_date
      AND cretime IN s_time.
  ELSE.
    SELECT groupid qid userid credate cretime transcnt msgcnt
      FROM apqi
      INTO CORRESPONDING FIELDS OF TABLE lt_values
     WHERE datatyp = c_bdc
       AND mandant = sy-mandt
       AND groupid = s_grpid-low
       AND qstate = 'E'
      AND credate IN s_date
      AND cretime IN s_time.
  ENDIF.

* F4 help
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield        = u_value1
      dynpprog        = l_progname
      dynpnr          = l_dynnum
      dynprofield     = u_value2
      value_org       = 'S'
    TABLES
      value_tab       = lt_values
      return_tab      = lt_return
    EXCEPTIONS
      parameter_error = 1
      no_values_found = 2
      OTHERS          = 3.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  CHECK NOT lt_return[] IS INITIAL.
  READ TABLE lt_return INTO wg_return INDEX 1.
  u_val = wg_return-fieldval.

ENDFORM.                               " F_CHOOSE_BDC
Read only

SwarnaliBasu
Participant
0 Likes
698

no successful reply, so closing