Monday, November 15, 2010

ALV con funciones

Añadir boton
http://www.sap-basis-abap.com/abap/add-button-to-alv-toolbar-with-reuse-alv-list-display.htm
TOP
Añadir campo flag a la estrucdtura definida para el uso de la tabla.
Type-pools: slis.
DATA: gtd_fieldcat TYPE slis_t_fieldcat_alv,
gwa_layout TYPE slis_layout_alv.
MAI
llenar los datos en la tabla interna.
START-OF-SELECTION.
PERFORM cargar_data.
PERFORM construir_alv.

F02
*----------------------------------------------------------------------*
***INCLUDE ZTEMP_CJ_F02 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form construir_alv
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM construir_alv. PERFORM construir_catalogo. PERFORM construir_layout . PERFORM mostrar_alv. ENDFORM. " construir_alv *&---------------------------------------------------------------------* *& Form construir_catalogo *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM construir_catalogo. DATA: li_idx TYPE i VALUE 0. ADD 1 TO li_idx. PERFORM llenar_fieldcat USING li_idx 'GTS_AUFK_AFPO' 'GJAHR' '' 'Año' '7' '' ''. ADD 1 TO li_idx. PERFORM llenar_fieldcat USING li_idx 'GTS_AUFK_AFPO' 'GJAHR1' '' 'Ejercicio Doc. Contable' '7' '' ''. ADD 1 TO li_idx. PERFORM llenar_fieldcat USING li_idx 'GTS_AUFK_AFPO' 'MENSA' '' 'Mensaje' '7' '' ''. ENDFORM. " construir_catalogo *&---------------------------------------------------------------------* *& Form mostrar_alv *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM mostrar_alv. DATA: ls_repid TYPE sy-repid. ls_repid = sy-repid. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = ls_repid i_structure_name = 'GTS_AUFK_AFPO' i_callback_pf_status_set = 'SET_STATUS' i_callback_user_command = 'USER_COMMAND_000' i_callback_html_top_of_page = 'TOP_OF_PAGE_SPLIT' is_layout = gwa_layout it_fieldcat = gtd_fieldcat[] TABLES t_outtab = gts_aufk_afpo 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. " mostrar_alv
*&---------------------------------------------------------------------*
*& Form construir_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM construir_layout. CLEAR gwa_layout. gwa_layout-zebra = 'X'. gwa_layout-edit_mode = space. gwa_layout-box_fieldname = 'FLAG'. ENDFORM. " construir_layout *&---------------------------------------------------------------------* *& Form llenar_fieldcat *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_LI_IDX text
* -->P_0028 text
* -->P_0029 text
* -->P_0030 text
* -->P_0031 text
* -->P_0032 text
* -->P_0033 text
* -->P_0034 text
*----------------------------------------------------------------------*
FORM llenar_fieldcat USING pi_pos LIKE sy-cucol
pi_tabla TYPE slis_tabname
pi_campo TYPE slis_fieldname
pi_key TYPE c
pi_text TYPE dd03p-scrtext_l
pi_len TYPE dd03p-outputlen
pi_ctabla TYPE slis_tabname
pi_ccampo TYPE slis_fieldname.
DATA lwa_fieldcat TYPE slis_fieldcat_alv.
lwa_fieldcat-col_pos = pi_pos.
lwa_fieldcat-tabname = pi_tabla.
lwa_fieldcat-fieldname = pi_campo.
lwa_fieldcat-key = pi_key.
lwa_fieldcat-seltext_l = pi_text.
lwa_fieldcat-outputlen = pi_len.
lwa_fieldcat-ctabname = pi_ctabla.
lwa_fieldcat-cfieldname = pi_ccampo.
APPEND lwa_fieldcat TO gtd_fieldcat.
CLEAR lwa_fieldcat.
ENDFORM. " llenar_fieldcat

*---------------------------------------------------------------------*
* FORM pf_status *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> P_EXTAB *
*---------------------------------------------------------------------*
FORM set_status USING p_extab TYPE slis_t_extab.
SET PF-STATUS 'STATUS_000' EXCLUDING p_extab.
ENDFORM. "PF_STATUS
*
*---------------------------------------------------------------------*
* FORM user_command_own *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> L_UCOMM *
* --> RS_SELFIELD *
*---------------------------------------------------------------------*
FORM user_command_000 USING l_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE l_ucomm.
WHEN '&ACTU'.
ENDCASE.
ENDFORM.

No comments:

Post a Comment