Difference between revisions of "SAP ABAP REPORT"

From SapWiki
Line 84: Line 84:
 
     EXPORTING
 
     EXPORTING
 
       restriction = restrict.</nowiki>
 
       restriction = restrict.</nowiki>
 +
 +
==DYNPRO==
 +
===Crear texto y Icono dinamico para pushbutton===
 +
crear variable en declaracion
 +
 +
data pb_sa(128).
 +
crear pushbutton en dynpro llamado PB_SA y marcar "Campo de salida" y "Con Icono"
 +
 +
en PBO de dynpro
 +
 +
  <nowiki>CALL FUNCTION 'ICON_CREATE'
 +
  EXPORTING
 +
    NAME                        = ICON_SYSTEM_SAVE
 +
    TEXT                        = 'F5 Save'
 +
*      INFO                        = ' '
 +
*      ADD_STDINF                  = 'X'
 +
  IMPORTING
 +
    RESULT                      = pb_sa
 +
  EXCEPTIONS
 +
    ICON_NOT_FOUND              = 1
 +
    OUTPUTFIELD_TOO_SHORT      = 2
 +
    OTHERS                      = 3
 +
    .
 +
  IF SY-SUBRC <> 0.
 +
  ENDIF.</nowiki>
 +
 +
ejemplo: ver programa DEMO_DYNPRO_STATUS_ICONS

Revision as of 18:20, 12 April 2020

Obtener vía F4 archivo y directorio en un reporte

F4 en reporte

Agregar botones en la pantalla de selección de un Reporte

Datos de selección (select-options, parameters) en dynpro

REPORT ydemo_sel.
DATA wa_pa0002 TYPE pa0002.

SELECTION-SCREEN BEGIN OF SCREEN 100.
PARAMETERS p_pernr TYPE p0001-pernr.
SELECT-OPTIONS s_vorna FOR wa_pa0002-vorna.

SELECTION-SCREEN END OF SCREEN 100.

AT SELECTION-SCREEN OUTPUT.
  SET PARAMETER ID 'RID' FIELD 'TEST_PROGRAM'.

CLASS start DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS main.
ENDCLASS.

CLASS start IMPLEMENTATION.
  METHOD main.
    CALL SELECTION-SCREEN 100. " STARTING AT 10 10.
    IF sy-subrc <> 0.
      RETURN.
    ENDIF.

    SELECT pernr INTO TABLE @DATA(lt_pernr) FROM pa0001 UP TO 100 ROWS
                                           WHERE pernr = @p_pernr .

    SELECT * INTO TABLE @DATA(lt_pernr2) FROM pa0002 UP TO 100 ROWS
                                          WHERE vorna IN @s_vorna .
    TRY.
        cl_salv_table=>factory( IMPORTING r_salv_table = DATA(gr_table)
                                 CHANGING t_table = lt_pernr2 ).
      CATCH cx_salv_msg.
    ENDTRY.
*... Enable Generic ALV functions
    DATA(gr_functions) = gr_table->get_functions( ).
    gr_functions->set_all( ).

*... Display table
    gr_table->display( ).

  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
  start=>main( ).

Restricciones en select-options

Ejemplo de select-options que solo permite valores individuales

REPORT ydemo_sel2.
DATA p0014 TYPE p0014.

SELECT-OPTIONS s_lgart FOR p0014-lgart NO INTERVALS.

*--------------------------------------------------------------------*
INITIALIZATION.
*--------------------------------------------------------------------*
  DATA: restrict TYPE sscr_restrict,
        opt_list TYPE sscr_opt_list_tab WITH HEADER LINE,
        sscr_ass TYPE sscr_ass_tab WITH HEADER LINE.

* restrict selection option for function to single value
  CLEAR opt_list.
  MOVE 'EQ' TO opt_list-name.
  MOVE 'X' TO opt_list-options-eq.
  APPEND opt_list TO restrict-opt_list_tab.

  CLEAR sscr_ass.
  MOVE: 'S'       TO sscr_ass-kind,
        'S_LGART' TO sscr_ass-name,
        'I'       TO sscr_ass-sg_main,
        ' '       TO sscr_ass-sg_addy,
        'EQ'      TO sscr_ass-op_main,
        'EQ'      TO sscr_ass-op_addy.

  APPEND sscr_ass TO restrict-ass_tab.

  CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
    EXPORTING
      restriction = restrict.

DYNPRO

Crear texto y Icono dinamico para pushbutton

crear variable en declaracion

data pb_sa(128).

crear pushbutton en dynpro llamado PB_SA y marcar "Campo de salida" y "Con Icono"

en PBO de dynpro

  CALL FUNCTION 'ICON_CREATE'
   EXPORTING
     NAME                        = ICON_SYSTEM_SAVE
     TEXT                        = 'F5 Save'
*       INFO                        = ' '
*       ADD_STDINF                  = 'X'
   IMPORTING
     RESULT                      = pb_sa
   EXCEPTIONS
     ICON_NOT_FOUND              = 1
     OUTPUTFIELD_TOO_SHORT       = 2
     OTHERS                      = 3
     .
   IF SY-SUBRC <> 0.
   ENDIF.

ejemplo: ver programa DEMO_DYNPRO_STATUS_ICONS