Vous êtes sur la page 1sur 22

*&---------------------------------------------------------------------*

*& Report ZALV_WITHOUT_FIELDCATALOG


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zalv_without_fieldcatalog NO STANDARD PAGE HEADING.
***********************// Include for data declarations //*******************
INCLUDE zalv_without_fieldcatalog_top.
***********************// Include for selection-screen //********************
INCLUDE zalv_without_fieldcatalog_sel.
***********************// Include for forms //*******************************
INCLUDE zalv_without_fieldcatalog_sub.
INITIALIZATION.
***********************// Default values //*********************************
PERFORM form_default_values.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_vbeln-low.
***********************// F4 Help for VBELN //*******************************
PERFORM form_f4help_vbeln USING 'S_VBELN-LOW'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_vbeln-high.
***********************// F4 Help for VBELN //*******************************
PERFORM form_f4help_vbeln USING 'S_VBELN-HIGH'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_posnr-low.
***********************// F4 Help for POSNR //*******************************
PERFORM form_dynamic_posnr.
START-OF-SELECTION.
***********************// Get data //****************************************
PERFORM form_get_data.
END-OF-SELECTION.
***********************// Fill final table //********************************
PERFORM form_fill_final.
***********************// Display final table //*****************************
PERFORM form_display.

*&---------------------------------------------------------------------*
*& Include
ZALV_WITHOUT_FIELDCATALOG_TOP
*&---------------------------------------------------------------------*
TYPES: BEGIN OF ty_vbak,
vbeln TYPE vbeln_va,
erdat TYPE erdat,
vkorg TYPE vkorg,
kunnr TYPE kunag,
END OF ty_vbak,
BEGIN OF ty_vbap,
vbeln TYPE vbeln_va,
posnr TYPE posnr_va,
matnr TYPE matnr,
matkl TYPE matkl,
netwr TYPE netwr_ap,
END OF ty_vbap,
BEGIN OF ty_kna1,
kunnr TYPE kunnr,
land1 TYPE land1_gp,
name1 TYPE name1_gp,
ort01 TYPE ort01_gp,
pstlz TYPE pstlz,
END OF ty_kna1,
BEGIN OF ty_final,
vbeln TYPE vbeln_va,
erdat TYPE erdat,
vkorg TYPE vkorg,
kunnr TYPE kunag,
posnr TYPE posnr_va,
matnr TYPE matnr,
matkl TYPE matkl,
netwr TYPE netwr_ap,
land1 TYPE land1_gp,
name1 TYPE land1_gp,
ort01 TYPE ort01_gp,
pstlz TYPE pstlz,
END OF ty_final.
*****************************// WORKAREA DECLARATION //**********************
DATA: gs_vbak TYPE ty_vbak,
gs_vbap TYPE ty_vbap,
gs_kna1 TYPE ty_kna1,
gs_final TYPE ty_final.

*****************************// INTERNAL TABLE DECLARATION //****************


DATA: gt_vbak TYPE STANDARD TABLE OF ty_vbak,
gt_vbap TYPE STANDARD TABLE OF ty_vbap,
gt_kna1 TYPE STANDARD TABLE OF ty_kna1,
gt_final TYPE STANDARD TABLE OF ty_final.
*&---------------------------------------------------------------------*
*& Include
ZALV_WITHOUT_FIELDCATALOG_SEL
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_vbeln FOR gs_vbak-vbeln,
s_posnr FOR gs_vbap-posnr NO INTERVALS.
SELECTION-SCREEN END OF BLOCK b1.
*&---------------------------------------------------------------------*
*& Include
ZALV_WITHOUT_FIELDCATALOG_SUB
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Form FORM_DEFAULT_VALUES
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM form_default_values .
s_vbeln-sign = 'I'.
s_vbeln-option = 'BT'.
s_vbeln-low = '4969'.
s_vbeln-high = '5200'.
APPEND s_vbeln.
CLEAR: s_vbeln.
ENDFORM.
" FORM_DEFAULT_VALUES
*&---------------------------------------------------------------------*
*&
Form FORM_F4HELP_VBELN
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_0025 text
*----------------------------------------------------------------------*
FORM form_f4help_vbeln USING p_field.
TYPES: BEGIN OF ty_vbeln,
vbeln TYPE vbeln_va,
END OF ty_vbeln.
DATA: gt_vbeln TYPE STANDARD TABLE OF ty_vbeln.
SELECT vbeln FROM vbak INTO TABLE gt_vbeln.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'


EXPORTING
* DDIC_STRUCTURE
=''
retfield
= 'VBELN'
* PVALKEY
=''
dynpprog
= sy-repid
dynpnr
= sy-dynnr
dynprofield
= p_field
* STEPL
=0
* WINDOW_TITLE
=
* VALUE
=''
value_org
= 'S'
* MULTIPLE_CHOICE
=''
* DISPLAY
=''
* CALLBACK_PROGRAM
=''
* CALLBACK_FORM
=''
* CALLBACK_METHOD
=
* MARK_TAB
=
* IMPORTING
* USER_RESET
=
TABLES
value_tab
= gt_vbeln
* FIELD_TAB
=
* RETURN_TAB
=
* DYNPFLD_MAPPING
=
EXCEPTIONS
parameter_error
=1
no_values_found
=2
OTHERS
=3
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
" FORM_F4HELP_VBELN
*&---------------------------------------------------------------------*
*&
Form FORM_DYNAMIC_POSNR
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM form_dynamic_posnr .
TYPES: BEGIN OF ty_posnr,
posnr TYPE posnr_va,
END OF ty_posnr.

DATA: gt_dynp TYPE STANDARD TABLE OF dynpread,


gs_dynp TYPE dynpread,
lv_vbeln TYPE vbeln_va,
gt_posnr TYPE STANDARD TABLE OF ty_posnr.
gs_dynp-fieldname = 'S_VBELN-LOW'.
APPEND gs_dynp TO gt_dynp.
CLEAR: gs_dynp.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname
= sy-repid
dynumb
= sy-dynnr
* TRANSLATE_TO_UPPER
=''
* REQUEST
=''
* PERFORM_CONVERSION_EXITS
=''
* PERFORM_INPUT_CONVERSION
=''
* DETERMINE_LOOP_INDEX
=''
* START_SEARCH_IN_CURRENT_SCREEN = ' '
* START_SEARCH_IN_MAIN_SCREEN = ' '
* START_SEARCH_IN_STACKED_SCREEN = ' '
* START_SEARCH_ON_SCR_STACKPOS = ' '
* SEARCH_OWN_SUBSCREENS_FIRST = ' '
* SEARCHPATH_OF_SUBSCREEN_AREAS = ' '
TABLES
dynpfields
= gt_dynp
EXCEPTIONS
invalid_abapworkarea
=1
invalid_dynprofield
=2
invalid_dynproname
=3
invalid_dynpronummer
=4
invalid_request
=5
no_fielddescription
=6
invalid_parameter
=7
undefind_error
=8
double_conversion
=9
stepl_not_found
= 10
OTHERS
= 11.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
READ TABLE gt_dynp INTO gs_dynp WITH KEY fieldname = 'S_VBELN-LOW'.
IF sy-subrc EQ 0.
lv_vbeln = gs_dynp-fieldvalue.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING

input = lv_vbeln
IMPORTING
output = lv_vbeln.
SELECT posnr FROM vbap INTO TABLE gt_posnr WHERE vbeln EQ lv_vbeln.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
*
DDIC_STRUCTURE
=''
retfield
= 'POSNR'
*
PVALKEY
=''
dynpprog
= sy-repid
dynpnr
= sy-dynnr
dynprofield
= 'S_POSNR-LOW'
*
STEPL
=0
*
WINDOW_TITLE
=
*
VALUE
=''
value_org
= 'S'
*
MULTIPLE_CHOICE
=''
*
DISPLAY
=''
*
CALLBACK_PROGRAM
=''
*
CALLBACK_FORM
=''
*
CALLBACK_METHOD
=
*
MARK_TAB
=
* IMPORTING
*
USER_RESET
=
TABLES
value_tab
= gt_posnr
*
FIELD_TAB
=
*
RETURN_TAB
=
*
DYNPFLD_MAPPING
=
EXCEPTIONS
parameter_error
=1
no_values_found
=2
OTHERS
=3
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
" FORM_DYNAMIC_POSNR
*&---------------------------------------------------------------------*
*&
Form FORM_GET_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*

FORM form_get_data .
PERFORM get_data_vbak.
PERFORM get_data_vbap.
PERFORM get_data_kna1.
ENDFORM.
" FORM_GET_DATA
*&---------------------------------------------------------------------*
*&
Form GET_DATA_VBAK
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_data_vbak .
SELECT vbeln erdat vkorg kunnr FROM vbak
INTO TABLE gt_vbak
WHERE vbeln IN s_vbeln.
IF sy-subrc EQ 0.
SORT gt_vbak BY vbeln.
ENDIF.
ENDFORM.
" GET_DATA_VBAK
*&---------------------------------------------------------------------*
*&
Form GET_DATA_VBAP
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_data_vbap .
IF gt_vbak IS NOT INITIAL.
SELECT vbeln posnr matnr matkl netwr FROM vbap
INTO TABLE gt_vbap
FOR ALL ENTRIES IN gt_vbak
WHERE vbeln = gt_vbak-vbeln AND posnr IN s_posnr.
IF sy-subrc EQ 0.
SORT gt_vbap BY vbeln posnr.
ENDIF.
ENDIF.
ENDFORM.
" GET_DATA_VBAP
*&---------------------------------------------------------------------*
*&
Form GET_DATA_KNA1
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*

FORM get_data_kna1 .
IF gt_vbak IS NOT INITIAL.
SELECT kunnr land1 name1 ort01 pstlz FROM kna1
INTO TABLE gt_kna1
FOR ALL ENTRIES IN gt_vbak
WHERE kunnr = gt_vbak-kunnr.
IF sy-subrc EQ 0.
SORT gt_kna1 BY kunnr.
ENDIF.
ENDIF.
ENDFORM.
" GET_DATA_KNA1
*&---------------------------------------------------------------------*
*&
Form FORM_FILL_FINAL
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM form_fill_final .
LOOP AT gt_vbap INTO gs_vbap.
gs_final-vbeln = gs_vbap-vbeln.
gs_final-posnr = gs_vbap-posnr.
gs_final-matnr = gs_vbap-matnr.
gs_final-matkl = gs_vbap-matkl.
gs_final-netwr = gs_vbap-netwr.
READ TABLE gt_vbak INTO gs_vbak WITH KEY vbeln = gs_vbap-vbeln BINARY SEARCH.
IF sy-subrc EQ 0.
gs_final-erdat = gs_vbak-erdat.
gs_final-vkorg = gs_vbak-vkorg.
gs_final-kunnr = gs_vbak-kunnr.
ENDIF.
READ TABLE gt_kna1 INTO gs_kna1 WITH KEY kunnr = gs_vbak-kunnr BINARY SEARCH.
IF sy-subrc EQ 0.
gs_final-land1 = gs_kna1-land1.
gs_final-name1 = gs_kna1-name1.
gs_final-ort01 = gs_kna1-ort01.
gs_final-pstlz = gs_kna1-pstlz.
ENDIF.
APPEND gs_final TO gt_final.
CLEAR: gs_vbap, gs_vbak, gs_kna1, gs_final.
ENDLOOP.
ENDFORM.
" FORM_FILL_FINAL
*&---------------------------------------------------------------------*
*&
Form FORM_DISPLAY
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text

* <-- p2
text
*----------------------------------------------------------------------*
FORM form_display .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK
=''
* I_BYPASSING_BUFFER
=''
* I_BUFFER_ACTIVE
=''
i_callback_program
= sy-repid
* I_CALLBACK_PF_STATUS_SET
=''
* I_CALLBACK_USER_COMMAND
=''
* I_CALLBACK_TOP_OF_PAGE
=''
* I_CALLBACK_HTML_TOP_OF_PAGE
=''
* I_CALLBACK_HTML_END_OF_LIST
=''
i_structure_name
= 'ZALV_STRUC'
* I_BACKGROUND_ID
=''
* I_GRID_TITLE
=
* I_GRID_SETTINGS
=
* IS_LAYOUT
=
* IT_FIELDCAT
=
* IT_EXCLUDING
=
* IT_SPECIAL_GROUPS
=
* IT_SORT
=
* IT_FILTER
=
* IS_SEL_HIDE
=
* I_DEFAULT
= 'X'
* I_SAVE
=''
* IS_VARIANT
=
* IT_EVENTS
=
* 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
= gt_final
EXCEPTIONS

program_error
=1
OTHERS
=2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.

OUT PUT

" FORM_DISPLAY

*&---------------------------------------------------------------------*
*& Report ZALV_WITH_FCAT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zalv_with_fcat NO STANDARD PAGE HEADING.
***********************// Include for data declarations //*******************
INCLUDE zalv_with_fcat_top.
***********************// Include for selection-screen //********************
INCLUDE zalv_with_fcat_sel.
***********************// Include for forms //*******************************
INCLUDE zalv_with_fcat_sub.
INITIALIZATION.
***********************// Default values //*********************************
PERFORM form_default_values.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_vbeln-low.
***********************// F4 Help for VBELN //*******************************
PERFORM form_f4help_vbeln USING 'S_VBELN-LOW'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_vbeln-high.
***********************// F4 Help for VBELN //*******************************
PERFORM form_f4help_vbeln USING 'S_VBELN-HIGH'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_posnr-low.
***********************// F4 Help for POSNR //*******************************
PERFORM form_dynamic_posnr.
START-OF-SELECTION.
***********************// Get data //****************************************
PERFORM form_get_data.
END-OF-SELECTION.
***********************// Fill final table //********************************
PERFORM form_fill_final.
***********************// Fill field catalog //******************************
PERFORM form_fill_fcat.
***********************// Display final table //*****************************
PERFORM form_display.

*&---------------------------------------------------------------------*
*& Include
zalv_with_fcat_top
*&---------------------------------------------------------------------*
TYPES: BEGIN OF ty_vbak,
vbeln TYPE vbeln_va,
erdat TYPE erdat,
vkorg TYPE vkorg,
kunnr TYPE kunag,
END OF ty_vbak,
BEGIN OF ty_vbap,
vbeln TYPE vbeln_va,
posnr TYPE posnr_va,
matnr TYPE matnr,
matkl TYPE matkl,
netwr TYPE netwr_ap,
END OF ty_vbap,
BEGIN OF ty_kna1,
kunnr TYPE kunnr,
land1 TYPE land1_gp,
name1 TYPE name1_gp,
ort01 TYPE ort01_gp,
pstlz TYPE pstlz,
END OF ty_kna1,
BEGIN OF ty_final,
vbeln TYPE vbeln_va,
erdat TYPE erdat,
vkorg TYPE vkorg,
kunnr TYPE kunag,
posnr TYPE posnr_va,
matnr TYPE matnr,
matkl TYPE matkl,
netwr TYPE netwr_ap,
land1 TYPE land1_gp,
name1 TYPE land1_gp,
ort01 TYPE ort01_gp,
pstlz TYPE pstlz,
END OF ty_final.
*****************************// WORKAREA DECLARATION //**************************
DATA: gs_vbak TYPE ty_vbak,
gs_vbap TYPE ty_vbap,
gs_kna1 TYPE ty_kna1,
gs_final TYPE ty_final.
*****************************// INTERNAL TABLE DECLARATION //*********************

DATA: gt_vbak TYPE STANDARD TABLE OF ty_vbak,


gt_vbap TYPE STANDARD TABLE OF ty_vbap,
gt_kna1 TYPE STANDARD TABLE OF ty_kna1,
gt_final TYPE STANDARD TABLE OF ty_final.
*****************************// ALV DECLARATION //*********************
DATA: gs_fcat TYPE slis_fieldcat_alv,
gt_fcat TYPE slis_t_fieldcat_alv.

*&---------------------------------------------------------------------*
*& Include
zalv_with_fcat_sel
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_vbeln FOR gs_vbak-vbeln,
s_posnr FOR gs_vbap-posnr NO INTERVALS.
SELECTION-SCREEN END OF BLOCK b1.
*&---------------------------------------------------------------------*
*& Include
zalv_with_fcat_sub
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Form FORM_DEFAULT_VALUES
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM form_default_values .
s_vbeln-sign = 'I'.
s_vbeln-option = 'BT'.
s_vbeln-low = '4969'.
s_vbeln-high = '5200'.
APPEND s_vbeln.
CLEAR: s_vbeln.
ENDFORM.
" FORM_DEFAULT_VALUES
*&---------------------------------------------------------------------*
*&
Form FORM_F4HELP_VBELN
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_0025 text
*----------------------------------------------------------------------*
FORM form_f4help_vbeln USING p_field.
TYPES: BEGIN OF ty_vbeln,

vbeln TYPE vbeln_va,


END OF ty_vbeln.
DATA: gt_vbeln TYPE STANDARD TABLE OF ty_vbeln.
SELECT vbeln FROM vbak INTO TABLE gt_vbeln.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE
=''
retfield
= 'VBELN'
* PVALKEY
=''
dynpprog
= sy-repid
dynpnr
= sy-dynnr
dynprofield
= p_field
* STEPL
=0
* WINDOW_TITLE
=
* VALUE
=''
value_org
= 'S'
* MULTIPLE_CHOICE
=''
* DISPLAY
=''
* CALLBACK_PROGRAM
=''
* CALLBACK_FORM
=''
* CALLBACK_METHOD
=
* MARK_TAB
=
* IMPORTING
* USER_RESET
=
TABLES
value_tab
= gt_vbeln
* FIELD_TAB
=
* RETURN_TAB
=
* DYNPFLD_MAPPING
=
EXCEPTIONS
parameter_error
=1
no_values_found
=2
OTHERS
=3
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
" FORM_F4HELP_VBELN
*&---------------------------------------------------------------------*
*&
Form FORM_DYNAMIC_POSNR
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text

*----------------------------------------------------------------------*
FORM form_dynamic_posnr .
TYPES: BEGIN OF ty_posnr,
posnr TYPE posnr_va,
END OF ty_posnr.
DATA: gt_dynp TYPE STANDARD TABLE OF dynpread,
gs_dynp TYPE dynpread,
lv_vbeln TYPE vbeln_va,
gt_posnr TYPE STANDARD TABLE OF ty_posnr.
gs_dynp-fieldname = 'S_VBELN-LOW'.
APPEND gs_dynp TO gt_dynp.
CLEAR: gs_dynp.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname
= sy-repid
dynumb
= sy-dynnr
* TRANSLATE_TO_UPPER
=''
* REQUEST
=''
* PERFORM_CONVERSION_EXITS
=''
* PERFORM_INPUT_CONVERSION
=''
* DETERMINE_LOOP_INDEX
=''
* START_SEARCH_IN_CURRENT_SCREEN = ' '
* START_SEARCH_IN_MAIN_SCREEN = ' '
* START_SEARCH_IN_STACKED_SCREEN = ' '
* START_SEARCH_ON_SCR_STACKPOS = ' '
* SEARCH_OWN_SUBSCREENS_FIRST = ' '
* SEARCHPATH_OF_SUBSCREEN_AREAS = ' '
TABLES
dynpfields
= gt_dynp
EXCEPTIONS
invalid_abapworkarea
=1
invalid_dynprofield
=2
invalid_dynproname
=3
invalid_dynpronummer
=4
invalid_request
=5
no_fielddescription
=6
invalid_parameter
=7
undefind_error
=8
double_conversion
=9
stepl_not_found
= 10
OTHERS
= 11.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
READ TABLE gt_dynp INTO gs_dynp WITH KEY fieldname = 'S_VBELN-LOW'.

IF sy-subrc EQ 0.
lv_vbeln = gs_dynp-fieldvalue.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_vbeln
IMPORTING
output = lv_vbeln.
SELECT posnr FROM vbap INTO TABLE gt_posnr WHERE vbeln EQ lv_vbeln.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
*
DDIC_STRUCTURE
=''
retfield
= 'POSNR'
*
PVALKEY
=''
dynpprog
= sy-repid
dynpnr
= sy-dynnr
dynprofield
= 'S_POSNR-LOW'
*
STEPL
=0
*
WINDOW_TITLE
=
*
VALUE
=''
value_org
= 'S'
*
MULTIPLE_CHOICE
=''
*
DISPLAY
=''
*
CALLBACK_PROGRAM
=''
*
CALLBACK_FORM
=''
*
CALLBACK_METHOD
=
*
MARK_TAB
=
* IMPORTING
*
USER_RESET
=
TABLES
value_tab
= gt_posnr
*
FIELD_TAB
=
*
RETURN_TAB
=
*
DYNPFLD_MAPPING
=
EXCEPTIONS
parameter_error
=1
no_values_found
=2
OTHERS
=3
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
" FORM_DYNAMIC_POSNR
*&---------------------------------------------------------------------*
*&
Form FORM_GET_DATA

*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM form_get_data .
PERFORM get_data_vbak.
PERFORM get_data_vbap.
PERFORM get_data_kna1.
ENDFORM.
" FORM_GET_DATA
*&---------------------------------------------------------------------*
*&
Form GET_DATA_VBAK
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_data_vbak .
SELECT vbeln erdat vkorg kunnr FROM vbak
INTO TABLE gt_vbak
WHERE vbeln IN s_vbeln.
IF sy-subrc EQ 0.
SORT gt_vbak BY vbeln.
ENDIF.
ENDFORM.
" GET_DATA_VBAK
*&---------------------------------------------------------------------*
*&
Form GET_DATA_VBAP
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_data_vbap .
IF gt_vbak IS NOT INITIAL.
SELECT vbeln posnr matnr matkl netwr FROM vbap
INTO TABLE gt_vbap
FOR ALL ENTRIES IN gt_vbak
WHERE vbeln = gt_vbak-vbeln AND posnr IN s_posnr.
IF sy-subrc EQ 0.
SORT gt_vbap BY vbeln posnr.
ENDIF.
ENDIF.
ENDFORM.
" GET_DATA_VBAP
*&---------------------------------------------------------------------*
*&
Form GET_DATA_KNA1
*&---------------------------------------------------------------------*

*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_data_kna1 .
IF gt_vbak IS NOT INITIAL.
SELECT kunnr land1 name1 ort01 pstlz FROM kna1
INTO TABLE gt_kna1
FOR ALL ENTRIES IN gt_vbak
WHERE kunnr = gt_vbak-kunnr.
IF sy-subrc EQ 0.
SORT gt_kna1 BY kunnr.
ENDIF.
ENDIF.
ENDFORM.
" GET_DATA_KNA1
*&---------------------------------------------------------------------*
*&
Form FORM_FILL_FINAL
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM form_fill_final .
LOOP AT gt_vbap INTO gs_vbap.
gs_final-vbeln = gs_vbap-vbeln.
gs_final-posnr = gs_vbap-posnr.
gs_final-matnr = gs_vbap-matnr.
gs_final-matkl = gs_vbap-matkl.
gs_final-netwr = gs_vbap-netwr.
READ TABLE gt_vbak INTO gs_vbak WITH KEY vbeln = gs_vbap-vbeln BINARY SEARCH.
IF sy-subrc EQ 0.
gs_final-erdat = gs_vbak-erdat.
gs_final-vkorg = gs_vbak-vkorg.
gs_final-kunnr = gs_vbak-kunnr.
ENDIF.
READ TABLE gt_kna1 INTO gs_kna1 WITH KEY kunnr = gs_vbak-kunnr BINARY SEARCH.
IF sy-subrc EQ 0.
gs_final-land1 = gs_kna1-land1.
gs_final-name1 = gs_kna1-name1.
gs_final-ort01 = gs_kna1-ort01.
gs_final-pstlz = gs_kna1-pstlz.
ENDIF.
APPEND gs_final TO gt_final.
CLEAR: gs_vbap, gs_vbak, gs_kna1, gs_final.
ENDLOOP.
ENDFORM.
" FORM_FILL_FINAL
*&---------------------------------------------------------------------*

*&
Form FORM_FILL_FCAT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM form_fill_fcat .
PERFORM f_fieldcat USING 1 'VBELN' 'Sales Document'.
PERFORM f_fieldcat USING 2 'ERDAT' 'Date on Created'.
PERFORM f_fieldcat USING 3 'VKORG' 'Sales Organization'.
PERFORM f_fieldcat USING 4 'KUNNR' 'Sold-to party'.
PERFORM f_fieldcat USING 5 'POSNR' 'Sales Document Item'.
PERFORM f_fieldcat USING 6 'MATNR' 'Material Number'.
PERFORM f_fieldcat USING 7 'MATKL' 'Material Group'.
PERFORM f_fieldcat USING 8 'NETWR' 'Net Value'.
PERFORM f_fieldcat USING 9 'LAND1' 'Country Key'.
PERFORM f_fieldcat USING 10 'NAME1' 'Name'.
PERFORM f_fieldcat USING 11 'ORT01' 'City'.
PERFORM f_fieldcat USING 12 'PSTLZ' 'Postal Code'.
* CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
* EXPORTING
** I_PROGRAM_NAME
=
** I_INTERNAL_TABNAME
=
* i_structure_name
= 'ZALV_STRUC'
** I_CLIENT_NEVER_DISPLAY
= 'X'
** I_INCLNAME
=
** I_BYPASSING_BUFFER
=
** I_BUFFER_ACTIVE
=
* CHANGING
*
ct_fieldcat
= gt_fcat
** EXCEPTIONS
** INCONSISTENT_INTERFACE
=1
** PROGRAM_ERROR
=2
** OTHERS
=3
*
.
* IF sy-subrc <> 0.
** Implement suitable error handling here
* ENDIF.
*
* LOOP AT gt_fcat INTO gs_fcat.
* CASE gs_fcat-fieldname.
*
WHEN 'VBELN'.
*
gs_fcat-key = 'X'.
*
MODIFY gt_fcat FROM gs_fcat TRANSPORTING key.
*
WHEN 'NETWR'.
*
gs_fcat-emphasize = 'C311'.
*
MODIFY gt_fcat FROM gs_fcat TRANSPORTING emphasize.

* ENDCASE.
* CLEAR: gs_fcat.
* ENDLOOP.
ENDFORM.
" FORM_FILL_FCAT
*&---------------------------------------------------------------------*
*&
Form F_FIELDCAT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_1
text
*
-->P_0508 text
*
-->P_0509 text
*----------------------------------------------------------------------*
FORM f_fieldcat USING p_pos p_fname p_text.
gs_fcat-col_pos = p_pos.
gs_fcat-fieldname = p_fname.
gs_fcat-tabname = 'GT_FINAL'.
gs_fcat-seltext_m = p_text.
CASE p_fname.
WHEN 'VBELN'.
gs_fcat-key = 'X'.
gs_fcat-hotspot = 'X'.
WHEN 'ERDAT'.
gs_fcat-outputlen = '10'.
WHEN 'MATNR'.
gs_fcat-outputlen = '12'.
gs_fcat-hotspot = 'X'.
WHEN 'POSNR'.
gs_fcat-outputlen = '14'.
WHEN 'NETWR'.
gs_fcat-emphasize = 'C311'.
ENDCASE.
APPEND gs_fcat TO gt_fcat.
CLEAR: gs_fcat.
ENDFORM.
" F_FIELDCAT
*&---------------------------------------------------------------------*
*&
Form FORM_DISPLAY
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM form_display .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK
=''

* I_BYPASSING_BUFFER
=''
* I_BUFFER_ACTIVE
=''
i_callback_program
= sy-repid
* I_CALLBACK_PF_STATUS_SET
=''
* I_CALLBACK_USER_COMMAND
=''
* I_CALLBACK_TOP_OF_PAGE
=''
* I_CALLBACK_HTML_TOP_OF_PAGE
=''
* I_CALLBACK_HTML_END_OF_LIST
=''
* i_structure_name
= 'ZALV_STRUC'
* I_BACKGROUND_ID
=''
* I_GRID_TITLE
=
* I_GRID_SETTINGS
=
* IS_LAYOUT
=
it_fieldcat
= gt_fcat
* IT_EXCLUDING
=
* IT_SPECIAL_GROUPS
=
* IT_SORT
=
* IT_FILTER
=
* IS_SEL_HIDE
=
* I_DEFAULT
= 'X'
* I_SAVE
=''
* IS_VARIANT
=
* IT_EVENTS
=
* 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
= gt_final
EXCEPTIONS
program_error
=1
OTHERS
=2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

ENDFORM.

" FORM_DISPLAY

Vous aimerez peut-être aussi