Application Development 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: 

reference dialog programming/ alv.

Former Member
0 Kudos

sir/mam , i want to use field input validation in dialog programing, and want use block list display in ALVplease provide me the basic step by step operation to go with

regards

reward points for helping me.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi Saurabh,

Find attached a very simple program for alv block list.


*&---------------------------------------------------------------------*
*& Report  ZGS_ALV_BLOCK
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZGS_ALV_BLOCK.

TYPE-POOLS: slis.

TABLES: ekko.

SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.

DATA: BEGIN OF i_ekko OCCURS 0,
           ebeln LIKE ekko-ebeln,
           ernam LIKE ekko-ernam,
           bsart LIKE ekko-bsart,
      END OF i_ekko.

DATA: BEGIN OF i_ekpo OCCURS 0,
           ebeln LIKE ekpo-ebeln,
           ebelp LIKE ekpo-ebelp,
           matnr LIKE ekpo-matnr,
           aedat LIKE ekpo-aedat,
      END OF i_ekpo.

DATA: fieldcat1 TYPE slis_t_fieldcat_alv,
      fieldcat2 TYPE slis_t_fieldcat_alv,
      cat       TYPE slis_fieldcat_alv.

DATA: layout TYPE slis_layout_alv,
      events1 TYPE slis_t_event WITH HEADER LINE,
      events2 TYPE slis_t_event WITH HEADER LINE.

START-OF-SELECTION.

  PERFORM get_data.
  PERFORM append_data.

  layout-zebra = 'X'.

  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
    EXPORTING
      i_callback_program             = sy-cprog
*   I_CALLBACK_PF_STATUS_SET       = ' '
*   I_CALLBACK_USER_COMMAND        = ' '
*   IT_EXCLUDING                   =
            .
  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
    EXPORTING
      is_layout                        = layout
      it_fieldcat                      = fieldcat1
      i_tabname                        = 'I_EKKO'
      it_events                        = events1[]
*   IT_SORT                          =
*   I_TEXT                           = ' '
        TABLES
          t_outtab                         = i_ekko
* EXCEPTIONS
*   PROGRAM_ERROR                    = 1
*   MAXIMUM_OF_APPENDS_REACHED       = 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.

  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
    EXPORTING
      is_layout                        = layout
      it_fieldcat                      = fieldcat2
      i_tabname                        = 'I_EKPO'
      it_events                        = events2[]
*   IT_SORT                          =
*   I_TEXT                           = ' '
      TABLES
        t_outtab                         = i_ekpo
* EXCEPTIONS
*   PROGRAM_ERROR                    = 1
*   MAXIMUM_OF_APPENDS_REACHED       = 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.

  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.
* EXPORTING
*   I_INTERFACE_CHECK             = ' '
*   IS_PRINT                      =
*   I_SCREEN_START_COLUMN         = 0
*   I_SCREEN_START_LINE           = 0
*   I_SCREEN_END_COLUMN           = 0
*   I_SCREEN_END_LINE             = 0
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER       =
*   ES_EXIT_CAUSED_BY_USER        =
* EXCEPTIONS
*   PROGRAM_ERROR                 = 1
*   OTHERS                        = 2
  .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

*&---------------------------------------------------------------------*
*&      Form  get_data
*&---------------------------------------------------------------------*
*       Getting Data into Internal Tables
*----------------------------------------------------------------------*
FORM get_data .

  SELECT ebeln
         ernam
         bsart
    FROM       ekko
    INTO TABLE i_ekko
   WHERE ebeln IN s_ebeln.

  SELECT ebeln
         ebelp
         matnr
         aedat
    INTO TABLE i_ekpo
    FROM       ekpo
    FOR ALL ENTRIES IN i_ekko
   WHERE ebeln EQ i_ekko-ebeln.

ENDFORM.                    " get_data
*&---------------------------------------------------------------------*
*&      Form  append_data
*&---------------------------------------------------------------------*
*       Getting Data into Field Catalog
*----------------------------------------------------------------------*
FORM append_data .

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
     EXPORTING
        i_program_name               = sy-cprog
        i_internal_tabname           = 'I_EKKO'
*       I_STRUCTURE_NAME             =
*       I_CLIENT_NEVER_DISPLAY       = 'X'
        i_inclname                   = sy-cprog
*       I_BYPASSING_BUFFER           =
*       I_BUFFER_ACTIVE              =
     CHANGING
        ct_fieldcat                  = fieldcat1[]
*    EXCEPTIONS
*       INCONSISTENT_INTERFACE       = 1
*       PROGRAM_ERROR                = 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.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_program_name               = sy-cprog
      i_internal_tabname           = 'I_EKPO'
*     I_STRUCTURE_NAME             =
*     I_CLIENT_NEVER_DISPLAY       = 'X'
      i_inclname                   = sy-cprog
*     I_BYPASSING_BUFFER           =
*     I_BUFFER_ACTIVE              =
    CHANGING
      ct_fieldcat                  = fieldcat2[]
*   EXCEPTIONS
*     INCONSISTENT_INTERFACE       = 1
*     PROGRAM_ERROR                = 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.

ENDFORM.                    " append_data

And for validations in Dialog programming :

You will do that in PAI of the screen . You can even use CHAIN ... ENDCHAIN to group the fields and validate.

If you have further doubts get bk,

Dont forget to reward points,

Aleem.

3 REPLIES 3

Former Member
0 Kudos

Hi,

pls check out BCALV_TEST_BLOCK_LIST program for BLOCK list display,

you can use this in PAI of your dialog programming.

Field validations as well you can do it in PAI , you can check out any standard dialog programs for more details.

Regards,

Raghavendra

Former Member
0 Kudos

Hi Saurabh,

Find attached a very simple program for alv block list.


*&---------------------------------------------------------------------*
*& Report  ZGS_ALV_BLOCK
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZGS_ALV_BLOCK.

TYPE-POOLS: slis.

TABLES: ekko.

SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.

DATA: BEGIN OF i_ekko OCCURS 0,
           ebeln LIKE ekko-ebeln,
           ernam LIKE ekko-ernam,
           bsart LIKE ekko-bsart,
      END OF i_ekko.

DATA: BEGIN OF i_ekpo OCCURS 0,
           ebeln LIKE ekpo-ebeln,
           ebelp LIKE ekpo-ebelp,
           matnr LIKE ekpo-matnr,
           aedat LIKE ekpo-aedat,
      END OF i_ekpo.

DATA: fieldcat1 TYPE slis_t_fieldcat_alv,
      fieldcat2 TYPE slis_t_fieldcat_alv,
      cat       TYPE slis_fieldcat_alv.

DATA: layout TYPE slis_layout_alv,
      events1 TYPE slis_t_event WITH HEADER LINE,
      events2 TYPE slis_t_event WITH HEADER LINE.

START-OF-SELECTION.

  PERFORM get_data.
  PERFORM append_data.

  layout-zebra = 'X'.

  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
    EXPORTING
      i_callback_program             = sy-cprog
*   I_CALLBACK_PF_STATUS_SET       = ' '
*   I_CALLBACK_USER_COMMAND        = ' '
*   IT_EXCLUDING                   =
            .
  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
    EXPORTING
      is_layout                        = layout
      it_fieldcat                      = fieldcat1
      i_tabname                        = 'I_EKKO'
      it_events                        = events1[]
*   IT_SORT                          =
*   I_TEXT                           = ' '
        TABLES
          t_outtab                         = i_ekko
* EXCEPTIONS
*   PROGRAM_ERROR                    = 1
*   MAXIMUM_OF_APPENDS_REACHED       = 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.

  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
    EXPORTING
      is_layout                        = layout
      it_fieldcat                      = fieldcat2
      i_tabname                        = 'I_EKPO'
      it_events                        = events2[]
*   IT_SORT                          =
*   I_TEXT                           = ' '
      TABLES
        t_outtab                         = i_ekpo
* EXCEPTIONS
*   PROGRAM_ERROR                    = 1
*   MAXIMUM_OF_APPENDS_REACHED       = 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.

  CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.
* EXPORTING
*   I_INTERFACE_CHECK             = ' '
*   IS_PRINT                      =
*   I_SCREEN_START_COLUMN         = 0
*   I_SCREEN_START_LINE           = 0
*   I_SCREEN_END_COLUMN           = 0
*   I_SCREEN_END_LINE             = 0
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER       =
*   ES_EXIT_CAUSED_BY_USER        =
* EXCEPTIONS
*   PROGRAM_ERROR                 = 1
*   OTHERS                        = 2
  .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

*&---------------------------------------------------------------------*
*&      Form  get_data
*&---------------------------------------------------------------------*
*       Getting Data into Internal Tables
*----------------------------------------------------------------------*
FORM get_data .

  SELECT ebeln
         ernam
         bsart
    FROM       ekko
    INTO TABLE i_ekko
   WHERE ebeln IN s_ebeln.

  SELECT ebeln
         ebelp
         matnr
         aedat
    INTO TABLE i_ekpo
    FROM       ekpo
    FOR ALL ENTRIES IN i_ekko
   WHERE ebeln EQ i_ekko-ebeln.

ENDFORM.                    " get_data
*&---------------------------------------------------------------------*
*&      Form  append_data
*&---------------------------------------------------------------------*
*       Getting Data into Field Catalog
*----------------------------------------------------------------------*
FORM append_data .

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
     EXPORTING
        i_program_name               = sy-cprog
        i_internal_tabname           = 'I_EKKO'
*       I_STRUCTURE_NAME             =
*       I_CLIENT_NEVER_DISPLAY       = 'X'
        i_inclname                   = sy-cprog
*       I_BYPASSING_BUFFER           =
*       I_BUFFER_ACTIVE              =
     CHANGING
        ct_fieldcat                  = fieldcat1[]
*    EXCEPTIONS
*       INCONSISTENT_INTERFACE       = 1
*       PROGRAM_ERROR                = 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.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
      i_program_name               = sy-cprog
      i_internal_tabname           = 'I_EKPO'
*     I_STRUCTURE_NAME             =
*     I_CLIENT_NEVER_DISPLAY       = 'X'
      i_inclname                   = sy-cprog
*     I_BYPASSING_BUFFER           =
*     I_BUFFER_ACTIVE              =
    CHANGING
      ct_fieldcat                  = fieldcat2[]
*   EXCEPTIONS
*     INCONSISTENT_INTERFACE       = 1
*     PROGRAM_ERROR                = 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.

ENDFORM.                    " append_data

And for validations in Dialog programming :

You will do that in PAI of the screen . You can even use CHAIN ... ENDCHAIN to group the fields and validate.

If you have further doubts get bk,

Dont forget to reward points,

Aleem.

Former Member
0 Kudos

thanks sap,ins for ur helping response ,