ABAP WBS Element下層預算向上層彙總

2021-09-06 02:28:09 字數 1558 閱讀 8351

看到標題立馬會想到用遞迴實現,但是遞迴不好除錯,容易出現錯誤,下面給出一種簡單實現方法。

types

: begin 

of ty_prhi,

posnr like prhi-posnr,

up   

like prhi-up,

down  like prhi-down.

include 

type ty_wbs.

types

: end 

of ty_prhi.

data

: lt_prhi type 

standard 

table 

of ty_prhi,

ls_prhi type ty_prhi.

field

-symbols:

like ls_prhi,

like gs_wbs.

"1.0 需要將下層wbs上的預算上上層彙總

" gt_wbs中只儲存了本層的需求單預算,未包含下層的需求單預算

lt_wbs = gt_wbs.

sort lt_wbs by pspnr.

select * into corresponding fields 

of table lt_prhi

from prhi

for 

all entries in lt_wbs

where posnr = lt_wbs-pspnr.

sort lt_wbs by pspnr.

loop 

at lt_prhi assigning 

.read 

table lt_wbs into ls_wbs

with 

key pspnr = 

-posnr binary 

search

.if sy-subrc = 0.

move-corresponding ls_wbs to 

.endif

.endloop

."按層次倒序排列,將上層相同的排列在一起

sort lt_prhi by stufe descending 

up ascending

."從底層往上層累加

loop 

at lt_prhi into ls_prhi.

read 

table lt_wbs assigning 

with 

key pspnr = ls_prhi-

upbinary 

search

.if sy-subrc eq 0.

read 

table lt_wbs into ls_wbs

with 

key pspnr = ls_prhi-posnr

binary 

search

."將當前層加到上層

-zgssum = 

-zgssum + ls_wbs-zgssum.

endif

.endloop

.

Linux下Redis下安裝

redis安裝 檢查是否安裝redis ps ef grep redis2.檢查gcc服務是否安裝成功 rpm qa grep gcc注 安裝成功則顯示 mkdir redis5.解壓redis安裝包 tar zxvf redis 2.8.17 tar.gz c usr local redis 解壓...

metasploit下Windows下多種提權方式

前言 當你在愛害者的機器上執行一些操作時,發現有一些操作被拒絕執行,為了獲得受害機器的完全許可權,你需要繞過限制,獲取本來沒有的一些許可權,這些許可權可以用來刪除檔案,檢視私有資訊,或者安裝特殊程式,比如病毒。metasploit有很多種後滲透方法,可以用於對目標機器的許可權繞過,最終獲取到系統許可...

linux下socket和window下區別

socket相關程式從windows移植到linux下需要注意的 1 標頭檔案 windows下winsock.h winsock2.h linux下sys socket.h 錯誤處理 errno.h 2 初始化 windows下需要用wsastartup linux下不需要 3 關閉socket ...