99 lines
2.9 KiB
ABAP
99 lines
2.9 KiB
ABAP
*&---------------------------------------------------------------------*
|
|
*& Report Z_PRODSPARTE_ALL
|
|
*&---------------------------------------------------------------------*
|
|
*& Zweck: Einziger ausfuehrbarer Report rund um die Provider-Logik.
|
|
*& Ruft ZCL_PRODSPARTE_PROVIDER=>GET_DATA und kann das Ergebnis
|
|
*& als ALV anzeigen oder als tab-getrennte CSV exportieren.
|
|
*&---------------------------------------------------------------------*
|
|
REPORT z_prodsparte_all.
|
|
|
|
PARAMETERS: p_vkorg TYPE vkorg OBLIGATORY.
|
|
PARAMETERS: p_vtweg TYPE vtweg.
|
|
PARAMETERS: p_spras TYPE spras DEFAULT sy-langu.
|
|
PARAMETERS: p_fallb TYPE t25a1-bezek DEFAULT 'Nicht zugeordnet'.
|
|
|
|
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
|
|
PARAMETERS: p_alv TYPE abap_bool DEFAULT 'X' AS CHECKBOX.
|
|
PARAMETERS: p_csv TYPE abap_bool AS CHECKBOX.
|
|
PARAMETERS: p_file TYPE string LOWER CASE
|
|
DEFAULT 'C:\temp\prodsparte_export.csv'.
|
|
SELECTION-SCREEN END OF BLOCK b1.
|
|
|
|
START-OF-SELECTION.
|
|
|
|
DATA(lt_data) = zcl_prodsparte_provider=>get_data(
|
|
iv_vkorg = p_vkorg
|
|
iv_vtweg = p_vtweg
|
|
iv_spras = p_spras
|
|
iv_fallback = p_fallb ).
|
|
|
|
IF lt_data IS INITIAL.
|
|
MESSAGE 'Keine Daten - VKORG/VTWEG pruefen.' TYPE 'I'.
|
|
RETURN.
|
|
ENDIF.
|
|
|
|
WRITE: / 'Gelesene Saetze:', lines( lt_data ).
|
|
|
|
IF p_csv = abap_true.
|
|
PERFORM export_csv USING lt_data p_file.
|
|
ENDIF.
|
|
|
|
IF p_alv = abap_true.
|
|
PERFORM show_alv USING lt_data.
|
|
ENDIF.
|
|
|
|
FORM export_csv USING it_data TYPE zcl_prodsparte_provider=>tt_out
|
|
iv_file TYPE string.
|
|
|
|
DATA: lt_csv TYPE STANDARD TABLE OF string,
|
|
lv_sep TYPE c LENGTH 1.
|
|
|
|
lv_sep = cl_abap_char_utilities=>horizontal_tab.
|
|
|
|
APPEND |MATNR{ lv_sep }PAPH1{ lv_sep }PAPH1_TEXT{ lv_sep }WWPFA{ lv_sep }|
|
|
&& |WWPFA_TEXT{ lv_sep }WWPSP{ lv_sep }WWPSP_TEXT{ lv_sep }|
|
|
&& |IS_ASSIGNED{ lv_sep }MAKTX| TO lt_csv.
|
|
|
|
LOOP AT it_data INTO DATA(ls).
|
|
APPEND |{ ls-matnr }{ lv_sep }{ ls-paph1 }{ lv_sep }{ ls-paph1_text }|
|
|
&& |{ lv_sep }{ ls-wwpfa }{ lv_sep }{ ls-wwpfa_text }|
|
|
&& |{ lv_sep }{ ls-wwpsp }{ lv_sep }{ ls-wwpsp_text }|
|
|
&& |{ lv_sep }{ ls-is_assigned }{ lv_sep }{ ls-maktx }|
|
|
TO lt_csv.
|
|
ENDLOOP.
|
|
|
|
cl_gui_frontend_services=>gui_download(
|
|
EXPORTING
|
|
filename = iv_file
|
|
filetype = 'ASC'
|
|
CHANGING
|
|
data_tab = lt_csv
|
|
EXCEPTIONS
|
|
OTHERS = 1 ).
|
|
|
|
IF sy-subrc = 0.
|
|
WRITE: / lines( it_data ), 'Saetze exportiert nach', iv_file.
|
|
ELSE.
|
|
WRITE: / 'Download-Fehler, sy-subrc=', sy-subrc.
|
|
ENDIF.
|
|
|
|
ENDFORM.
|
|
|
|
FORM show_alv USING it_data TYPE zcl_prodsparte_provider=>tt_out.
|
|
|
|
DATA lt_alv TYPE zcl_prodsparte_provider=>tt_out.
|
|
|
|
lt_alv = it_data.
|
|
|
|
cl_salv_table=>factory(
|
|
IMPORTING
|
|
r_salv_table = DATA(lo_alv)
|
|
CHANGING
|
|
t_table = lt_alv ).
|
|
|
|
lo_alv->get_functions( )->set_all( abap_true ).
|
|
lo_alv->get_columns( )->set_optimize( abap_true ).
|
|
lo_alv->display( ).
|
|
|
|
ENDFORM.
|