Como colocar los titulos de un ALV Jerarquico (las posiciones en la Cabecera)
FORM append_alv_for_documents .
DATA: ls_layout TYPE slis_layout_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv,
lt_fieldcat_all TYPE slis_t_fieldcat_alv,
lt_eventtab TYPE slis_t_event,
ls_key TYPE slis_keyinfo_alv,
ls_events TYPE slis_alv_event.
FIELD-SYMBOLS:
<ls_fieldcat> TYPE slis_fieldcat_alv.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_structure_name = 'FAGL_S_RFBELJ10_DOCUMENTS_HEAD'
CHANGING
ct_fieldcat = lt_fieldcat
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.
LOOP AT lt_fieldcat ASSIGNING <ls_fieldcat>.
<ls_fieldcat>-tabname = 'HEAD'.
CASE <ls_fieldcat>-fieldname.
* WHEN 'USNAM'.
* <ls_fieldcat>-no_out = 'X'.
* if poland is initial.
* <ls_fieldcat>-no_out = 'X'.
* endif.
WHEN 'BUKRS' OR 'GJAHR'.
<ls_fieldcat>-no_out = 'X'.
* WHEN 'NUMBR'.
* <ls_fieldcat>-seltext_l = text-140.
* <ls_fieldcat>-seltext_m = text-140.
* <ls_fieldcat>-seltext_s = text-140.
* <ls_fieldcat>-reptext_ddic = text-140.
* <ls_fieldcat>-no_zero = 'X'.
WHEN 'WAERS'.
<ls_fieldcat>-no_out = 'X'.
WHEN 'CPUDT'.
<ls_fieldcat>-no_out = 'X'.
WHEN 'BLDAT'.
<ls_fieldcat>-no_out = 'X'.
WHEN 'BLAR'.
<ls_fieldcat>-no_out = 'X'.
WHEN 'DOCNR'.
<ls_fieldcat>-no_out = 'X'.
WHEN 'RYEAR'.
<ls_fieldcat>-no_out = 'X'.
WHEN 'STBLG'.
<ls_fieldcat>-no_out = 'X'.
WHEN 'STJAH'.
<ls_fieldcat>-no_out = 'X'.
ENDCASE.
ENDLOOP.
APPEND LINES OF lt_fieldcat TO lt_fieldcat_all.
REFRESH lt_fieldcat.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_structure_name = 'FAGL_S_RFBELJ10_DOCUMENTS_ITEM'
CHANGING
ct_fieldcat = lt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
LOOP AT lt_fieldcat ASSIGNING <ls_fieldcat>.
<ls_fieldcat>-tabname = 'ITEM'.
CASE <ls_fieldcat>-fieldname.
WHEN 'BUKRS' OR 'GJAHR' OR 'BELNR' OR 'NUMBR' OR 'HWAER'
OR 'NAME2' OR 'PSTLZ' OR 'ORT01' OR 'STRAS'
OR 'SGTXT'.
<ls_fieldcat>-no_out = 'X'.
WHEN 'WRSHB'.
<ls_fieldcat>-no_out = 'X'.
WHEN 'BUZEI'.
<ls_fieldcat>-no_out = 'X'.
WHEN 'DOCLN'.
<ls_fieldcat>-no_out = 'X'.
WHEN 'GSBER'.
<ls_fieldcat>-no_out = 'X'.
WHEN 'BSCHL'.
<ls_fieldcat>-no_out = 'X'.
WHEN 'UMSKZ'.
<ls_fieldcat>-no_out = 'X'.
WHEN ' XNEGP'.
<ls_fieldcat>-no_out = 'X'.
WHEN 'KOART'.
<ls_fieldcat>-no_out = 'X'. "note955881
WHEN 'XNEGP'.
<ls_fieldcat>-no_out = 'X'.
WHEN 'DMHAB'. "HABER
<ls_fieldcat>-do_sum = 'X'.
IF italy IS INITIAL. "note955881
<ls_fieldcat>-no_zero = 'X'.
<ls_fieldcat>-seltext_l = text-131.
<ls_fieldcat>-seltext_m = text-131.
<ls_fieldcat>-seltext_s = text-131.
<ls_fieldcat>-reptext_ddic = text-131.
ENDIF.
* <ls_fieldcat>-outputlen = 15.
WHEN 'DMSOL'. "DEBE
<ls_fieldcat>-do_sum = 'X'.
IF italy IS INITIAL. "note955881
<ls_fieldcat>-no_zero = 'X'.
<ls_fieldcat>-seltext_l = text-130.
<ls_fieldcat>-seltext_m = text-130.
<ls_fieldcat>-seltext_s = text-130.
<ls_fieldcat>-reptext_ddic = text-130.
ENDIF.
* <ls_fieldcat>-outputlen = 15.
WHEN 'DOCLN'.
IF NOT fagl_active IS INITIAL
AND par_docc IS INITIAL.
ELSE.
<ls_fieldcat>-no_out = 'X'.
ENDIF.
ENDCASE.
ENDLOOP.
APPEND LINES OF lt_fieldcat TO lt_fieldcat_all.
ls_layout-list_append = 'X'.
ls_layout-min_linesize = 255.
ls_layout-info_fieldname = 'COLOR'.
ls_events-name = 'END_OF_LIST'.
ls_events-form = 'OUTPUT_EOL'.
append ls_events to lt_eventtab.
ls_events-name = 'TOP_OF_PAGE'.
ls_events-form = 'TOP_OF_PAGE'.
APPEND ls_events TO lt_eventtab.
ls_events-name = 'END_OF_PAGE'.
ls_events-form = 'END_OF_PAGE'.
APPEND ls_events TO lt_eventtab.
ls_key-header01 = 'BUKRS'.
ls_key-item01 = 'BUKRS'.
ls_key-header02 = 'BELNR'.
ls_key-item02 = 'BELNR'.
ls_key-header03 = 'GJAHR'.
ls_key-item03 = 'GJAHR'.
gs_variant-report = sy-repid.
gs_variant-variant = par_var1.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = ls_layout
it_fieldcat = lt_fieldcat_all
* it_sort = lt_sort_acc
is_variant = gs_variant
i_save = 'A'
it_events = lt_eventtab
i_tabname_header = 'HEAD'
i_tabname_item = 'ITEM'
is_keyinfo = ls_key
is_print = gs_print
TABLES
t_outtab_header = gt_doc_head
t_outtab_item = gt_doc_item
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.
ENDFORM.
(Necesito colocar las posiciones en la misma linea de la cabecera
|