Skip to Content
0
Former Member
Dec 12, 2011 at 07:10 AM

Check Box in Alv

85 Views

i have made a report to to get some fields from vbap and checkbox in alv ...and based on those checkbox i get few fields from vbak but the chekbpx fields are not coming out correct

perform fieldcat.

perform alv.

PERFORM GETEVENT.

perform fillevent.

FORM FIELDCAT .

*  wa_fieldcat-tabname = 'TT_VBAP'.
  wa_fieldcat-fieldname = 'cb'.
  wa_fieldcat-seltext_m = 'Checkbox'.
  wa_fieldcat-checkbox = 'X'.
* wa_fieldcat-input = 'X'.
  wa_fieldcat-edit = 'X'.
  wa_fieldcat-outputlen = '3'.
  append wa_fieldcat to i_fieldcat.
  clear wa_fieldcat.


  wa_fieldcat-tabname = 'TT_VBAP'.
  wa_fieldcat-fieldname = 'VBELN'.
  wa_fieldcat-seltext_m = 'VBELN'.
  append wa_fieldcat to i_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-tabname = 'TT_VBAP'.
  wa_fieldcat-fieldname = 'POSNR' .
  wa_fieldcat-seltext_m = 'posnr'.
  append wa_fieldcat to i_fieldcat.
  clear wa_fieldcat.

  wa_fieldcat-tabname = 'TT_VBAP'.
  wa_fieldcat-fieldname = 'MATNR'.
  wa_fieldcat-seltext_m = 'matnr'.
  append wa_fieldcat to i_fieldcat.
  clear wa_fieldcat.


  wa_fieldcat-tabname = 'TT_VBAP'.
  wa_fieldcat-fieldname = 'MATWA'.
  wa_fieldcat-seltext_m = 'matwa'.
  append wa_fieldcat to i_fieldcat.
  clear wa_fieldcat.



ENDFORM.                    " FIELDCAT

FORM ALV .

SET PF-STATUS 'DISPLAY'.
*SET PF-STATUS 'DISPLAY2'.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
     I_CALLBACK_PROGRAM               = SY-REPID
     I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
     I_CALLBACK_PF_STATUS_SET          = 'DISPLAY'
*   I_CALLBACK_TOP_OF_PAGE            = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
*   I_STRUCTURE_NAME                  =
*   I_BACKGROUND_ID                   = ' '
*   I_GRID_TITLE                      =
*   I_GRID_SETTINGS                   =
*   IS_LAYOUT                         =
     IT_FIELDCAT                      = i_fieldcat[]
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
     I_SAVE                           = 'A'
*   IS_VARIANT                        =
     IT_EVENTS                        =  V_EVENT
*   IT_EVENT_EXIT                     =
*   IS_PRINT                          =
*   IS_REPREP_ID                      =
*   I_SCREEN_START_COLUMN             = 0
*   I_SCREEN_START_LINE               = 0
*   I_SCREEN_END_COLUMN               = 0
*   I_SCREEN_END_LINE                 = 0
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
    TABLES
      T_OUTTAB                        =  TT_VBAP
* EXCEPTIONS
*   PROGRAM_ERROR                     = 1
*   OTHERS                            = 2
            .
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.

ENDFORM.                    " ALV



FORM GETEVENT .
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
   EXPORTING
     I_LIST_TYPE           = 0
   IMPORTING
     ET_EVENTS             = V_EVENT
*   EXCEPTIONS
*     LIST_TYPE_WRONG       = 1
*     OTHERS                = 2
            .
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.

ENDFORM.                    " GETEVENT



form fillevent.
  READ TABLE v_EVENT INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
  IF SY-SUBRC = 0.
    WA_EVENT-FORM = 'USER_COMMAND'.
    modify V_EVENT from wa_event transporting form where name =
                                                                wa_event-name.
  endif.
ENDFORM.


form user_command using r_ucomm like sy-ucomm
rs_selfield type slis_selfield.
refresh temp_tt_vbap.
data: v_count type i.
  case r_ucomm.
      when 'ONLI'.
        
     *loop at tt_vbap into wa_vbap where cb eq 'X' .*
*if sy-subrc = 0.*
        *if wa_vbap-cb = 'X'.*
          *append wa_vbap-vbeln to temp_tt_vbap.*
          *clear wa_vbap-vbeln.*
          *endif.*
**          endif.*
          *endloop.*

 the checked check box VBLEN no is not coming from tt_vabp

Edited by: kishan P on Dec 12, 2011 7:46 PM