Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- REPORT zinr_prs_dt_al.
- TABLES: zint_prs_tm, zint_prs_mst, zint_dsg_mst, zint_qual_mst.
- TYPE-POOLS slis.
- SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
- SELECT-OPTIONS emp_code FOR zint_prs_tm-zzemp_cd OBLIGATORY.
- SELECT-OPTIONS date FOR zint_prs_tm-zzdt OBLIGATORY.
- SELECTION-SCREEN END OF BLOCK b1.
- TYPES: BEGIN OF ty_final,
- zzemp_cd TYPE zint_prs_tm-zzemp_cd,
- zzdt TYPE zint_prs_tm-zzdt,
- zzintime TYPE zint_prs_tm-zzintime,
- zzoutime TYPE zint_prs_tm-zzoutime,
- zzfirst_nm TYPE zint_prs_mst-zzfirst_nm,
- zzlast_nm TYPE zint_prs_mst-zzlast_nm,
- zzint_de_dsg_cd TYPE zint_prs_mst-zzint_de_dsg_cd,
- zzdesc TYPE zint_dsg_mst-zzdesc,
- zzql TYPE zint_prs_mst-zzql,
- zzpl TYPE zint_prs_mst-zzpl,
- zzsl TYPE zint_prs_mst-zzsl,
- END OF ty_final.
- DATA: wa_f TYPE ty_final,
- it_f TYPE TABLE OF ty_final,
- it_fcat TYPE slis_t_fieldcat_alv,
- wa_fcat LIKE LINE OF it_fcat,
- l_layout TYPE slis_layout_alv.
- TYPES : BEGIN OF ty_zint_prs_tm,
- zzemp_cd TYPE zint_prs_tm-zzemp_cd,
- zzdt TYPE zint_prs_tm-zzdt,
- zzintime TYPE zint_prs_tm-zzintime,
- zzoutime TYPE zint_prs_tm-zzoutime,
- END OF ty_zint_prs_tm.
- DATA: wa1 TYPE ty_zint_prs_tm,
- it1 TYPE TABLE OF ty_zint_prs_tm.
- TYPES : BEGIN OF ty_zint_prs_mst,
- zzemp_cd TYPE zint_prs_mst-zzemp_cd,
- zzfirst_nm TYPE zint_prs_mst-zzfirst_nm,
- zzlast_nm TYPE zint_prs_mst-zzlast_nm,
- zzint_de_dsg_cd TYPE zint_prs_mst-zzint_de_dsg_cd,
- zzql TYPE zint_prs_mst-zzql,
- zzpl TYPE zint_prs_mst-zzpl,
- zzsl TYPE zint_prs_mst-zzsl,
- END OF ty_zint_prs_mst.
- DATA: wa2 TYPE ty_zint_prs_mst,
- it2 TYPE TABLE OF ty_zint_prs_mst.
- TYPES: BEGIN OF ty_zint_dsg_mst,
- zzdesc TYPE zint_dsg_mst-zzdesc,
- zzdsg TYPE zint_dsg_mst-zzdsg,
- END OF ty_zint_dsg_mst.
- DATA: wa3 TYPE ty_zint_dsg_mst,
- it3 TYPE TABLE OF ty_zint_dsg_mst.
- TYPES: BEGIN OF ty_zint_qual_mst,
- zzdesc TYPE zint_qual_mst-zzdesc,
- END OF ty_zint_qual_mst.
- DATA: wa4 TYPE ty_zint_qual_mst,
- it4 TYPE TABLE OF ty_zint_qual_mst.
- START-OF-SELECTION.
- SELECT zzemp_cd zzdt zzintime zzoutime FROM zint_prs_tm INTO TABLE it1
- WHERE zzemp_cd IN emp_code
- AND zzdt IN date.
- IF it1 IS NOT INITIAL.
- SELECT
- zzemp_cd
- zzfirst_nm
- zzlast_nm
- zzint_de_dsg_cd
- zzql
- zzpl
- zzsl
- FROM zint_prs_mst INTO TABLE it2
- FOR ALL ENTRIES IN it1
- WHERE zzemp_cd = it1-zzemp_cd.
- IF it2 IS NOT INITIAL.
- SELECT zzdesc zzdsg FROM zint_dsg_mst INTO TABLE it3
- FOR ALL ENTRIES IN it2
- WHERE zzdsg = it2-zzint_de_dsg_cd.
- ENDIF.
- ENDIF.
- END-OF-SELECTION.
- LOOP AT it1 INTO wa1.
- wa_f-zzemp_cd = wa1-zzemp_cd.
- wa_f-zzdt = wa1-zzdt.
- wa_f-zzintime = wa1-zzintime.
- wa_f-zzoutime = wa1-zzoutime.
- READ TABLE it2 INTO wa2 WITH KEY zzemp_cd = wa1-zzemp_cd.
- IF sy-subrc = 0.
- wa_f-zzfirst_nm = wa2-zzfirst_nm.
- wa_f-zzlast_nm = wa2-zzlast_nm.
- wa_f-zzint_de_dsg_cd = wa2-zzint_de_dsg_cd.
- wa_f-zzql = wa2-zzql.
- wa_f-zzpl = wa2-zzpl.
- wa_f-zzsl = wa2-zzsl.
- READ TABLE it3 INTO wa3 WITH KEY zzdsg = wa2-zzint_de_dsg_cd.
- IF sy-subrc = 0.
- wa_f-zzdesc = wa3-zzdesc.
- ENDIF.
- APPEND wa_f TO it_f.
- CLEAR: wa_f, wa3, wa2, wa1.
- ENDIF.
- ENDLOOP.
- wa_fcat-tabname = 'ZINT_PRS_TM'.
- wa_fcat-fieldname = 'ZZEMP_CD'.
- wa_fcat-seltext_l = 'Employee Code'.
- wa_fcat-col_pos = '1'.
- wa_fcat-outputlen = '20'.
- APPEND wa_fcat TO it_fcat.
- CLEAR :wa_fcat.
- wa_fcat-tabname = 'ZINT_PRS_TM'.
- wa_fcat-fieldname = 'ZZDT'.
- wa_fcat-seltext_l = 'Record Date'.
- wa_fcat-col_pos = '2'.
- wa_fcat-outputlen = '20'.
- APPEND wa_fcat TO it_fcat.
- CLEAR :wa_fcat.
- wa_fcat-tabname = 'ZINT_PRS_TM'.
- wa_fcat-fieldname = 'ZZINTIME'.
- wa_fcat-seltext_l = 'IN Time'.
- wa_fcat-col_pos = '3'.
- wa_fcat-outputlen = '20'.
- APPEND wa_fcat TO it_fcat.
- CLEAR :wa_fcat.
- wa_fcat-tabname = 'ZINT_PRS_TM'.
- wa_fcat-fieldname = 'ZZOUTIME'.
- wa_fcat-seltext_l = 'OUT Time'.
- wa_fcat-col_pos = '4'.
- wa_fcat-outputlen = '20'.
- APPEND wa_fcat TO it_fcat.
- CLEAR :wa_fcat.
- wa_fcat-tabname = 'ZINT_PRS_MST'.
- wa_fcat-fieldname = 'ZZFIRST_NM'.
- wa_fcat-seltext_l = 'First Name'.
- wa_fcat-col_pos = '5'.
- wa_fcat-outputlen = '30'.
- APPEND wa_fcat TO it_fcat.
- CLEAR :wa_fcat.
- wa_fcat-tabname = 'ZINT_PRS_MST'.
- wa_fcat-fieldname = 'ZZLAST_NM'.
- wa_fcat-seltext_l = 'Last Name'.
- wa_fcat-col_pos = '6'.
- wa_fcat-outputlen = '30'.
- APPEND wa_fcat TO it_fcat.
- CLEAR :wa_fcat.
- wa_fcat-tabname = 'ZINT_PRS_MST'.
- wa_fcat-fieldname = 'ZZINT_DE_DSG_CD'.
- wa_fcat-seltext_l = 'Designation Code'.
- wa_fcat-col_pos = '7'.
- wa_fcat-outputlen = '30'.
- APPEND wa_fcat TO it_fcat.
- CLEAR :wa_fcat.
- wa_fcat-tabname = 'ZINT_DSG_MST'.
- wa_fcat-fieldname = 'ZZDESC'.
- wa_fcat-seltext_l = 'Description'.
- wa_fcat-col_pos = '8'.
- wa_fcat-outputlen = '30'.
- APPEND wa_fcat TO it_fcat.
- CLEAR :wa_fcat.
- wa_fcat-tabname = 'ZINT_PRS_MST'.
- wa_fcat-fieldname = 'ZZQL'.
- wa_fcat-seltext_l = 'Qualifiaction Code'.
- wa_fcat-col_pos = '9'.
- wa_fcat-outputlen = '25'.
- APPEND wa_fcat TO it_fcat.
- CLEAR :wa_fcat.
- wa_fcat-tabname = 'ZINT_PRS_MST'.
- wa_fcat-fieldname = 'ZZPL'.
- wa_fcat-seltext_l = 'Paid Leave'.
- wa_fcat-col_pos = '10'.
- wa_fcat-outputlen = '20'.
- APPEND wa_fcat TO it_fcat.
- CLEAR :wa_fcat.
- wa_fcat-tabname = 'ZINT_PRS_MST'.
- wa_fcat-fieldname = 'ZZSL'.
- wa_fcat-seltext_l = 'Sick Leave'.
- wa_fcat-col_pos = '11'.
- wa_fcat-outputlen = '20'.
- APPEND wa_fcat TO it_fcat.
- CLEAR :wa_fcat.
- CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
- EXPORTING
- it_fieldcat = it_fcat
- i_structure_name = 'it_f'
- TABLES
- t_outtab = it_f.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement