- REPORT zini_01.
- CLASS zini_cl_falv DEFINITION. " FAST ALV
- PUBLIC SECTION.
- CONSTANTS: c_version TYPE string VALUE 'v01.05'.
- *--[ Coordenadas XY
- TYPES: BEGIN OF ty_pop,
- start_x TYPE i,
- start_y TYPE i,
- end_x TYPE i,
- end_y TYPE i,
- END OF ty_pop.
- DATA: popup TYPE ty_pop.
- *--[ Datos Globales para toquetear en publico
- DATA: g_alv TYPE REF TO cl_salv_table,
- g_functions TYPE REF TO cl_salv_functions_list,
- g_columns TYPE REF TO cl_salv_columns_table,
- g_selections TYPE REF TO cl_salv_selections,
- G_grid TYPE REF TO cl_salv_form_layout_grid,
- g_layout TYPE REF TO cl_salv_layout,
- g_content TYPE REF TO cl_salv_form_element,
- g_display TYPE REF TO cl_salv_display_settings,
- G_layout_logo TYPE REF TO cl_salv_form_layout_logo.
- *--[ Metodos
- METHODS: alv_new CHANGING p_table TYPE ANY TABLE,
- set_column IMPORTING i_name TYPE string
- i_tit_l TYPE string optional
- i_tit_m TYPE string OPTIONAL
- i_tit_s TYPE string OPTIONAL,
- set_titulo IMPORTING i_data type any,
- alv_show IMPORTING p_popup TYPE xfeld OPTIONAL
- p_popup_xy TYPE ty_pop OPTIONAL
- RETURNING VALUE(p_return) TYPE salv_t_row.
- ENDCLASS.
- CLASS zini_cl_falv IMPLEMENTATION.
- method set_titulo.
- g_display->set_list_header( CONV LVC_TITLE( i_data ) ).
- endmethod.
- METHOD set_column.
- TRY.
- DATA(l_col) = g_columns->get_column( columnname = CONV lvc_fname( i_name ) ). "
- CATCH cx_root.
- EXIT.
- ENDTRY.
- *--[ Por Defecto
- l_col->set_long_text( CONV scrtext_l( to_upper( i_NAME ) ) ).
- l_col->set_medium_text( CONV scrtext_m( to_upper( i_NAME ) ) ).
- l_col->set_short_text( CONV scrtext_s( to_upper( i_NAME ) ) ).
- IF i_tit_l IS NOT INITIAL and i_tit_l is SUPPLIED.
- l_col->set_long_text( CONV scrtext_l( i_TIT_L ) ).
- ENDIF.
- IF i_tit_M IS NOT INITIAL and i_tit_m is SUPPLIED.
- l_col->set_medium_text( CONV scrtext_m( i_TIT_M ) ).
- ENDIF.
- IF i_tit_S IS NOT INITIAL and i_tit_s is SUPPLIED.
- l_col->set_short_text( CONV scrtext_s( i_TIT_S ) ).
- ENDIF.
- ENDMETHOD.
- METHOD alv_new.
- TRY.
- cl_salv_table=>factory(
- IMPORTING
- r_salv_table = g_alv
- CHANGING
- t_table = p_table ).
- CATCH cx_salv_msg.
- EXIT. "#EC NO_HANDLER
- ENDTRY.
- g_functions = g_alv->get_functions( ).
- g_columns = g_alv->get_columns( ).
- g_selections = g_alv->get_selections( ).
- g_layout = g_alv->get_layout( ).
- g_display = g_alv->get_display_settings( ).
- g_grid = NEW cl_salv_form_layout_grid( ).
- g_layout_logo = NEW cl_salv_form_layout_logo( ).
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ T�tulo y pantalla superior
- * G_GRID->create_label( row = 1 column = 1 text = 'T�tulo' tooltip = 'ToolTIp' ).
- * G_GRID->create_label( row = 2 column = 1 text = 'SubT�tulo' tooltip = 'ToolTIp' ).
- * G_layout_logo->set_left_content( G_GRID ).
- * G_CONTENT = G_layout_logo.
- * G_ALV->set_top_of_list( G_CONTENT ).
- g_functions->set_all( abap_true ).
- g_columns->set_optimize( abap_true ).
- *--[ Zebra
- G_display->set_striped_pattern( cl_salv_display_settings=>true ).
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ Columnas
- TRY.
- DATA(l_col) = g_columns->get_column( columnname = 'MANDT' ). " Bye Bye Bye
- l_col->set_visible( value = if_salv_c_bool_sap=>false ).
- CATCH cx_root.
- CLEAR sy-subrc.
- ENDTRY.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ Disposiciones
- * G_LAYOUT->set_key( VALUE = VALUE #( REPORT = sy-repid ) ).
- * G_LAYOUT->set_save_restriction( if_salv_c_layout=>restrict_none ).
- * G_LAYOUT->set_default( abap_true ).
- g_selections->set_selection_mode( if_salv_c_selection_mode=>row_column ).
- popup = VALUE #( start_x = 1 start_y = 1 end_x = 180 end_y = 20 ). "<-- Default
- ENDMETHOD.
- METHOD alv_show.
- *--[ Preparamos el popup
- IF p_popup = abap_true.
- IF p_popup_xy IS NOT INITIAL.
- popup = p_popup_xy.
- ENDIF.
- g_alv->set_screen_popup( start_column = popup-start_x "1
- end_column = popup-end_x "180
- start_line = popup-start_y "1
- end_line = popup-end_y ). "20
- ENDIF.
- *--[ Mostramos el ALV
- g_alv->display( ).
- p_return = g_selections->get_selected_rows( ).
- ENDMETHOD.
- ENDCLASS .
- ****END-OF-SELECTION.
- ****
- *****--[ Para el ejemplo
- **** SELECT * FROM t005t UP TO 500 ROWS INTO TABLE @DATA(t_bp) WHERE spras = @sy-langu.
- ****
- **** DATA(nl) = NEW zini_cl_falv( ).
- ****
- **** nl->alv_new( CHANGING p_table = t_bp ).
- *****--[ Esta en dos metodos, por si queremos toquetear por en medio columnas y demas
- **** nl->set_column( i_name = 'LANDX50' i_tit_l = 'Soy un título bien largo' i_tit_m = 'Y yo medio' ).
- **** DATA(l_seleccionados) = nl->alv_show( ).
- ***** DATA(L_SELECCIONADOS) = NL->ALV_SHOW( P_POPUP = ABAP_TRUE P_POPUP_XY = VALUE #( START_X = 50 START_Y = 5 END_X = 150 END_Y = 20 ) ).
- ****
- ***** BREAK-POINT. "<-- A Efectos de test
Última modificación de la página el 03 May 2026 a las 07h30
Powered by
PmWiki