热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HR之PCH逻辑数据库的使用

HRPCH的使用,希望理解或者想理解SAPHR开发的同仁与我联系哦,QQ:63

PCH逻辑数据库,一般用于组织查询。和PNP很相像,如果非要说有不同,1、他的screen界面不是通过报告类进行控制的;2、他的查询逻辑是可以通过评估路径进行控制的

下面给一个代码:计算编制人数的程序,由于是本人第一次用PCH写程序,可能逻辑上不是很优化,望指正,如有问题可以留言或者加QQ:632055983进行探讨;

程序代码:

REPORT ZHR_BZ_DISPLAY_DEPT.
INCLUDE ZHR_BZ_DISPLAY_DEPT_D01.
INCLUDE ZHR_BZ_DISPLAY_DEPT_S01.
INCLUDE ZHR_BZ_DISPLAY_DEPT_E01.
INCLUDE ZHR_BZ_DISPLAY_DEPT_F01.

*&---------------------------------------------------------------------*
*& 包括 ZHR_BZ_DISPLAY_DEPT_D01
*&---------------------------------------------------------------------*
TYPE-POOLS :SLIS.
TABLES: OBJEC,GDSTR,ZHR_PERSKTYPE ,PA0001.
INFOTYPES : 1000, "员工子组
1001, "信息类型 1001:关系
1002, "描述
1011,
1015,
1028. "职级.
TYPES: BEGIN OF GX_MAIN,
BYEAR(4),
OBJID TYPE HROBJID, "岗位
STEXT TYPE STEXT,
OBJID1 TYPE HROBJID, "部门
STEXT1 TYPE STEXT,
CBZX TYPE MAST_CCTR,
CBZXMC TYPE STEXT,
BZRS TYPE I,
ZGRS TYPE P DECIMALS 2,
QRZRS TYPE I,
FQRZRS TYPE I,
CBRS TYPE I,
CBL TYPE P DECIMALS 2,
JB_A TYPE I, "副总监以上
JB_B TYPE I, " 店长
JB_C TYPE I, " 高级经理
JB_D TYPE I, "经理
JB_E TYPE I, "副经理
JB_F TYPE I, " 主管/课长
JB_G TYPE I, "资深
JB_H TYPE I, "员工
JB_O TYPE I, "qita
END OF GX_MAIN.
DATA: GT_MAIN TYPE TABLE OF GX_MAIN,
GS_MAIN TYPE GX_MAIN.
DATA: GT_YGZZ TYPE TABLE OF ZHR_PERSKTYPE, "员工子组
GS_YGZZ TYPE ZHR_PERSKTYPE.
DATA: GT_YGZJ TYPE TABLE OF ZHR_M_PLOMC, "员工职级
GS_YGZJ TYPE ZHR_M_PLOMC.
TYPES: BEGIN OF GX_P0001,
PERNR TYPE PERNR_D,
PERSK TYPE PERSK,
END OF GX_P0001.
DATA: GT_P0001 TYPE TABLE OF GX_P0001,
GS_P0001 TYPE GX_P0001.
TYPES: BEGIN OF GX_P0024,
PERNR TYPE PERNR_D,
ZWMC TYPE ZHR_ZWMC,
END OF GX_P0024.
DATA: GT_P0024 TYPE TABLE OF GX_P0024,
GS_P0024 TYPE GX_P0024.
DATA: G_IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV ,
G_WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV ,
G_TITLE LIKE SY-TITLE.
TYPES: BEGIN OF GX_HRP1001,
OTYPE TYPE OTYPE,
OBJID TYPE HROBJID,
RSIGN TYPE RSIGN,
RELAT TYPE RELAT,
SOBID TYPE SOBID,
END OF GX_HRP1001.
DATA: GT_HRP1001 TYPE TABLE OF GX_HRP1001,
GS_HRP1001 TYPE GX_HRP1001.
DATA: GT_ZRLBZ TYPE TABLE OF ZRLBZ,
GS_ZRLBZ TYPE ZRLBZ.
DATA: LT_BZAGW TYPE TABLE OF ZHRM_BZAGW,
GS_ITAB_OUT TYPE ZHRM_BZAGW.

*&---------------------------------------------------------------------*
*& 包括 ZHR_BZ_DISPLAY_DEPT_S01
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-S01.
SELECT-OPTIONS: P_CBZX FOR PA0001-KOSTL,
P_GW FOR PA0001-PLANS.
PARAMETERS P_SSNID(50).
SELECTION-SCREEN END OF BLOCK B1.

*&---------------------------------------------------------------------*
*& 包括 ZHR_BZ_DISPLAY_DEPT_E01
*&---------------------------------------------------------------------*
INITIALIZATION.
PERFORM INIT.
START-OF-SELECTION.
DATA OBJID1 TYPE HROBJID.
PERFORM GET_YGZZ.
PERFORM GET_YGZJ.
PERFORM GET_P0001.
PERFORM GET_HRP1001. "得到关系表 主要为得到成本中心
PERFORM GET_P0024. "获取p0024 数据
PERFORM GETMAIN. "获取维护的编制数据
* RP-SEL-EIN-AUS-INIT. "选择屏幕默认就业状态不等于0
***如果查询人员没有相应信息类型的权限,将无权查看此表***
* PNP_SW_SKIP_PERNR = ‘N‘.
GET OBJEC.
PERFORM GET_OBJEC.
OBJID1 = P1000-OBJID.
IF SY-SUBRC <> 0.
ENDIF.
END-OF-SELECTION.
IF LINES( GT_MAIN ) = 0.
MESSAGE TEXT-S02 TYPE ‘E‘.
ENDIF.
PERFORM MAINTAIN.
PERFORM SET_OUTPUT.

*&---------------------------------------------------------------------*
*& 包括 ZHR_BZ_DISPLAY_DEPT_F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form GETMAIN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GETMAIN .
FIELD-SYMBOLS: TYPE ANY.
DATA L_COUM(6).
FIELD-SYMBOLS : TYPE ZRLBZ.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE GT_ZRLBZ
FROM ZRLBZ WHERE BYEAR = SY-DATUM+(4).
DATA: LM(2) .
LM = PCHBEGDA+4(2).
CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT‘
EXPORTING
INPUT = LM
IMPORTING
OUTPUT = LM.
DATA LNAME(7).
CONCATENATE ‘BZNUB‘ LM INTO LNAME.
LOOP AT GT_ZRLBZ ASSIGNING .
ASSIGN COMPONENT LNAME OF STRUCTURE TO .
-BZNUB2 = .
ENDLOOP.
CLEAR GS_MAIN.
* LOOP AT GT_ZRLBZ INTO GS_ZRLBZ.
*
* ENDLOOP.
ENDFORM. " GETMAIN
*&---------------------------------------------------------------------*
*& Form INIT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM INIT .
* CLEAR : PCHOTYPE,PCHWEGID.
PCHOTYPE = ‘O‘.
IF PCHBEGDA IS INITIAL.
PCHBEGDA = SY-DATUM.
ENDIF.
IF PCHENDDA IS INITIAL.
PCHENDDA = PCHBEGDA.
ENDIF.
PCHWEGID = ‘O-S-P‘.
ENDFORM. " INIT
*&---------------------------------------------------------------------*
*& Form GET_OBJEC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_OBJEC .
IF OBJEC-BEGDA SY-DATUM.
CASE OBJEC-OTYPE.
WHEN ‘O‘.
REJECT.
WHEN ‘S‘.
PERFORM APPEND_MAIN.
WHEN OTHERS.
REJECT.
ENDCASE.
ELSE.
REJECT.
ENDIF.
ENDFORM. " GET_OBJEC
*&---------------------------------------------------------------------*
*& Form APPEND_MAIN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM APPEND_MAIN .
DATA LS_MAIN TYPE GX_MAIN.
DATA LS_P1001 TYPE P1001.
DATA: L_NUM_QRZ TYPE I,
L_NUM_FQRZ TYPE I.
DATA L_CBZX_IS.
DATA L_CBZX TYPE MAST_CCTR.
LS_MAIN-OBJID = OBJEC-OBJID.
********此处循环关系表P1001 取出S标志下 A 03 对应的上级部门O和 A 08 对应的P员工之后判断员工是全日制还是飞全日制岗位
LOOP AT P1001 INTO LS_P1001 WHERE BEGDA <= PCHBEGDA AND ENDDA >= PCHBEGDA AND RSIGN = ‘A‘.
CASE LS_P1001-RELAT.
WHEN ‘003‘.
LS_MAIN-OBJID1 = LS_P1001-SOBID.
WHEN ‘008‘.
*********根据员工子组判断是全日制还是非全日制*****************************
READ TABLE GT_P0001 INTO GS_P0001 WITH KEY PERNR = LS_P1001-SOBID+(8).
IF SY-SUBRC = 0.
READ TABLE GT_YGZZ INTO GS_YGZZ WITH KEY PERSK = GS_P0001-PERSK.
IF SY-SUBRC = 0.
CASE GS_YGZZ-ZPERSKTYPE.
WHEN ‘A‘.
L_NUM_QRZ = L_NUM_QRZ + 1.
WHEN ‘B‘.
L_NUM_FQRZ = L_NUM_FQRZ + 1.
ENDCASE.
IF GS_YGZZ-ZPERSKTYPE = ‘A‘ OR GS_YGZZ-ZPERSKTYPE = ‘B‘.
**********根据员工职级 *对各阶层员工数据进行分配**************************************
READ TABLE GT_P0024 INTO GS_P0024 WITH KEY PERNR = LS_P1001-SOBID+(8).
IF SY-SUBRC = 0 .
READ TABLE GT_YGZJ INTO GS_YGZJ WITH KEY ZHR_ZWMC = GS_P0024-ZWMC.
IF SY-SUBRC = 0.
CASE GS_YGZJ-ZSTELLTYPE.
WHEN ‘A‘.
LS_MAIN-JB_A = LS_MAIN-JB_A + 1.
WHEN ‘B‘.
LS_MAIN-JB_B = LS_MAIN-JB_B + 1.
WHEN ‘C‘.
LS_MAIN-JB_C = LS_MAIN-JB_C + 1.
WHEN ‘D‘.
LS_MAIN-JB_D = LS_MAIN-JB_D + 1.
WHEN ‘E‘.
LS_MAIN-JB_E = LS_MAIN-JB_E + 1.
WHEN ‘F‘.
LS_MAIN-JB_F = LS_MAIN-JB_F + 1.
WHEN ‘G‘.
LS_MAIN-JB_G = LS_MAIN-JB_G + 1.
WHEN ‘H‘.
LS_MAIN-JB_H = LS_MAIN-JB_H + 1.
WHEN OTHERS.
LS_MAIN-JB_O = LS_MAIN-JB_O + 1.
ENDCASE.
ELSE.
LS_MAIN-JB_O = LS_MAIN-JB_O + 1.
ENDIF.
ELSE.
LS_MAIN-JB_O = LS_MAIN-JB_O + 1.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
CLEAR : GS_P0001,GS_YGZZ.
WHEN ‘011‘.
LS_MAIN-CBZX = LS_P1001-SOBID+(10).
L_CBZX_IS = ‘X‘.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
IF L_CBZX_IS <> ‘X‘. "获取成本中心
PERFORM GET_CBZX USING LS_MAIN-OBJID1 CHANGING L_CBZX_IS L_CBZX .
LS_MAIN-CBZX = L_CBZX .
ENDIF.
LS_MAIN-QRZRS = L_NUM_QRZ. "全日制人数
LS_MAIN-FQRZRS = L_NUM_FQRZ. "非全日制人数
APPEND LS_MAIN TO GT_MAIN.
IF SY-SUBRC = 0 .
ENDIF.
ENDFORM. " APPEND_MAIN
*&---------------------------------------------------------------------*
*& Form GET_YGZZ
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_YGZZ .
SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_YGZZ
FROM ZHR_PERSKTYPE WHERE ZPERSKTYPE = ‘A‘ OR ZPERSKTYPE = ‘B‘.
ENDFORM. " GET_YGZZ
*&---------------------------------------------------------------------*
*& Form GET_P0001
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_P0001 .
SELECT PERNR PERSK INTO CORRESPONDING FIELDS OF TABLE GT_P0001
FROM PA0001 WHERE BEGDA <= PCHBEGDA AND ENDDA >= PCHBEGDA.
ENDFORM. " GET_P0001
*&---------------------------------------------------------------------*
*& Form DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY .
PERFORM SUB_SET_FIELD.
PERFORM DIS_ITAB.
ENDFORM. " DISPLAY
*&---------------------------------------------------------------------*
*& Form SUB_SET_FIELD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SUB_SET_FIELD .
DEFINE MARCO_ADDFIELD .
G_WA_FIELDCAT-FIELDNAME = &1.
G_WA_FIELDCAT-SELTEXT_M = &2.
APPEND G_WA_FIELDCAT TO G_IT_FIELDCAT.
END-OF-DEFINITION .
MARCO_ADDFIELD: ‘CBZX‘ ‘成本中心‘,
‘CBZXMC‘ ‘成本中心名称‘,
‘OBJID1‘ ‘部门‘,
‘STEXT1‘ ‘部门名称‘,
‘OBJID‘ ‘岗位‘,
‘STEXT‘ ‘岗位名称‘,
‘BZRS‘ ‘编制人数‘,
‘ZGRS‘ ‘总共人数‘,
‘QRZRS‘ ‘全日制人数‘,
‘FQRZRS‘ ‘非全日制人数‘,
‘CBRS‘ ‘超编人数‘,
‘CBL‘ ‘超编率‘,
‘JB_A‘ ‘副总监以上‘,
‘JB_B‘ ‘店长‘,
‘JB_C‘ ‘高级经理‘,
‘JB_D‘ ‘经理‘,
‘JB_E‘ ‘副经理‘,
‘JB_F‘ ‘主管/课长‘,
‘JB_G‘ ‘资深‘,
‘JB_H‘ ‘员工‘,
‘JB_O‘ ‘其他级别‘
.
ENDFORM. " SUB_SET_FIELD
*&---------------------------------------------------------------------*
*& Form DIS_ITAB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DIS_ITAB .
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY‘
EXPORTING
* I_INTERFACE_CHECK = ‘ ‘
* I_BYPASSING_BUFFER = ‘ ‘
* I_BUFFER_ACTIVE = ‘ ‘
* I_CALLBACK_PROGRAM = ‘ ‘
* I_CALLBACK_PF_STATUS_SET = ‘ ‘
* I_CALLBACK_USER_COMMAND = ‘ ‘
* I_CALLBACK_TOP_OF_PAGE = ‘ ‘
* I_CALLBACK_HTML_TOP_OF_PAGE = ‘ ‘
* I_CALLBACK_HTML_END_OF_LIST = ‘ ‘
* I_STRUCTURE_NAME = I_STRUCTURE_NAME
* I_BACKGROUND_ID = ‘ ‘
* I_GRID_TITLE = I_GRID_TITLE
* I_GRID_SETTINGS = I_GRID_SETTINGS
* IS_LAYOUT = IS_LAYOUT
IT_FIELDCAT = G_IT_FIELDCAT[]
* IT_EXCLUDING = IT_EXCLUDING
* IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
* IT_SORT = IT_SORT
* IT_FILTER = IT_FILTER
* IS_SEL_HIDE = IS_SEL_HIDE
* I_DEFAULT = ‘X‘
* I_SAVE = ‘ ‘
* IS_VARIANT = IS_VARIANT
* IT_EVENTS = IT_EVENTS
* IT_EVENT_EXIT = IT_EVENT_EXIT
* IS_PRINT = IS_PRINT
* IS_REPREP_ID = IS_REPREP_ID
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
* IT_HYPERLINK = IT_HYPERLINK
* IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
* IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
* IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
* ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
T_OUTTAB = LT_BZAGW[]
EXCEPTIONS
PROGRAM_ERROR = 1
.
ENDFORM. " DIS_ITAB
*&---------------------------------------------------------------------*
*& Form GET_HRP1001
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_HRP1001 .
SELECT OTYPE OBJID RSIGN RELAT SOBID
INTO CORRESPONDING FIELDS OF TABLE GT_HRP1001
FROM HRP1001
WHERE RSIGN = ‘A‘ AND ( RELAT = ‘003‘ OR RELAT = ‘011‘ OR RELAT = ‘002‘ ).
ENDFORM. " GET_HRP1001
*&---------------------------------------------------------------------*
*& Form GET_CBZX
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_L_CBZX text
* -->P_LS_MAIN_OBJID1 text
*----------------------------------------------------------------------*
FORM GET_CBZX USING P_LS_MAIN_OBJID1 TYPE HROBJID
CHANGING P_L_CBZX_IS TYPE C
P_L_CBZX TYPE MAST_CCTR.
DATA: LS_HRP1001_1 TYPE GX_HRP1001,
LS_HRP1001_2 TYPE GX_HRP1001,
LS_HRP1001_3 TYPE GX_HRP1001,
LS_HRP1001_4 TYPE GX_HRP1001.
SORT GT_HRP1001 BY OTYPE OBJID RELAT.
READ TABLE GT_HRP1001 INTO LS_HRP1001_1 WITH KEY OBJID = P_LS_MAIN_OBJID1 RELAT = ‘011‘ BINARY SEARCH.
IF SY-SUBRC = 0. " 第一层组织
P_L_CBZX = LS_HRP1001_1-SOBID+0(10).
P_L_CBZX_IS = ‘X‘.
ELSE.
READ TABLE GT_HRP1001 INTO LS_HRP1001_1 WITH KEY OTYPE = ‘O‘ OBJID = P_LS_MAIN_OBJID1 RELAT = ‘002‘ BINARY SEARCH .
IF SY-SUBRC = 0. "第二层组织
READ TABLE GT_HRP1001 INTO LS_HRP1001_2 WITH KEY OTYPE = ‘O‘ OBJID = LS_HRP1001_1-SOBID(8) RELAT = ‘011‘ BINARY SEARCH.
IF SY-SUBRC = 0.
P_L_CBZX = LS_HRP1001_2-SOBID+0(10).
P_L_CBZX_IS = ‘X‘.
ELSE.
READ TABLE GT_HRP1001 INTO LS_HRP1001_2 WITH KEY OTYPE = ‘O‘ OBJID = LS_HRP1001_1-SOBID(8) RELAT = ‘002‘ BINARY SEARCH.
IF SY-SUBRC = 0. "第三层组织
READ TABLE GT_HRP1001 INTO LS_HRP1001_3 WITH KEY OTYPE = ‘O‘ OBJID = LS_HRP1001_2-SOBID(8) RELAT = ‘011‘ BINARY SEARCH.
IF SY-SUBRC = 0.
P_L_CBZX = LS_HRP1001_3-SOBID+0(10).
P_L_CBZX_IS = ‘X‘.
ELSE.
READ TABLE GT_HRP1001 INTO LS_HRP1001_3 WITH KEY OTYPE = ‘O‘ OBJID = LS_HRP1001_2-SOBID(8) RELAT = ‘002‘ BINARY SEARCH.
IF SY-SUBRC = 0.
READ TABLE GT_HRP1001 INTO LS_HRP1001_4 WITH KEY OTYPE = ‘O‘ OBJID = LS_HRP1001_3-SOBID(8) RELAT = ‘011‘ BINARY SEARCH.
IF SY-SUBRC = 0.
P_L_CBZX = LS_HRP1001_4-SOBID+0(10).
P_L_CBZX_IS = ‘X‘.
ENDIF.
ENDIF.
ENDIF.
P_L_CBZX_IS = ‘X‘.
ELSE.
P_L_CBZX_IS = ‘X‘.
EXIT.
ENDIF.
ENDIF.
ELSE.
P_L_CBZX_IS = ‘X‘.
EXIT.
ENDIF.
ENDIF.
ENDFORM. " GET_CBZX
*&---------------------------------------------------------------------*
*& Form MAINTAIN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM MAINTAIN .
"组织名称
TYPES: BEGIN OF LX_ORGTX,
ORGEH TYPE ORGEH,
ORGTX TYPE ORGTX,
END OF LX_ORGTX.
DATA: LT_ORGTX TYPE TABLE OF LX_ORGTX,
LS_ORGTX TYPE LX_ORGTX.
"成本中心
TYPES: BEGIN OF LX_CBZX,
KOSTL TYPE KOSTL,
KTEXT TYPE KTEXT,
END OF LX_CBZX.
DATA: LT_CBZX TYPE TABLE OF LX_CBZX,
LS_CBZX TYPE LX_CBZX.
"组织名称
TYPES: BEGIN OF LX_PLSTX,
PLANS TYPE PLANS,
PLSTX TYPE PLSTX,
END OF LX_PLSTX.
FIELD-SYMBOLS TYPE GX_MAIN.
DATA: LT_PLSTX TYPE TABLE OF LX_PLSTX,
LS_PLSTX TYPE LX_PLSTX.
"组织名称
SELECT ORGEH ORGTX
INTO CORRESPONDING FIELDS OF TABLE LT_ORGTX
FROM T527X WHERE ENDDA >= PCHENDDA AND BEGDA <= PCHBEGDA.
SELECT KOSTL KTEXT INTO CORRESPONDING FIELDS OF TABLE LT_CBZX
FROM CSKT WHERE SPRAS = ‘1‘.
"职位名称
SELECT PLANS PLSTX
INTO CORRESPONDING FIELDS OF TABLE LT_PLSTX
FROM T528T WHERE ENDDA >= PCHENDDA AND BEGDA <= PCHBEGDA.
SORT LT_ORGTX BY ORGEH. "bumen
SORT LT_CBZX BY KOSTL. "chengbenzhongxin
SORT LT_PLSTX BY PLANS. "zhiwei
SORT GT_ZRLBZ BY OBJID.
LOOP AT GT_MAIN ASSIGNING .
READ TABLE LT_ORGTX INTO LS_ORGTX WITH KEY ORGEH = -OBJID1 BINARY SEARCH.
IF SY-SUBRC = 0.
-STEXT1 = LS_ORGTX-ORGTX .
ENDIF.
READ TABLE LT_CBZX INTO LS_CBZX WITH KEY KOSTL = -CBZX BINARY SEARCH.
IF SY-SUBRC = 0.
-CBZXMC = LS_CBZX-KTEXT.
ENDIF.
READ TABLE LT_PLSTX INTO LS_PLSTX WITH KEY PLANS = -OBJID BINARY SEARCH.
IF SY-SUBRC = 0 .
-STEXT = LS_PLSTX-PLSTX.
ENDIF.
READ TABLE GT_ZRLBZ INTO GS_ZRLBZ WITH KEY OBJID = -OBJID.
IF SY-SUBRC = 0.
-BZRS = GS_ZRLBZ-BZNUB1.
ENDIF.
-ZGRS = -QRZRS + -FQRZRS / ‘1.5‘ .
-CBRS = -ZGRS - -BZRS.
IF -BZRS <> 0.
-CBL = -CBRS / -BZRS.
ENDIF.
ENDLOOP.
sort GT_MAIN by OBJID1 OBJID.
DELETE ADJACENT DUPLICATES FROM GT_MAIN COMPARING OBJID1 OBJID.
ENDFORM. " MAINTAIN
*&---------------------------------------------------------------------*
*& Form GET_P0024
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_P0024 .
SELECT PERNR ZHR_ZWMC AS ZWMC INTO CORRESPONDING FIELDS OF TABLE GT_P0024
FROM PA0024 WHERE BEGDA <= PCHBEGDA AND ENDDA >= PCHBEGDA.
ENDFORM. " GET_P0024
*&---------------------------------------------------------------------*
*& Form GET_YGZJ
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_YGZJ .
SELECT ZHR_ZWMC ZSTELLTYPE
INTO CORRESPONDING FIELDS OF TABLE GT_YGZJ
FROM ZHR_M_PLOMC .
ENDFORM. " GET_YGZJ
*&---------------------------------------------------------------------*
*& Form SET_OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SET_OUTPUT .
LOOP AT GT_MAIN INTO GS_MAIN WHERE OBJID IN P_GW AND CBZX IN P_CBZX .
MOVE-CORRESPONDING GS_MAIN TO GS_ITAB_OUT .
APPEND GS_ITAB_OUT TO LT_BZAGW.
ENDLOOP.
IF P_SSNID IS NOT INITIAL .
EXPORT LT_BZAGW TO MEMORY ID P_SSNID.
ELSE.
PERFORM DISPLAY.
ENDIF.
ENDFORM. " SET_OUTPUT


推荐阅读
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • 本文介绍了一种解析GRE报文长度的方法,通过分析GRE报文头中的标志位来计算报文长度。具体实现步骤包括获取GRE报文头指针、提取标志位、计算报文长度等。该方法可以帮助用户准确地获取GRE报文的长度信息。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
author-avatar
姑娘要上进
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有