Tengo el sigiente problema:
cuando corro el reporte me imprime la cabecera con sus posiciones , pero cuando le doy alguno de los botones de la barra de sap como el back,el cancelar y el finalizar me duplica las colunmas de la cabecera.
es un reporte de RH.
El codigo es el siguiente:
TABLES: pernr, "Selecciones estándar p.reporting datos maestros HR
pcl1, "Cluster HR 1
pcl2, "Cluster HR 2
t512w, "Valorac.CC-nóminas
t512t, "Texto de CC-nóminas
t521b, "Clave de receptor
t549q, "Períodos de nómina
t549a, "Áreas de nómina
t54c1, "Calendario para acumulación
pa0000. "Registro maestro de personal Infotipo 0000(Medidas)
*================================================= =====================*
* T Y P E P O O L S *
*================================================= =====================*
TYPE-POOLS: slis.
*================================================= =====================*
* I N F O T Y P E S *
*================================================= =====================*
INFOTYPES: 0000, "Medidas
0002, "Registro maestro de personal Infotipo 0002 (Datos pers.)
0185. "Identificadores.
*================================================= =====================*
* C L U S T E R I N T E R N A C I O N A L *
*================================================= =====================*
INCLUDE rpc2cd00. "Cluster CD data definition Cluster-Directory
DATA: BEGIN OF COMMON PART.
INCLUDE: rpc2rx00. "Definition Cluster RX (I) Internacional
INCLUDE: rpc2rxx0. "Definition Cluster RX (II)Internacional
DATA: END OF COMMON PART.
INCLUDE: rpppxd00. "Definition PCL1/2-Buffer Internacional
DATA: BEGIN OF COMMON PART buffer.
INCLUDE rpppxd10. "Common part buffer PCL1/PCL2 Internacional
DATA: END OF COMMON PART.
INCLUDE rpppxm00. "Buffer handling routine PCL1/2 Internacional
INCLUDE rpcmgr00. "CD-Manager-Routinen Internacional
*================================================= =====================*
* C L U S T E R *
*================================================= =====================*
DATA: BEGIN OF i_evpdir OCCURS 1.
INCLUDE STRUCTURE pc261.
DATA: END OF i_evpdir.
DATA: BEGIN OF i_rgdir OCCURS 1.
INCLUDE STRUCTURE pc261.
DATA: END OF i_rgdir.
DATA: BEGIN OF t_rgdir OCCURS 1.
INCLUDE STRUCTURE pc261.
DATA: END OF t_rgdir.
*================================================= =====================*
* V A R I A B L E S / C O N S T A N T S
*================================================= =====================*
DATA: country(2),
vacio(10).
DATA: p_permo LIKE t549a-permo.
DATA: v_pabrp LIKE t54c1-pabrp.
DATA: v_mes(3).
DATA: v_ano(4).
DATA: m_apor(8).
DATA: v_ans TYPE c.
*================================================= =====================*
* I N T E R N A L T A B L E S *
*================================================= =====================*
DATA: BEGIN OF it_datos OCCURS 0,
pernr LIKE pernr-pernr, "Núm. Empleado
icnum LIKE p0185-icnum, "Tarjeta de identidad
vorna LIKE p0002-vorna, "Nombres
nachn LIKE p0002-nachn, "Primer apellido
nach2 LIKE p0002-nach2, "Segundo apellido
patro(11), "No.Patronal Constante
aem LIKE rt-betrg, "Aportacion Empleado Mensual
apm LIKE rt-betrg, "Aportacion Patrono Mensual
monam LIKE t015m-monam, "Mes de la aportacion
END OF it_datos.
DATA: BEGIN OF it_periodos OCCURS 0,
permo LIKE t54c1-permo,
pabrj LIKE t54c1-pabrj,
cumty VALUE 'm',
pabrp LIKE t54c1-pabrp,
END OF it_periodos.
*================================================= =====================*
* DECLARACION PARA SER UTILIZADA EN FUNCION ALV *
*================================================= =====================*
*ALV data declarations
DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATA: it_fieldcat TYPE lvc_t_fcat, "slis_t_fieldcat_alv WITH HEADER LINE,
wa_fieldcat TYPE lvc_s_fcat,
gd_tab_group TYPE slis_t_sp_group_alv,
gd_layout TYPE lvc_s_layo, "slis_layout_alv,
gd_repid LIKE sy-repid.
*================================================= =====================*
*================================================= =====================*
* S E L E C T - O P T I O N S / P A R A M E T E R S *
*================================================= =====================*
SELECTION-SCREEN BEGIN OF BLOCK pernom WITH FRAME TITLE text-001.
PARAMETERS:
p_perbeg LIKE rpclxxxx-aper_von OBLIGATORY,
p_perend LIKE rpclxxxx-aper_bis.
SELECTION-SCREEN END OF BLOCK pernom.
SELECTION-SCREEN BEGIN OF BLOCK periodo WITH FRAME TITLE text-002.
PARAMETERS:
p_pabrj LIKE t54c1-pabrj,
p_cumno LIKE t54c1-cumno.
SELECTION-SCREEN END OF BLOCK periodo.
*================================================= =====================*
* I N I T I A L I Z A T I O N E V E N T *
*================================================= =====================*
INITIALIZATION.
*================================================= =====================*
* A T S E L E C T I O N - S C R E E N E V E N T *
*================================================= =====================*
* Código para campos obligatorios, y de fechas de periodos en la p-ini *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON pnpabkrs.
CLEAR: p_permo, p_pabrj,p_cumno.
IF pnpabkrs-low IS INITIAL.
MESSAGE e016(rp)
WITH 'Area de nómina no puede ir vacia'(e04).
ENDIF.
SELECT * FROM t549a WHERE abkrs IN pnpabkrs.
IF NOT p_permo IS INITIAL
AND p_permo NE t549a-permo.
MESSAGE e016(rp)
WITH 'Existen modificadores de período diferentes'(e03).
ENDIF.
p_permo = t549a-permo.
ENDSELECT.
AT SELECTION-SCREEN ON p_perend.
IF NOT p_perend IS INITIAL.
IF p_perbeg > p_perend.
MESSAGE e016(rp)
WITH 'Periodo Final debé ser mayor al inicial'(e04).
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON p_perbeg.
IF p_perend IS INITIAL.
p_perend = p_perbeg.
ENDIF.
AT SELECTION-SCREEN ON BLOCK pernom.
"Asignamos la fechas de inicio y fin de periodos
SELECT SINGLE begda INTO pnpbegda
FROM t549q
WHERE permo EQ p_permo AND
pabrj EQ p_perbeg(4) AND
pabrp EQ p_perbeg+4(2).
SELECT SINGLE endda INTO pnpendda
FROM t549q
WHERE permo EQ p_permo AND
pabrj EQ p_perend(4) AND
pabrp EQ p_perend+4(2).
** Obtencion de periodos de acuerdo a los parametros de entrada
* SELECT * FROM t54c1
* INTO CORRESPONDING FIELDS OF TABLE it_periodos
* WHERE permo = p_permo AND
* pabrj EQ p_perbeg(4) AND
* cumty = 'M'.
* break scervantes.
p_pabrj = pnpbegda(4).
p_cumno = pnpendda+4(2).
*================================================= =====================*
* S T A R T - O F - S E L E C T I O N E V E N T *
*================================================= =====================*
START-OF-SELECTION.
GET pernr.
REFRESH: i_rgdir.
CLEAR: it_datos.
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = pernr-pernr
IMPORTING
molga = country
TABLES
in_rgdir = i_rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
IF sy-subrc = 1. "De FUNCTION 'CU_READ_RGDIR'
ELSE. "de sy-subrc = 1. FUNCTION 'CU_READ_RGDIR'
*/----------obtención de cluster de nómina
LOOP AT i_rgdir WHERE srtza = 'A' "Indicador de actualidad de registro
AND fpbeg <= pn-endda "Final del período de nómina (Período para)
AND fpend >= pn-begda "Incio del período de nómina (Período para)
AND fpper <> '000000'. "Período para de la nómina
rx-key-pernr = pernr-pernr.
rx-key-seqno = i_rgdir-seqnr.
rp-imp-c2-rx. " Para Nomina Internacional
PERFORM data_retrieval.
ENDLOOP. "de i_rgdir
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM display_alv_report.
ENDIF. "de sy-subrc = 1. FUNCTION 'CU_READ_RGDIR'.
*================================================= =====================*
* E N D - O F - S E L E C T I O N E V E N T *
*================================================= =====================*
*================================================= =====================*
* T O P - O F - P A G E E V E N T *
*================================================= =====================*
TOP-OF-PAGE.
*================================================= =====================*
* A T L I N E - S E L E C T I O N E V E N T *
*================================================= =====================*
AT LINE-SELECTION.
*================================================= =====================*
* A T U S E R - C O M M A N D E V E N T *
*================================================= =====================*
*&---------------------------------------------------------------------*
*& Form data_retrieval
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM data_retrieval.
CLEAR p0185.
READ TABLE p0185 WITH KEY pernr = pernr-pernr subty = 'H2'.
CHECK p0185-pernr = pernr-pernr AND p0185-subty = 'H2'.
it_datos-pernr = p0185-pernr.
it_datos-icnum = p0185-icnum.
READ TABLE p0002 WITH KEY pernr = it_datos-pernr.
it_datos-vorna = p0002-vorna.
it_datos-nachn = p0002-nachn.
it_datos-nach2 = p0002-nach2.
* Asigna valor coonstante a No. Patronal.
it_datos-patro = '201970321 1'.
CLEAR : it_datos-aem,it_datos-apm.
LOOP AT rt.
* Asigna valores para las Aportaciones.
IF rt-lgart = '2H02' . "aportaciones mensuales
it_datos-aem = it_datos-aem + rt-betrg.
ENDIF.
IF rt-lgart = '3H02' . "aportaciones mensuales
it_datos-apm = it_datos-apm + rt-betrg.
ENDIF.
ENDLOOP. " endloop de rt
* Obtencion del texto del mes y el año de acuerdo a los parametros
* de entrada que seran utilizados en el campo mes de aportacion
SELECT SINGLE monam INTO v_mes
FROM t015m
WHERE monum = p_cumno AND
spras = 'S'.
v_ano = p_pabrj.
CONCATENATE v_mes '-' v_ano+2(2) INTO m_apor.
it_datos-monam = m_apor.
APPEND it_datos.
ENDFORM. " DATA_RETRIEVAL
*&---------------------------------------------------------------------*
*& Form build_fieldcatalog
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM build_fieldcatalog .
wa_fieldcat-fieldname = 'PERNR'.
wa_fieldcat-scrtext_m = 'No.Empleado'.
wa_fieldcat-col_pos = 0.
wa_fieldcat-outputlen = 8.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ICNUM'.
wa_fieldcat-scrtext_m = 'No. de Identidad'.
wa_fieldcat-col_pos = 1.
wa_fieldcat-outputlen = 14.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'VORNA'.
wa_fieldcat-scrtext_m = 'Nombre(s)'.
wa_fieldcat-col_pos = 2.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'NACHN'.
wa_fieldcat-scrtext_m = 'Apellido Paterno'.
wa_fieldcat-col_pos = 3.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'NACH2'.
wa_fieldcat-scrtext_m = 'Apellido Materno'.
wa_fieldcat-col_pos = 4.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'PATRO'.
wa_fieldcat-scrtext_m = 'No.patronal'.
wa_fieldcat-col_pos = 5.
wa_fieldcat-outputlen = 11.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'AEM'.
wa_fieldcat-scrtext_m = 'Ap.Empleado Mensual'.
wa_fieldcat-col_pos = 6.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'APM'.
wa_fieldcat-scrtext_m = 'Ap.Patrono.Mensual'.
wa_fieldcat-col_pos = 7.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MONAM'.
wa_fieldcat-scrtext_m = 'Mes de la Aportacion'.
wa_fieldcat-col_pos = 8.
wa_fieldcat-outputlen = 17.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. " BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*& Form build_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
**----------------------------------------------------------------------*
FORM build_layout .
* Set layout field for field attributes(i.e. input/output)
gd_layout-stylefname = 'FIELD_STYLE'.
gd_layout-zebra = 'X'.
ENDFORM. " BUILD_LAYOUT
*
*&---------------------------------------------------------------------*
*& Form display_alv_report
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_alv_report .
gd_repid = sy-repid.
* call function 'REUSE_ALV_GRID_DISPLAY'
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = 'ZNOM_REP_FOSOVI_HON'
* i_callback_user_command = 'USER COMMAND '
is_layout_lvc = gd_layout
it_fieldcat_lvc = it_fieldcat
* i_save = 'X'
TABLES
t_outtab = it_datos
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
si alguien pudiera ayudarme.
cuando corro el reporte me imprime la cabecera con sus posiciones , pero cuando le doy alguno de los botones de la barra de sap como el back,el cancelar y el finalizar me duplica las colunmas de la cabecera.
es un reporte de RH.
El codigo es el siguiente:
TABLES: pernr, "Selecciones estándar p.reporting datos maestros HR
pcl1, "Cluster HR 1
pcl2, "Cluster HR 2
t512w, "Valorac.CC-nóminas
t512t, "Texto de CC-nóminas
t521b, "Clave de receptor
t549q, "Períodos de nómina
t549a, "Áreas de nómina
t54c1, "Calendario para acumulación
pa0000. "Registro maestro de personal Infotipo 0000(Medidas)
*================================================= =====================*
* T Y P E P O O L S *
*================================================= =====================*
TYPE-POOLS: slis.
*================================================= =====================*
* I N F O T Y P E S *
*================================================= =====================*
INFOTYPES: 0000, "Medidas
0002, "Registro maestro de personal Infotipo 0002 (Datos pers.)
0185. "Identificadores.
*================================================= =====================*
* C L U S T E R I N T E R N A C I O N A L *
*================================================= =====================*
INCLUDE rpc2cd00. "Cluster CD data definition Cluster-Directory
DATA: BEGIN OF COMMON PART.
INCLUDE: rpc2rx00. "Definition Cluster RX (I) Internacional
INCLUDE: rpc2rxx0. "Definition Cluster RX (II)Internacional
DATA: END OF COMMON PART.
INCLUDE: rpppxd00. "Definition PCL1/2-Buffer Internacional
DATA: BEGIN OF COMMON PART buffer.
INCLUDE rpppxd10. "Common part buffer PCL1/PCL2 Internacional
DATA: END OF COMMON PART.
INCLUDE rpppxm00. "Buffer handling routine PCL1/2 Internacional
INCLUDE rpcmgr00. "CD-Manager-Routinen Internacional
*================================================= =====================*
* C L U S T E R *
*================================================= =====================*
DATA: BEGIN OF i_evpdir OCCURS 1.
INCLUDE STRUCTURE pc261.
DATA: END OF i_evpdir.
DATA: BEGIN OF i_rgdir OCCURS 1.
INCLUDE STRUCTURE pc261.
DATA: END OF i_rgdir.
DATA: BEGIN OF t_rgdir OCCURS 1.
INCLUDE STRUCTURE pc261.
DATA: END OF t_rgdir.
*================================================= =====================*
* V A R I A B L E S / C O N S T A N T S
*================================================= =====================*
DATA: country(2),
vacio(10).
DATA: p_permo LIKE t549a-permo.
DATA: v_pabrp LIKE t54c1-pabrp.
DATA: v_mes(3).
DATA: v_ano(4).
DATA: m_apor(8).
DATA: v_ans TYPE c.
*================================================= =====================*
* I N T E R N A L T A B L E S *
*================================================= =====================*
DATA: BEGIN OF it_datos OCCURS 0,
pernr LIKE pernr-pernr, "Núm. Empleado
icnum LIKE p0185-icnum, "Tarjeta de identidad
vorna LIKE p0002-vorna, "Nombres
nachn LIKE p0002-nachn, "Primer apellido
nach2 LIKE p0002-nach2, "Segundo apellido
patro(11), "No.Patronal Constante
aem LIKE rt-betrg, "Aportacion Empleado Mensual
apm LIKE rt-betrg, "Aportacion Patrono Mensual
monam LIKE t015m-monam, "Mes de la aportacion
END OF it_datos.
DATA: BEGIN OF it_periodos OCCURS 0,
permo LIKE t54c1-permo,
pabrj LIKE t54c1-pabrj,
cumty VALUE 'm',
pabrp LIKE t54c1-pabrp,
END OF it_periodos.
*================================================= =====================*
* DECLARACION PARA SER UTILIZADA EN FUNCION ALV *
*================================================= =====================*
*ALV data declarations
DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATA: it_fieldcat TYPE lvc_t_fcat, "slis_t_fieldcat_alv WITH HEADER LINE,
wa_fieldcat TYPE lvc_s_fcat,
gd_tab_group TYPE slis_t_sp_group_alv,
gd_layout TYPE lvc_s_layo, "slis_layout_alv,
gd_repid LIKE sy-repid.
*================================================= =====================*
*================================================= =====================*
* S E L E C T - O P T I O N S / P A R A M E T E R S *
*================================================= =====================*
SELECTION-SCREEN BEGIN OF BLOCK pernom WITH FRAME TITLE text-001.
PARAMETERS:
p_perbeg LIKE rpclxxxx-aper_von OBLIGATORY,
p_perend LIKE rpclxxxx-aper_bis.
SELECTION-SCREEN END OF BLOCK pernom.
SELECTION-SCREEN BEGIN OF BLOCK periodo WITH FRAME TITLE text-002.
PARAMETERS:
p_pabrj LIKE t54c1-pabrj,
p_cumno LIKE t54c1-cumno.
SELECTION-SCREEN END OF BLOCK periodo.
*================================================= =====================*
* I N I T I A L I Z A T I O N E V E N T *
*================================================= =====================*
INITIALIZATION.
*================================================= =====================*
* A T S E L E C T I O N - S C R E E N E V E N T *
*================================================= =====================*
* Código para campos obligatorios, y de fechas de periodos en la p-ini *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON pnpabkrs.
CLEAR: p_permo, p_pabrj,p_cumno.
IF pnpabkrs-low IS INITIAL.
MESSAGE e016(rp)
WITH 'Area de nómina no puede ir vacia'(e04).
ENDIF.
SELECT * FROM t549a WHERE abkrs IN pnpabkrs.
IF NOT p_permo IS INITIAL
AND p_permo NE t549a-permo.
MESSAGE e016(rp)
WITH 'Existen modificadores de período diferentes'(e03).
ENDIF.
p_permo = t549a-permo.
ENDSELECT.
AT SELECTION-SCREEN ON p_perend.
IF NOT p_perend IS INITIAL.
IF p_perbeg > p_perend.
MESSAGE e016(rp)
WITH 'Periodo Final debé ser mayor al inicial'(e04).
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON p_perbeg.
IF p_perend IS INITIAL.
p_perend = p_perbeg.
ENDIF.
AT SELECTION-SCREEN ON BLOCK pernom.
"Asignamos la fechas de inicio y fin de periodos
SELECT SINGLE begda INTO pnpbegda
FROM t549q
WHERE permo EQ p_permo AND
pabrj EQ p_perbeg(4) AND
pabrp EQ p_perbeg+4(2).
SELECT SINGLE endda INTO pnpendda
FROM t549q
WHERE permo EQ p_permo AND
pabrj EQ p_perend(4) AND
pabrp EQ p_perend+4(2).
** Obtencion de periodos de acuerdo a los parametros de entrada
* SELECT * FROM t54c1
* INTO CORRESPONDING FIELDS OF TABLE it_periodos
* WHERE permo = p_permo AND
* pabrj EQ p_perbeg(4) AND
* cumty = 'M'.
* break scervantes.
p_pabrj = pnpbegda(4).
p_cumno = pnpendda+4(2).
*================================================= =====================*
* S T A R T - O F - S E L E C T I O N E V E N T *
*================================================= =====================*
START-OF-SELECTION.
GET pernr.
REFRESH: i_rgdir.
CLEAR: it_datos.
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = pernr-pernr
IMPORTING
molga = country
TABLES
in_rgdir = i_rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.
IF sy-subrc = 1. "De FUNCTION 'CU_READ_RGDIR'
ELSE. "de sy-subrc = 1. FUNCTION 'CU_READ_RGDIR'
*/----------obtención de cluster de nómina
LOOP AT i_rgdir WHERE srtza = 'A' "Indicador de actualidad de registro
AND fpbeg <= pn-endda "Final del período de nómina (Período para)
AND fpend >= pn-begda "Incio del período de nómina (Período para)
AND fpper <> '000000'. "Período para de la nómina
rx-key-pernr = pernr-pernr.
rx-key-seqno = i_rgdir-seqnr.
rp-imp-c2-rx. " Para Nomina Internacional
PERFORM data_retrieval.
ENDLOOP. "de i_rgdir
PERFORM build_fieldcatalog.
PERFORM build_layout.
PERFORM display_alv_report.
ENDIF. "de sy-subrc = 1. FUNCTION 'CU_READ_RGDIR'.
*================================================= =====================*
* E N D - O F - S E L E C T I O N E V E N T *
*================================================= =====================*
*================================================= =====================*
* T O P - O F - P A G E E V E N T *
*================================================= =====================*
TOP-OF-PAGE.
*================================================= =====================*
* A T L I N E - S E L E C T I O N E V E N T *
*================================================= =====================*
AT LINE-SELECTION.
*================================================= =====================*
* A T U S E R - C O M M A N D E V E N T *
*================================================= =====================*
*&---------------------------------------------------------------------*
*& Form data_retrieval
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM data_retrieval.
CLEAR p0185.
READ TABLE p0185 WITH KEY pernr = pernr-pernr subty = 'H2'.
CHECK p0185-pernr = pernr-pernr AND p0185-subty = 'H2'.
it_datos-pernr = p0185-pernr.
it_datos-icnum = p0185-icnum.
READ TABLE p0002 WITH KEY pernr = it_datos-pernr.
it_datos-vorna = p0002-vorna.
it_datos-nachn = p0002-nachn.
it_datos-nach2 = p0002-nach2.
* Asigna valor coonstante a No. Patronal.
it_datos-patro = '201970321 1'.
CLEAR : it_datos-aem,it_datos-apm.
LOOP AT rt.
* Asigna valores para las Aportaciones.
IF rt-lgart = '2H02' . "aportaciones mensuales
it_datos-aem = it_datos-aem + rt-betrg.
ENDIF.
IF rt-lgart = '3H02' . "aportaciones mensuales
it_datos-apm = it_datos-apm + rt-betrg.
ENDIF.
ENDLOOP. " endloop de rt
* Obtencion del texto del mes y el año de acuerdo a los parametros
* de entrada que seran utilizados en el campo mes de aportacion
SELECT SINGLE monam INTO v_mes
FROM t015m
WHERE monum = p_cumno AND
spras = 'S'.
v_ano = p_pabrj.
CONCATENATE v_mes '-' v_ano+2(2) INTO m_apor.
it_datos-monam = m_apor.
APPEND it_datos.
ENDFORM. " DATA_RETRIEVAL
*&---------------------------------------------------------------------*
*& Form build_fieldcatalog
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM build_fieldcatalog .
wa_fieldcat-fieldname = 'PERNR'.
wa_fieldcat-scrtext_m = 'No.Empleado'.
wa_fieldcat-col_pos = 0.
wa_fieldcat-outputlen = 8.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'ICNUM'.
wa_fieldcat-scrtext_m = 'No. de Identidad'.
wa_fieldcat-col_pos = 1.
wa_fieldcat-outputlen = 14.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'VORNA'.
wa_fieldcat-scrtext_m = 'Nombre(s)'.
wa_fieldcat-col_pos = 2.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'NACHN'.
wa_fieldcat-scrtext_m = 'Apellido Paterno'.
wa_fieldcat-col_pos = 3.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'NACH2'.
wa_fieldcat-scrtext_m = 'Apellido Materno'.
wa_fieldcat-col_pos = 4.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'PATRO'.
wa_fieldcat-scrtext_m = 'No.patronal'.
wa_fieldcat-col_pos = 5.
wa_fieldcat-outputlen = 11.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'AEM'.
wa_fieldcat-scrtext_m = 'Ap.Empleado Mensual'.
wa_fieldcat-col_pos = 6.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'APM'.
wa_fieldcat-scrtext_m = 'Ap.Patrono.Mensual'.
wa_fieldcat-col_pos = 7.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'MONAM'.
wa_fieldcat-scrtext_m = 'Mes de la Aportacion'.
wa_fieldcat-col_pos = 8.
wa_fieldcat-outputlen = 17.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. " BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*& Form build_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
**----------------------------------------------------------------------*
FORM build_layout .
* Set layout field for field attributes(i.e. input/output)
gd_layout-stylefname = 'FIELD_STYLE'.
gd_layout-zebra = 'X'.
ENDFORM. " BUILD_LAYOUT
*
*&---------------------------------------------------------------------*
*& Form display_alv_report
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_alv_report .
gd_repid = sy-repid.
* call function 'REUSE_ALV_GRID_DISPLAY'
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = 'ZNOM_REP_FOSOVI_HON'
* i_callback_user_command = 'USER COMMAND '
is_layout_lvc = gd_layout
it_fieldcat_lvc = it_fieldcat
* i_save = 'X'
TABLES
t_outtab = it_datos
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
si alguien pudiera ayudarme.
Comentario