当前位置:网站首页>[sap-hcm] report jump to pa30/pa40 instance
[sap-hcm] report jump to pa30/pa40 instance
2022-06-23 20:33:00 【Jeff Wei】
REPORT zhrr_0016.
INFOTYPES:0019.
TABLES:pernr,objec.
TYPES: BEGIN OF ty_out,
xh(8) TYPE n,
szd LIKE t001p-btext,
szgs LIKE t500p-name1,
gsdm LIKE pa0001-werks,
ejbm LIKE p1000-stext,
sjbm LIKE p1000-stext,
cjbm LIKE p1000-stext,
sapid LIKE pernr-pernr,
empid LIKE p0002-zyggh,
empna LIKE p0001-ename,
ygxz(40) TYPE c,
txcd LIKE p0019-tmart,
txlx LIKE t531s-tmtxt,
txrq LIKE p0019-mndat,
dqrq LIKE p0019-termn,
rwzt(40) TYPE c,
statu TYPE char10,
END OF ty_out.
DATA l_object TYPE REF TO zclce_hr_organization_kit.
DATA: gw_out TYPE ty_out,
gt_out TYPE TABLE OF ty_out.
DATA: gw_p0001 LIKE pa0001,
gt_p0001 LIKE TABLE OF pa0001,
gw_p0002 LIKE pa0002,
gt_p0002 LIKE TABLE OF pa0002,
gw_p0019 LIKE pa0019,
gt_p0019 LIKE TABLE OF pa0019,
gw_t001p LIKE t001p,
gt_t001p LIKE TABLE OF t001p,
gw_t500p LIKE t500p,
gt_t500p LIKE TABLE OF t500p,
gw_t531s LIKE t531s,
gt_t531s LIKE TABLE OF t531s.
DATA:gt_dm LIKE TABLE OF dd07v, " Read field text
gw_dm LIKE dd07v.
DATA:gt_dma LIKE TABLE OF dd07v,
gw_dma LIKE dd07v.
DATA:gt_zt LIKE TABLE OF dd07v,
gt_zta LIKE TABLE OF dd07v,
gw_zt LIKE dd07v.
DATA: gw_layo TYPE slis_layout_alv,
gw_fcat TYPE slis_fieldcat_alv,
gt_fcat TYPE slis_t_fieldcat_alv.
*----------------------------------------------------------------------*
* Macro definition
*----------------------------------------------------------------------*
DEFINE macro_add_fieldcat.
CLEAR: gw_fcat.
gw_fcat-fieldname = &1.
gw_fcat-reptext_ddic = &2.
gw_fcat-seltext_l = &2.
gw_fcat-seltext_m = &2.
gw_fcat-seltext_s = &2.
APPEND gw_fcat TO gt_fcat.
END-OF-DEFINITION.
gw_fcat-ref_tabname = 'GT_OUT'.
gw_fcat-fieldname = 'SAPID'.
gw_fcat-hotspot = 'X'.
APPEND gw_fcat TO gt_fcat.
SELECTION-SCREEN: BEGIN OF BLOCK b0 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: s_tmart FOR p0019-tmart NO INTERVALS.
PARAMETERS s_check AS CHECKBOX." To complete the task
SELECTION-SCREEN: END OF BLOCK b0.
INITIALIZATION.
AT SELECTION-SCREEN OUTPUT.
AT SELECTION-SCREEN.
START-OF-SELECTION.
PERFORM frm_get_value.
GET pernr.
PERFORM frm_get_outvalue.
PERFORM frm_display_result.
*&---------------------------------------------------------------------*
*& Form FRM_GET_VALUE
*&---------------------------------------------------------------------*
* First get the value
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_get_value .
IF l_object IS INITIAL.
CREATE OBJECT l_object.
ENDIF.
IF s_check IS INITIAL.
SELECT * INTO TABLE gt_p0019 FROM pa0019
WHERE tmart IN s_tmart
AND bvmrk = ''
AND mndat <= pn-endda
AND mndat >= pn-begda.
ELSE.
SELECT * INTO TABLE gt_p0019 FROM pa0019
WHERE mndat <= pn-endda
AND mndat >= pn-begda.
ENDIF.
IF gt_p0019 IS NOT INITIAL.
SELECT * INTO TABLE gt_p0001 FROM pa0001
FOR ALL ENTRIES IN gt_p0019
WHERE pernr = gt_p0019-pernr
AND begda <= pn-endda
AND endda >= pn-begda..
SELECT * INTO TABLE gt_p0002 FROM pa0002
FOR ALL ENTRIES IN gt_p0019
WHERE pernr = gt_p0019-pernr
AND begda <= pn-endda
AND endda >= pn-begda.
SORT gt_p0019 BY pernr tmart.
SORT gt_p0001 BY pernr.
SORT gt_p0002 BY pernr.
ELSE.
* MESSAGE e016(zhr01).
ENDIF.
SELECT * INTO TABLE gt_t001p FROM t001p
WHERE molga = '28'.
SELECT * INTO TABLE gt_t500p FROM t500p
WHERE molga = '28'.
SELECT * INTO TABLE gt_t531s FROM t531s
WHERE sprsl = sy-langu.
CALL FUNCTION 'DD_DOMA_GET'
EXPORTING
domain_name = 'ZDYGXZ'
TABLES
dd07v_tab_a = gt_dma
dd07v_tab_n = gt_dm.
CALL FUNCTION 'DD_DOMA_GET'
EXPORTING
domain_name = 'BVMRK'
TABLES
dd07v_tab_a = gt_zta
dd07v_tab_n = gt_zt.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_GET_OUTVALUE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_get_outvalue .
DATA: lw_zzcj LIKE zshr_0008.
CLEAR: gw_p0001,gw_p0002,gw_p0019,lw_zzcj.
CLEAR: gw_t001p,gw_t500p,gw_t531s,gw_dm,gw_zt.
READ TABLE gt_p0019 INTO gw_p0019 WITH KEY pernr = pernr-pernr BINARY SEARCH.
IF gw_p0019 IS NOT INITIAL.
READ TABLE gt_p0001 INTO gw_p0001 WITH KEY pernr = pernr-pernr BINARY SEARCH.
READ TABLE gt_p0002 INTO gw_p0002 WITH KEY pernr = pernr-pernr BINARY SEARCH.
READ TABLE gt_t001p INTO gw_t001p WITH KEY werks = gw_p0001-werks btrtl = gw_p0001-btrtl.
READ TABLE gt_t500p INTO gw_t500p WITH KEY persa = gw_p0001-werks.
READ TABLE gt_t531s INTO gw_t531s WITH KEY tmart = gw_p0019-tmart.
READ TABLE gt_dm INTO gw_dm WITH KEY domvalue_l = gw_p0001-zygxz.
READ TABLE gt_zt INTO gw_zt WITH KEY domvalue_l = gw_p0019-bvmrk.
gw_out-szd = gw_t001p-btext.
gw_out-szgs = gw_t500p-name1.
gw_out-empid = gw_p0002-zyggh.
gw_out-sapid = pernr-pernr.
gw_out-empna = gw_p0001-ename.
gw_out-txlx = gw_t531s-tmtxt.
gw_out-txrq = gw_p0019-mndat.
gw_out-dqrq = gw_p0019-termn.
gw_out-gsdm = gw_p0001-werks.
gw_out-txcd = gw_p0019-tmart.
MOVE gw_dm-ddtext TO gw_out-ygxz.
MOVE gw_zt-ddtext TO gw_out-rwzt.
CALL METHOD l_object->get_organization_level
EXPORTING
iv_objid = gw_p0001-orgeh
iv_date = sy-datum
IMPORTING
ev_jgdj = lw_zzcj.
gw_out-ejbm = lw_zzcj-l2t.
gw_out-sjbm = lw_zzcj-l3t.
gw_out-cjbm = lw_zzcj-l4t.
gw_out-statu = icon_led_red.
APPEND gw_out TO gt_out.
CLEAR gw_out.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_DISPLAY_RESULT
*&---------------------------------------------------------------------*
* Show ALV result
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_display_result .
DATA:l_xh(8) TYPE n.
* IF gt_out IS INITIAL.
* MESSAGE e016(zhr01).
* ENDIF.
SORT gt_out BY txrq.
LOOP AT gt_out INTO gw_out.
l_xh = l_xh + 1.
gw_out-xh = l_xh.
MODIFY gt_out FROM gw_out .
CLEAR gw_out.
ENDLOOP.
*FREE MEMORY ID 'MTXTAB'.
*EXPORT GT_OUT TO MEMORY ID 'MTXTAB'.
PERFORM frm_build_layout.
PERFORM frm_build_fieldcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'FRM_STATUS_ALV'
is_layout = gw_layo
i_structure_name = 'SAPID'
i_callback_user_command = 'ALV_USER_COMMAND' " Define execution events
it_fieldcat = gt_fcat
i_save = abap_true
TABLES
t_outtab = gt_out
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid
TYPE sy-msgty
NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2
sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_BUILD_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_build_layout .
gw_layo-colwidth_optimize = abap_true.
gw_layo-zebra = abap_true.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_BUILD_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_build_fieldcat .
macro_add_fieldcat 'XH' ' Serial number '.
macro_add_fieldcat 'SZD' ' home '.
macro_add_fieldcat 'SZGS' ' Company '.
macro_add_fieldcat 'EJBM' ' Secondary departments '.
macro_add_fieldcat 'SJBM' ' Third level departments '.
macro_add_fieldcat 'CJBM' ' workshop '.
macro_add_fieldcat 'EMPID' ' Employee number '.
macro_add_fieldcat 'SAPID' 'SAPID'.
macro_add_fieldcat 'EMPNA' ' full name '.
macro_add_fieldcat 'YGXZ' ' Nature of employment '.
macro_add_fieldcat 'TXLX' ' Reminder type '.
macro_add_fieldcat 'TXRQ' ' Reminder date '.
macro_add_fieldcat 'DQRQ' ' Due date '.
macro_add_fieldcat 'RWZT' ' Task status '.
macro_add_fieldcat 'STATU' ' Execution status '.
ENDFORM.
FORM alv_user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
rs_selfield-refresh = 'X'.
CASE r_ucomm.
WHEN '&IC1'.
* Get current ALV The data in the row
CLEAR gw_out.
READ TABLE gt_out INTO gw_out INDEX rs_selfield-tabindex.
SET PARAMETER ID: 'PER' FIELD gw_out-sapid.
IF gw_out-txcd = '02'.
CALL TRANSACTION 'PA30' AND SKIP FIRST SCREEN.
gw_out-statu = icon_led_green.
ELSE.
CALL TRANSACTION 'PA40' AND SKIP FIRST SCREEN.
gw_out-statu = icon_led_green.
ENDIF.
ENDCASE.
MODIFY gt_out FROM gw_out INDEX rs_selfield-tabindex.
ENDFORM.
边栏推荐
- [golang] quick review guide quickreview (VI) -- struct
- Syntax of SQL union query (inline, left, right, and full)
- [golang] quick review guide quickreview (VII) -- Interface
- 金九银十,靠这个细节,offer拿到手软!
- [golang] follow the object pool sync Pool
- [golang] how to realize real-time hot update of Go program
- How PostgreSQL quickly locate blocking SQL
- 【Golang】快速复习指南QuickReview(六)——struct
- Process injection
- 墨天轮访谈 | IvorySQL王志斌—IvorySQL,一个基于PostgreSQL的兼容Oracle的开源数据库
猜你喜欢

35 year old crisis? It has become a synonym for programmers

Rendering of kotlin jetpack compose tab using animatedvisibility

LeetCode 260. Number III that appears only once

Zabbix监控- Aruba AP运行数据

Hardware development notes (6): basic process of hardware development, making a USB to RS232 module (5): creating USB package library and associating principle graphic devices

「开源摘星计划」Containerd拉取Harbor中的私有镜像,云原生进阶必备技能

基于SSM实现微博系统

Rstudio 1.4 software installation package and installation tutorial

每日刷题记录 (二)

Interview with Mo Tianlun | ivorysql wangzhibin - ivorysql, an Oracle compatible open source database based on PostgreSQL
随机推荐
Official announcement. Net 7 preview 5
How to make a material identification sheet
[vernacular technology] QR code
Command line add user set password never expires add remote group add administrator group
[golang] quick review guide quickreview (II) -- slice
数字化采购转型解决方案:SaaS采购管理平台推进企业阳光采购
Which is better for securities companies? I don't understand. Is it safe to open an account online?
How to write a great online user manual in 7 steps
Real topic of the 13th National Competition of single chip microcomputer in the Blue Bridge Cup
Applet development framework recommendation
[golang] quick review guide quickreview (x) -- goroutine pool
Eight misunderstandings, broken one by one (final): the cloud is difficult to expand, the customization is poor, and the administrator will lose control?
Syntax of SQL union query (inline, left, right, and full)
【Golang】快速复习指南QuickReview(二)——切片slice
Hardware development notes (6): basic process of hardware development, making a USB to RS232 module (5): creating USB package library and associating principle graphic devices
How to process the text of a picture into a table? Can the text in the picture be transferred to the document?
LeetCode 473. Match to square
教你如何用网页开发桌面应用
Newbeecoder. UI new open source control library DataGrid instructions
[golang] quick review guide quickreview (VII) -- Interface