10-03-2007 6:17 AM
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.
10-03-2007 7:52 AM
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.
10-03-2007 6:28 AM
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
10-03-2007 7:52 AM
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.
10-03-2007 11:55 AM