Ver Mensaje Individual
  #3  
Viejo 03/07/09, 17:03:00
Sayury Sayury is offline
Junior Member
 
Fecha de Ingreso: mar 2008
Mensajes: 2
un ejemplo de codigo es algo parecido lo que tienes que hacer
*&---------------------------------------------------------------------*
*& Form REPORT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM report .

*eventos de encabezado de listas
PERFORM x_toppage.
PERFORM x_toplist.

PERFORM e04_comment_build1 USING gt_list_top_of_page[].
PERFORM e04_comment_build USING gt_list_top_of_list[].



PERFORM fieldcat_valida.
PERFORM init_fieldcat.



*5to paso Subrutina para Mostrar listado ******************

*INIT prueba de reporte en bloques

DATA: pfstatus TYPE slis_formname VALUE 'STANDAR',
gt_print TYPE slis_print_alv.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = sy-repid
i_callback_user_command = 'USER_COMMAND'
i_callback_pf_status_set = pfstatus.

PERFORM init_layout.

gs_keyinfo-header01 = 'PRCTR'.
gs_keyinfo-item01 = 'PRCTR'.

*SORT H_REPORTE3 BY PRCTR.
*
*DELETE ADJACENT DUPLICATES FROM H_REPORTE3 COMPARING PRCTR.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_HS_APPEND'
EXPORTING
is_layout = gs_layout
it_fieldcat = gt_fieldcat
is_keyinfo = gs_keyinfo
i_header_tabname = 'H_REPORTE3'
i_item_tabname = 'T_REPORTE3'
it_events = gt_events[]
TABLES
t_outtab_header = h_reporte3
t_outtab_item = t_reporte3
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 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.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
it_fieldcat = gt_fieldcatx
is_layout = gs_layout
i_tabname = 'T_REPORTE1'
it_events = gt_eventsx[]
i_text = text-013
TABLES
t_outtab = t_reporte1.
gt_print-reserve_lines = 2.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
is_print = gt_print.

ENDFORM. " REPORT
*&---------------------------------------------------------------------*
*& Form E03_EVENTTAB_BUILD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_EVENTS[] text
*----------------------------------------------------------------------*
FORM e03_eventtab_build USING e03_lt_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 = e03_lt_events.
READ TABLE e03_lt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE gc_formname_top_of_page TO ls_event-form.
APPEND ls_event TO e03_lt_events.
ENDIF.

ENDFORM. " E03_EVENTTAB_BUILD
*&---------------------------------------------------------------------*
*& Form E04_COMMENT_BUILD

*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_LIST_TOP_OF_PAGE[] text
*----------------------------------------------------------------------*
FORM e04_comment_build USING e04_lt_top_of_list TYPE slis_t_listheader.

DATA: ls_line TYPE slis_listheader,
l_bukrs LIKE t001-butxt,
l_texto(70).

CLEAR ls_line.

ls_line-typ = 'S'.

CONCATENATE text-010 p_hkont INTO ls_line-info
SEPARATED BY space.

APPEND ls_line TO e04_lt_top_of_list.
* Kopfinfo: Typ S
CLEAR ls_line.

ENDFORM. " E04_COMMENT_BUILD

*&---------------------------------------------------------------------*
*& Form INIT_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM init_fieldcat .
DATA: l_count TYPE i.
*
CLEAR: gfield.
l_count = l_count + 1.

gfield-col_pos = l_count.
gfield-fieldname = 'PRCTR'. "Columna
gfield-ref_tabname = 'T_REPORTE3'. "Tabla de salida
gfield-seltext_l = text-002. "Mandante nom colum.
*FIELD-outputlen = '10'. "Pone el ancho fijo a las filas
gfield-just = 'L'. "Centra los registros
gfield-tabname = 'H_REPORTE3'.
*gfield-key = 'X'.
APPEND gfield TO gt_fieldcat.
CLEAR gfield.

l_count = l_count + 1.

gfield-col_pos = l_count.
gfield-fieldname = 'PRCTR'. "Columna
gfield-ref_tabname = 'T_REPORTE3'. "Tabla de salida
gfield-seltext_l = text-002. "Mandante nom colum.
*FIELD-outputlen = '10'. "Pone el ancho fijo a las filas
gfield-just = 'L'. "Centra los registros
gfield-tabname = 'T_REPORTE3'.
gfield-key = 'X'.
APPEND gfield TO gt_fieldcat.
CLEAR gfield.

l_count = l_count + 1.

gfield-col_pos = l_count.
gfield-fieldname = 'BELNR'. "Columna
gfield-ref_tabname = 'T_REPORTE3'. "Tabla de salida
gfield-seltext_l = text-003. "Mandante nom colum.
gfield-outputlen = '10'. "Pone el ancho fijo a las filas
gfield-just = 'L'. "Centra los registros
gfield-tabname = 'T_REPORTE3'.
APPEND gfield TO gt_fieldcat.
CLEAR gfield.


l_count = l_count + 1.

gfield-col_pos = l_count.
gfield-fieldname = 'DMBTR'. "Columna
gfield-ref_tabname = 'T_REPORTE3'. "Tabla de salida
gfield-seltext_l = text-005. "Mandante nom colum.
gfield-outputlen = '16'. "Pone el ancho fijo a las filas
gfield-just = 'L'. "Centra los registros
gfield-tabname = 'T_REPORTE3'.
APPEND gfield TO gt_fieldcat.
CLEAR gfield.

l_count = l_count + 1.

gfield-col_pos = l_count.
gfield-fieldname = 'TEXT1'. "Columna
gfield-ref_tabname = 'T_REPORTE3'. "Tabla de salida
gfield-seltext_l = text-006. "Mandante nom colum.
gfield-outputlen = '100'. "Pone el ancho fijo a las filas
gfield-just = 'L'. "Centra los registros
gfield-tabname = 'T_REPORTE3'.
APPEND gfield TO gt_fieldcat.
CLEAR gfield.

ENDFORM. " INIT_FIELDCAT

*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM xtop_of_page.
*
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
* i_logo = 'HTMLCNTL_TESTHTM2_SAPLOGO'
*I_LOGO = 'ENJOYSAP_LOGO'
it_list_commentary = gt_list_top_of_page
i_end_of_list_grid = space
i_alv_form = 'X'.
ENDFORM. "TOP_OF_PAGE



*---------------------------------------------------------------------*
* FORM XTOP_OF_LIST *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM xtop_of_list.
* BREAK-POINT.
*WRITE: / 'X_TOP_OF_LIST'.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
* i_logo = 'HTMLCNTL_TESTHTM2_SAPLOGO'
*I_LOGO = 'ENJOYSAP_LOGO'
it_list_commentary = gt_list_top_of_list
i_end_of_list_grid = space
i_alv_form = 'X'.
ENDFORM. "XTOP_OF_LIST
*&---------------------------------------------------------------------*
*& Form INIT_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM init_layout .

* gs_layout-box_fieldname = 'HKONT'.
* gs_layout-box_tabname = 'T_REPORTE3'.
*gs_layout-info_fieldname = 'LISTINFO'.

ENDFORM. " INIT_LAYOUT
*&---------------------------------------------------------------------*
*& Form LISTADO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM listado .

DATA: u_tabname TYPE slis_tabname,
lt_sort TYPE slis_t_sortinfo_alv.

g_repid = sy-repid.


CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid "Nombre del reporte
i_grid_settings = t_grid_settings
i_grid_title = text-010
it_fieldcat = gt_fieldcat[] "Titulos reporte
it_events = gt_events
is_print = t_print
i_save = 'A'
TABLES
t_outtab = t_reporte3. "Tabla de salida


ENDFORM. " LISTADO
*&---------------------------------------------------------------------*
*& Form FORMATO_GRID
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM formato_grid .



************************** Formato al Grid *****************************
t_print-no_print_listinfos = 'X'.
t_grid_settings-top_p_only = 'X'.
t_grid_settings-eol_p_only = 'X'.
************************************************************************

ENDFORM. " FORMATO_GRID

*---------------------------------------------------------------------*
* FORM PF_STATUS_SET *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> EXTAB *
*---------------------------------------------------------------------*
FORM pf_status_set USING extab TYPE slis_t_extab.
* BREAK-POINT.
SET PF-STATUS 'STANDARD' .
ENDFORM. "PF_STATUS_SET
*&---------------------------------------------------------------------*
*& Form FIELDCAT_VALIDA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fieldcat_valida .

gfieldx-fieldname = 'HKONT'. "Columna
gfieldx-ref_tabname = 'T_REPORTE1'. "Tabla de salida
gfieldx-seltext_l = text-002. "Mandante nom colum.
gfieldx-outputlen = '10'. "Pone el ancho fijo a las filas
gfieldx-just = 'L'. "Centra los registros
APPEND gfieldx TO gt_fieldcatx.
CLEAR gfieldx.


gfieldx-fieldname = 'TEXT1'. "Columna
gfieldx-ref_tabname = 'T_REPORTE1'. "Tabla de salida
gfieldx-seltext_l = text-006. "Mandante nom colum.
gfieldx-outputlen = '100'. "Pone el ancho fijo a las filas
gfieldx-just = 'L'. "Centra los registros
APPEND gfieldx TO gt_fieldcatx.
CLEAR gfieldx.



ENDFORM. " FIELDCAT_VALIDA
*&---------------------------------------------------------------------*
*& Form E03_EVENTTAB_BUILD1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_EVENTS[] text
*----------------------------------------------------------------------*
FORM e03_eventtab_build1 USING e03_lt_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 = e03_lt_events.
READ TABLE e03_lt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE gc_formname_top_of_page TO ls_event-form.
APPEND ls_event TO e03_lt_events.
ENDIF.

ENDFORM. " E03_EVENTTAB_BUILD1
*&---------------------------------------------------------------------*
*& Form X_TOPLIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM x_toplist .

CLEAR xs_event.
xs_event-name = slis_ev_top_of_list.
xs_event-form = 'XTOP_OF_LIST'.
APPEND xs_event TO gt_events.

ENDFORM. " X_TOPLIST
*&---------------------------------------------------------------------*
*& Form X_TOPPAGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM x_toppage .

CLEAR xs_event.
xs_event-name = slis_ev_top_of_page.
xs_event-form = 'XTOP_OF_PAGE'.
APPEND xs_event TO gt_events.

ENDFORM. " X_TOPPAGE
*&---------------------------------------------------------------------*
*& Form E04_COMMENT_BUILD1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_LIST_TOP_OF_PAGE[] text
*----------------------------------------------------------------------*
FORM e04_comment_build1 USING e04_lt_top_of_page TYPE slis_t_listheader.


DATA: ls_line TYPE slis_listheader,
l_bukrs LIKE t001-butxt,
l_texto(70).


*ESTRA EL NOMBRE EN TEXTO DE LA SOCIEDAD

SELECT SINGLE butxt INTO l_bukrs
FROM t001
WHERE spras = sy-langu
AND bukrs = p_bukrs.

*ESCRIBRE LA SOCIEDAD
CONCATENATE p_bukrs l_bukrs INTO l_texto
SEPARATED BY space.
ls_line-typ = 'S'.
ls_line-key = text-012.
ls_line-info = l_texto.


APPEND ls_line TO e04_lt_top_of_page.

CLEAR ls_line.
ENDFORM. " E04_COMMENT_BUILD1
Responder Con Cita