0% found this document useful (0 votes)
18 views

'99991231' 'Período Escolhido Não Trará Resultados. Escolher Outro Período.' 'I'

This document defines the data types and structures needed to display employee data in an ALV grid. It retrieves employee data from database tables based on a date range, calculates seniority values, and formats the data to populate the ALV grid. Field categories are defined to describe the columns. Forms are used to layout the grid, retrieve and format the data, and display the results.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

'99991231' 'Período Escolhido Não Trará Resultados. Escolher Outro Período.' 'I'

This document defines the data types and structures needed to display employee data in an ALV grid. It retrieves employee data from database tables based on a date range, calculates seniority values, and formats the data to populate the ALV grid. Field categories are defined to describe the columns. Forms are used to layout the grid, retrieve and format the data, and display the results.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

REPORT yhrr0023.

INFOTYPES: 0001, 0002.


TABLES: pernr.
TYPES: BEGIN OF y_alv,
pernr
TYPE p_pernr,
ordem
TYPE string,
nome
TYPE string,
cargo
TYPE string,
dt_admissao TYPE datum,
anos
TYPE i,
meses
TYPE i,
dias
TYPE i,
END OF y_alv.
DATA: t_alv TYPE TABLE OF y_alv,
w_alv TYPE y_alv.
DATA: l_message_handler TYPE REF TO if_hrpa_message_handler,
l_begda
TYPE datum,
l_endda
TYPE datum,
l_index
LIKE sy-tabix,
l_idx_c
TYPE string,
l_trat(5)
TYPE c,
l_nome_c(60)
TYPE c,
l_stext
TYPE p1000-stext.
DATA: l_layout TYPE slis_layout_alv,
l_layout1 TYPE slis_layout_alv,
l_repid LIKE sy-repid,
w_fieldcat TYPE slis_fieldcat_alv,
t_fieldcat TYPE slis_t_fieldcat_alv.
START-OF-SELECTION.
l_begda = pn-begda.
l_endda = pn-endda.
IF l_begda = sy-datum AND l_endda = '99991231'.
MESSAGE 'Perodo escolhido no trar resultados. Escolher outro perodo.' TYPE 'I'.
RETURN.
ENDIF.
IF l_endda = '99991231'.
l_endda = sy-datum.
ENDIF.

GET pernr.
PERFORM get_data.
END-OF-SELECTION.

SORT t_alv BY anos meses dias DESCENDING pernr ASCENDING.


LOOP AT t_alv INTO w_alv.
l_index = sy-tabix.
l_idx_c = l_index.
CONCATENATE l_idx_c '' INTO w_alv-ordem.
CONDENSE w_alv-ordem NO-GAPS.
MODIFY t_alv FROM w_alv INDEX l_index.
ENDLOOP.
* PERFORM alv_layout.
* PERFORM alv_fieldcat.
*
* PERFORM exibe_alv.
FORM open_job_formulario.
CALL FUNCTION 'FP_JOB_OPEN'
CHANGING
ie_outputparams = fp_outputparams
EXCEPTIONS
cancel
=1
usage_error = 2
system_error = 3
internal_error = 4
OTHERS
= 5.
IF sy-subrc IS NOT INITIAL.
MESSAGE 'Erro ao executar relatrio' TYPE 'E' .
ENDIF.
fp_docparams-langu = 'P'.
fp_docparams-country = 'BR'.
CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
EXPORTING
i_name = 'YHR_FORM_DOSSIE'
IMPORTING
e_funcname = fm_name.
ENDFORM.
FORM get_data.
CLEAR: w_alv.
w_alv-pernr = pernr-pernr.
* Buscar data de admisso
CALL FUNCTION 'HR_ENTRY_DATE'
EXPORTING
persnr
= pernr-pernr

IMPORTING
entrydate
= w_alv-dt_admissao
EXCEPTIONS
entry_date_not_found = 1
pernr_not_assigned = 2
OTHERS
= 3.
CHECK w_alv-dt_admissao IS NOT INITIAL.
* Calcular dias, meses e anos
CALL FUNCTION 'HR_ES_CALC_YRS_MTHS_DAYS'
EXPORTING
beg_da
= w_alv-dt_admissao
end_da
= l_endda
IMPORTING
no_day
= w_alv-dias
no_month
= w_alv-meses
no_year
= w_alv-anos
EXCEPTIONS
dateint_error = 1
OTHERS
= 2.
* Buscar nome e forma de tratamento
rp-provide-from-last p0002 space l_begda l_endda.
CLEAR: l_trat.
SELECT SINGLE atext
INTO l_trat
FROM t522t
WHERE anred = p0002-anred
AND sprsl = sy-langu.
IF sy-subrc IS INITIAL AND l_trat IS NOT INITIAL.
CONCATENATE l_trat p0002-cname INTO l_nome_c SEPARATED BY space.
CALL FUNCTION 'ISP_CONVERT_FIRSTCHARS_TOUPPER'
EXPORTING
input_string = l_nome_c
IMPORTING
output_string = l_nome_c.
w_alv-nome = l_nome_c.
ENDIF.
* Buscar cargo
rp-provide-from-last p0001 space l_begda l_endda.
CALL FUNCTION 'RH_READ_OBJECT'
EXPORTING
plvar = '01'
otype = 'C'
objid = p0001-stell
IMPORTING

stext = l_stext
EXCEPTIONS
not_found = 1
OTHERS = 2.
w_alv-cargo = l_stext.
APPEND w_alv TO t_alv.
ENDFORM.
FORM exibe_alv.
l_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program
= l_repid
i_callback_top_of_page = 'TOP-OF-PAGE'
"i_grid_title
= 'MINISTRIO PBLICO DO ESTADO DO ESPRITO SANTO'
i_callback_pf_status_set = 'PF_STATUS_SET'
is_layout
= l_layout
it_fieldcat
= t_fieldcat
i_default
= 'X'
i_save
= 'A'
TABLES
t_outtab
= t_alv
EXCEPTIONS
program_error
=1
OTHERS
= 2.
ENDFORM.
FORM pf_status_set USING i_rt_extab TYPE slis_t_extab.
SET PF-STATUS 'STANDARD' OF PROGRAM 'SAPLKKBL'.
"SET PF-STATUS 'STATUS_ALV' EXCLUDING i_rt_extab.
ENDFORM.
FORM alv_layout.
l_layout-zebra
= 'X'.
l_layout-colwidth_optimize
= 'X'.
ENDFORM.
" alv_layout
FORM alv_fieldcat.
PERFORM fill_fieldcat USING: 1 'ORDEM' 'Ordem de Antiguidade na Carreira',
2 'NOME' 'Nome',
3 'CARGO' 'Cargo',
4 'ANOS' 'Anos',
5 'MESES' 'Meses',
6 'DIAS' 'Dias'.
ENDFORM.

" alv_fieldcat

FORM fill_fieldcat USING posicao


fieldname

texto_cabecalho.
CLEAR: w_fieldcat.
w_fieldcat-col_pos = posicao.
w_fieldcat-fieldname = fieldname.
w_fieldcat-seltext_m = texto_cabecalho.
w_fieldcat-tabname = 'T_ALV'.
APPEND w_fieldcat TO t_fieldcat.
ENDFORM.
*-------------------------------------------------------------------*
* Form TOP-OF-PAGE
*
*-------------------------------------------------------------------*
* ALV Report Header
*
*-------------------------------------------------------------------*
FORM top-of-page.
*ALV Header declarations
DATA: t_header TYPE slis_t_listheader,
w_header TYPE slis_listheader,
t_line
LIKE w_header-info,
l_lines
TYPE i,
l_linesc(10) TYPE c.
* MP
CLEAR w_header.
w_header-typ = 'H'.
w_header-info = 'MINISTRIO PBLICO DO ESTADO DO ESPRITO SANTO'.
APPEND w_header TO t_header.
* Ttulo
CLEAR w_header.
w_header-typ = 'S'.
w_headerinfo = 'ANTIGUIDADE NA CARREIRA DOS MEMBROS DO MINISTRIO PBLICO'.
APPEND w_header TO t_header.
* Data
CLEAR: w_header.
w_header-typ = 'S'.
w_header-key = 'Data: '.
CONCATENATE sy-datum+6(2) '/'
sy-datum+4(2) '/'
sy-datum(4) INTO w_header-info.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header.
ENDFORM.

You might also like