看到標題立馬會想到用遞迴實現,但是遞迴不好除錯,容易出現錯誤,下面給出一種簡單實現方法。
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 ...