Foro -Documentación -Código fuente -Contacto -Empleo

Buscar

Traducir

Amazon

ZINVENTARIO_OBJETOS PDF Imprimir E-mail
Usar puntuación: / 0
MaloBueno 
Código fuente - Informativos
Lunes, 07 de Julio de 2003 21:10
Lista objetos de desarrollo
REPORT zinventario_objetos .
*----------------------------------------------------------------*
* Descripción: El programa muestra un listado de los objetos de
* desarrollo que hay en el sistema los podremos filtrar por
*   Tipo de objeto:
*      Programa.
*      Report
*      ModulPool
*      Grupo Funciones / Función
*  Clase de Desarrollo.
*  Usuario Creador.
*----------------------------------------------------------------*
* Nombre Programa: ZINVENTARIO_OBJETOS
* Autor: Alberto Martín Hernández.
* Fecha: 13-01-2003
*----------------------------------------------------------------*

*----------------------------------------------------------------*
* DEFINICIÓN DE TIPOS
*----------------------------------------------------------------*
TYPE-POOLS: slis.

*----------------------------------------------------------------*
* DEFINICIÓN DE TABLAS
*----------------------------------------------------------------*
TABLES:
  tstc, " Códigos de transacción SAP
  trdirt, " Textos título p.programas en TRDIR
  trdir, " Tabla de sistema TRDIR
  tadir. " Catálogo de objetos Repository


*----------------------------------------------------------------*
* DEFINICIÓN DE ESTRUCTURAS
*----------------------------------------------------------------*

*----------------------------------------------------------------*
* DEFINICIÓN DE TABLAS INTERNAS
*----------------------------------------------------------------*
DATA: BEGIN OF ti_object OCCURS 0,
         devclass LIKE tadir-devclass,
         object LIKE tadir-object,
         obj_name LIKE tadir-obj_name,
         author LIKE tadir-author,
         cdat LIKE trdir-cdat,
         text LIKE trdirt-text,
         tcode LIKE tstc-tcode,
END OF ti_object.

*----------------------------------------------------------------*
* DEFINICIÓN DE CONSTANTES
*----------------------------------------------------------------*
CONSTANTS:
    formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE',
    formname_user_command TYPE slis?????P?:?a???˜??_formname VALUE 'USER_COMMAND',
    formname_before_output TYPE slis_formname VALUE 'BEFORE_OUTPUT'.


*----------------------------------------------------------------*
* DEFINICIÓN DE VARIABLES
*----------------------------------------------------------------*
DATA: fieldtab TYPE slis_t_fieldcat_alv,
  heading  TYPE slis_t_listheader,
  layout   TYPE slis_layout_alv,
  events   TYPE slis_t_event,
  repname  LIKE sy-repid,
  f2code   LIKE sy-ucomm VALUE  '&ETA',
  g_save(1) TYPE c VALUE 'A',
  g_exit(1) TYPE c,
  t_sort     TYPE  slis_t_sortinfo_alv,
  e_sort     TYPE  slis_sortinfo_alv,
  g_variant LIKE disvariant,
  gx_variant LIKE disvariant.

*----------------------------------------------------------------*
* PANTALLA DE SELECCIÓN
*----------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF BLOCK bloq1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: p_pgmid FOR tadir-pgmid,  " Id progama
                p_object FOR tadir-object, " tipo Objeto
                p_name FOR tadir-obj_name OBLIGATORY, " Nombre Objeto
                p_devcl FOR tadir-devclass, " Clase Des
                p_cnam FOR trdir-cnam. " Usuario Creador
SELECTION-SCREEN END OF BLOCK bloq1.


SELECTION-SCREEN BEGIN OF BLOCK bloq3 WITH FRAME TITLE text-003.
PARAMETERS: p_alvasg TYPE slis_vari.  " Disposición ALV
SELECTION-SCREEN END   OF BLOCK bloq3.



*--------------------------------------------------------------------*
* INITIALIZATION
*--------------------------------------------------------------------*
INITIALIZATION.
  repname = sy-repid.
*  PERFORM initialize_fieldcat USING fieldtab[].
  PERFORM build_eventtab USING events[].
  PERFORM build_comment USING heading[].


*--------------------------------------------------------------------*
* AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_alv
*--------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_alvasg.
  PERFORM alvl_value_request USING p_alvasg ' ?????P?:?a???˜?? '.


*----------------------------------------------------------------*
* START-OF-SELECTION
*----------------------------------------------------------------*
START-OF-SELECTION.

  PERFORM obtener_datos.


*----------------------------------------------------------------*
* END-OF-SELECTION
*----------------------------------------------------------------*
END-OF-SELECTION.

  PERFORM build_layout USING layout.
  PERFORM write_output.


*--------------------------------------------------------------------*
* SUBRUTINAS
*--------------------------------------------------------------------*
*&---------------------------------------------------------------------
*&      Form  BUILD_EVENTTAB
*&---------------------------------------------------------------------

FORM build_eventtab USING p_events TYPE slis_t_event.
  DATA: ls_event TYPE slis_alv_event.
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
            i_list_type = 0
       IMPORTING
            et_events   = p_events.

  READ TABLE p_events WITH KEY name = slis_ev_top_of_page
                           INTO ls_event.
  IF sy-subrc = 0.
    MOVE formname_top_of_page TO ls_event-form.
    APPEND ls_event TO p_events.
  ENDIF.

  READ TABLE p_events WITH KEY name = slis_ev_user_command
                           INTO ls_event.
  IF sy-subrc = 0.
    MOVE formname_user_command TO ls_event-form.
    APPEND ls_event TO p_events.
  ENDIF.

  READ TABLE p_events WITH KEY name = slis_ev_before_line_output
                           INTO ls_event.
  IF sy-subrc = 0.
    MOVE formname_before_output TO ls_event-form.
    APPEND ls_event TO p_events.
  ENDIF.

ENDFORM.                               " BUILD_EVENTTAB

*&---------------------------------------------------------------------
*&      Form  BUILD_COMMENT
*&---------------------------------------------------------------------

FORM build_comment USING p_heading TYPE slis_t_listheader.
  DATA: hline TYPE slis_listheader,
        text(60?????P?:?a???˜??) TYPE c,
        sep(20) TYPE c.
  CLEAR: hline, text.
  hline-typ  = 'H'.
  WRITE: text-101 TO text+23.
  hline-info = text.
  APPEND hline TO p_heading.
  hline-typ  = 'H'.
  CLEAR text.
  WRITE: 'User: ' TO text,
         sy-uname TO text+6,
         'Date: ' TO text+25,
         sy-datum TO text+31,
         'Page: ' TO text+50,
         sy-pagno TO text+56.
  hline-info = text.
  APPEND hline TO p_heading.
  CLEAR text.
  hline-typ  = 'S'.




ENDFORM.                    " BUILD_COMMENT



*---------------------------------------------------------------------
*      Form  ALVL_VALUE_REQUEST
*---------------------------------------------------------------------

FORM alvl_value_request USING    pi_alv
                                 value(p_0158).
  DATA: l_disvariant TYPE disvariant.

* Wertehilfe
  l_disvariant-report  = sy-cprog.
*  l_disvariant-report(1) = 'A'.
  l_disvariant-variant = pi_alv.
  l_disvariant-log_group = p_0158.
  CALL FUNCTION 'LVC_VARIANT_SAVE_LOAD'
       EXPORTING
            i_save_load = 'F'
            i_tabname   = '1'
       CHANGING
            cs_variant  = l_disvariant
       EXCEPTIONS
            OTHERS      = 1.
  IF sy-subrc = 0.
    pi_alv = l_disvariant-variant.
  ELSE.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

ENDFORM.                    " ALVL_VALUE_REQUEST


*---------------------------------------------------------------------*
*       FORM TOP_OF_PAGE                                              *
*---------------------------------------------------------------------*
FORM top_of_page.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
            i_logo             = 'ENJOYSAP_LOGO'
            it_list_commentary = heading.
ENDFORM.

*&---------------------------------------------------------------------
*&      Form  BUILD_LAYOUT
*&---------------------------------------------------------------------

FORM ?????P?:?a???˜??build_layout USING p_layout TYPE slis_layout_alv.
  p_layout-f2code       = f2code.
  p_layout-zebra        = 'X'.
  p_layout-detail_popup = 'X'.
*  p_layout-box_fieldname = 'SELEC'.
  p_layout-colwidth_optimize = 'X'.
  p_layout-cell_merge = 'X'.
  p_layout-detail_initial_lines = 'X'.
  p_layout-window_titlebar =
           'Listado Objetos Desarrollo'.


ENDFORM.                               " BUILD_LAYOUT

*&---------------------------------------------------------------------
*&      Form  WRITE_OUTPUT
*&---------------------------------------------------------------------
FORM write_output.
  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
            i_program_name     = repname
            i_internal_tabname = 'TI_OBJECT'
            i_inclname         = repname
       CHANGING
            ct_fieldcat        = fieldtab.
  IF sy-subrc <> 0.
    WRITE: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_FIELDCATALOG_MERGE'.
  ENDIF.

* Modificamos el catálogo de campos.
  PERFORM modify_fieldcatalog  USING fieldtab[].


* Tabla con los campos por los se ordenarán el listado en el
* List Viewer
* La ordenación se realizará por: destinatario, ciente, pedido y
* posición de pedido.
  PERFORM ordenar_listado USING: 1 'obj_name' 'X' ' '.


* Informar Disposición de Salida
  CLEAR g_variant.
  g_variant-report    = sy-repid.
  g_variant-variant   = p_alvasg.
  g_variant-log_group = '   '.


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            i_callback_program       = repname
*            i_callback_pf_status_set = 'SET_PF_STATUS'
            i_callback_user_command  = 'USER_COMMAND'
            i_callback_top_of_page   = 'TOP_OF_PAGE'
            i_structure_name         = 'TI_OBJECT'
            is_layout                = layout
            it_fieldcat              = fieldtab
            i_default                = 'X'
            i_save                   = g_save
            is_variant               = g_variant
            it_events      ?????P?:?a???˜??          = events[]
       TABLES
            t_outtab                 = ti_object
       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.                               " WRITE_OUTPUT

*---------------------------------------------------------------------*
*      Form  obtener_datos
*---------------------------------------------------------------------*
FORM obtener_datos.
  SELECT * FROM tadir INTO CORRESPONDING FIELDS OF TABLE ti_object
                      WHERE pgmid IN p_pgmid
                        AND object IN p_object
                        AND obj_name IN p_name
                        AND devclass IN p_devcl.
  LOOP AT ti_object.
    PERFORM otros_datos.
    MODIFY ti_object.
  ENDLOOP.
ENDFORM.                    " obtener_datos
*---------------------------------------------------------------------*
*      Form  otros_datos
*---------------------------------------------------------------------*
FORM otros_datos.
  SELECT SINGLE * FROM trdir WHERE name = ti_object-obj_name.
  IF sy-subrc IS INITIAL.
    MOVE-CORRESPONDING trdir TO ti_object.

    SELECT SINGLE * FROM trdirt WHERE name = trdir-name.
    IF sy-subrc IS INITIAL.
      MOVE trdirt-text TO ti_object-text.
    ENDIF.

    SELECT SINGLE * FROM tstc WHERE pgmna = trdir-name.
    IF sy-subrc IS INITIAL.
      MOVE tstc-tcode TO ti_object-tcode.
    ENDIF.
  ENDIF.

ENDFORM.                    " otros_datos


*---------------------------------------------------------------------
*      Form  modify_fieldcatalog
*---------------------------------------------------------------------
FORM modify_fieldcatalog USING p_fieldtab TYPE slis_t_fieldcat_alv.
  DATA: l_fieldcat TYPE slis_fieldcat_alv.
* fixed columns (obligatory)
  READ TABLE p_fieldtab WITH KEY fieldname  = 'SELEC' INTO l_fieldcat.
  IF sy-su?????P?:?a???˜??brc = 0.
    l_fieldcat-no_out = 'X'.
    MODIFY p_fieldtab FROM l_fieldcat INDEX sy-tabix.
  ENDIF.


ENDFORM.                               " INITIALIZE_FIELDCAT

*---------------------------------------------------------------------
*      Form  ordenar_listado
*---------------------------------------------------------------------
* Tabla con los campos por los se ordenarán el listado en el
* List Viewer
*----------------------------------------------------------------------

FORM ordenar_listado USING p_spos p_fieldname p_up p_subtot.

  CLEAR t_sort.
  CLEAR e_sort.
  e_sort-spos = p_spos.
  e_sort-fieldname = p_fieldname.
  e_sort-up = p_up.
  e_sort-subtot = p_subtot.
  APPEND e_sort TO t_sort.

ENDFORM.                    " ordenar_listado




Comentarios
Buscar
¡Sólo los usuarios registrados pueden escribir comentarios!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 
home search