生产订单修改记录
2015-06-09 15:11
489 查看
*&---------------------------------------------------------------------*
*& Report ZPPR024
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZPPR024.
*&---------------------------------------------------------------------*
*& Report ZPR_0002 for WBL
*& CO02生产订单修改记录报表
*&---------------------------------------------------------------------*
tables:zafkolog , zresblog , aufk ,afpo.
types: begin of typ_afko.
include type zafkolog.
types: flag type c,
end of typ_afko.
types: begin of typ_resb.
include type zresblog.
types: maktx like makt-maktx,"物料描述
flag type c,
end of typ_resb.
types: begin of afkoflag,
gamng type c, "总计数量修改
gasmg type c, "废品数量修改
gstrp type c, "开始日期修改
gltrp type c, "完成日期修改
end of afkoflag.
types:begin of resbflag,
matnr type c, "物料 "v1-9 add
werks type c, "工厂修改
lgort type c, "库位修改
bdmng type c, "需求数量修改
sobkz type c, "特殊库存修改
KZEAR TYPE C, "最后确认 "v1-3 add
end of resbflag.
types:begin of afkopos,
gamng type i,
gasmg type i,
gstrp type i,
gltrp type i,
end of afkopos.
types:begin of resbpos,
matnr type i, "物料 "v1-9 add
werks type i,
lgort type i,
bdmng type i,
sobkz type i,
KZEAR type i, "v1-3 add
end of resbpos.
types:begin of afkoval,
gamng like afko-gamng,
gasmg like afko-gasmg,
gstrp like afko-gstrp,
gltrp like afko-gltrp,
end of afkoval.
types:begin of resbval,
matnr like resb-matnr, "物料 "v1-9 add
werks like resb-werks,
lgort like resb-lgort,
bdmng like resb-bdmng,
sobkz like resb-sobkz,
KZEAR LIKE RESB-KZEAR, "v1-3 add
end of resbval.
data:t_afko type table of typ_afko, "工单抬头给修改过的
t_afko2 type table of typ_afko, "工单抬头未给修改,只有物料清单给修改过的整理后的
t_resb type table of typ_resb,
w_afko1 type typ_afko,
w_afko2 type typ_afko,
w_resb1 type typ_resb,
w_resb2 type typ_resb,
g_resbflag type resbflag,
g_afkoflag type afkoflag,
g_afkopos type afkopos,
g_resbpos type resbpos,
g_afkoval type afkoval,
g_resbval type resbval,
g_iferr type c "v1-7 add
.
data: g_ifnoauthpass TYPE C. "v1-8
constants: pos_taitou type i value 12,
pos_before type i value 17,
pos_gamng type i value 27,
pos_gasmg type i value 47,
pos_gstrp type i value 67,
pos_gltrp type i value 82,
pos_biaoshen type i value 12,
pos_after type i value 17,
pos_matnr type i value 27,
pos_maktx type i value 42,
pos_dwerk type i value 82,
pos_lgort type i value 92,
pos_bdmng type i value 98,
pos_sobkz type i value 118,
pos_kzear type i value 128. "v1-3 add
g_afkopos-gamng = pos_gamng.
g_afkopos-gasmg = pos_gasmg.
g_afkopos-gstrp = pos_gstrp.
g_afkopos-gltrp = pos_gltrp.
g_resbpos-matnr = pos_matnr. "v1-9 add
g_resbpos-werks = pos_dwerk.
g_resbpos-lgort = pos_lgort.
g_resbpos-bdmng = pos_bdmng.
g_resbpos-sobkz = pos_sobkz.
g_resbpos-kzear = pos_kzear. "v1-3 add
ranges r_auart for aufk-auart.
selection-screen begin of block blk1 with frame title
text-t01.
parameters:p_dwerk like afpo-dwerk obligatory. "default '1021'. "工厂
select-options: s_aufnr for zafkolog-aufnr,
"obligatory, "v1-7 rmk
s_mdate for zafkolog-gstrp.
parameters:p_auart like aufk-auart. "工单类型
select-options:s_aennr for zafkolog-aennr no intervals. "修改人 "v1-5 add
* SELECT-OPTIONS:S_AUART FOR AUFK-AUART NO INTERVALS OPTION EQ SIGN I.
selection-screen end of block blk1.
*****BEGIN OF EVENT TOP-OF-PAGE*****
*****END OF EVENT TOP-OF-PAGE********
******BEGIN OF EVENT INITIALZATION**********
INITIALIZATION.
GET PARAMETER ID 'WRK' FIELD P_DWERK. "V1-9 ADD
******END OF EVENT INITIALZATION************
******BEGIN OF EVENT AT SELECTION-SCREEN ON BLOCK BLK1***********
at selection-screen.
if p_auart is not initial.
refresh r_auart.
r_auart-option = 'EQ'.
r_auart-sign = 'I'.
r_auart-low = p_auart.
append r_auart.
endif.
******END OF EVENT AT SELECTION-SCREEN ON BLOCK BLK1************
*****BEGIN OF EVENT START-OF-SELECTION************
start-of-selection.
* perform frm_auth_check. "V1-8 ADD
* if g_ifnoauthpass is initial. "V1-8 ADD
perform frm_check
using g_iferr. "v1-7 add
check g_iferr is initial. "v1-7 add
perform frm_select.
perform data_output.
"v1-8 add
*****END OF EVENT START-OF-SELECTION**************
******BEGIN OF EVENT END-OF-SELECTION****************
end-of-selection.
******END OF EVENT END-OF-SELECTION*****************
form frm_check
using p_iferr. "v1-7 add
clear p_iferr. "v1-7 add
select single
a~aufnr "生产订单
into corresponding fields of w_afko1
from zafkolog as a
inner join afpo as b on a~aufnr = b~aufnr
inner join aufk as c on a~aufnr = c~aufnr
where a~aufnr in s_aufnr "生产订单号
and b~dwerk = p_dwerk "工厂
and a~sdate in s_mdate "修改时间
and c~auart in r_auart "工单类型
and a~aennr in s_aennr. "修改人 "v1-5 add
if sy-subrc <> 0.
select single
a~aufnr
into corresponding fields of w_resb1
from zresblog as a
INNER JOIN AFKO AS D ON A~RSNUM = D~RSNUM "V1-9 ADD
* inner join afpo as b on a~aufnr = b~aufnr "V1-9 RMK
* inner join aufk as c on a~aufnr = c~aufnr "V1-9 RMK
inner join afpo as b on D~aufnr = b~aufnr "V1-9 ADD
inner join aufk as c on D~aufnr = c~aufnr "V1-9 ADD
where
* a~aufnr in s_aufnr "生产订单号 "V1-9 RMK
D~aufnr in s_aufnr "生产订单号 "V1-9 ADD
and b~dwerk = p_dwerk "工厂
and a~sdate in s_mdate "修改时间
and c~auart in r_auart "工单类型
and a~aennr in s_aennr. "修改人 "v1-5 add
if sy-subrc <> 0.
message '无相关单据' type 'S'.
endif.
endif.
*********************v1-7 add begin*******************
if s_aufnr is initial
and s_mdate is initial.
message '条件生产订单和修改日期不能都为空.' TYPE 'S' DISPLAY LIKE 'E'.
P_IFERR = 'X'.
endif.
*********************v1-7 add end*********************
clear: w_afko1 , w_resb1.
endform.
form frm_select .
select a~aufnr
a~sdate
a~stime
a~snew
a~sname
a~prvbe
a~gltrp
a~gstrp
a~gamng
a~gasmg
a~aennr "v1-2 add
into corresponding fields of w_afko1
from zafkolog as a
inner join afpo as b on a~aufnr = b~aufnr
inner join aufk as c on a~aufnr = c~aufnr
where a~aufnr in s_aufnr "生产订单号
and b~dwerk = p_dwerk "工厂
and a~sdate in s_mdate "修改时间
and c~auart in r_auart "工单类型
and a~aennr in s_aennr. "修改人 "v1-5 add
append w_afko1 to t_afko.
clear w_afko1.
endselect.
select a~rsnum
a~rspos
a~aufnr
a~rsart
a~sdate
a~stime
a~snew
a~sname
a~prvbe
a~werks
a~lgort
a~bdmng
a~sobkz
a~matnr
a~SHKZG "借贷标记 S为借(负),H 为贷(正)
a~aennr "v1-2 add
a~kzear "v1-3 add
into corresponding fields of w_resb1
from zresblog as a
INNER JOIN AFKO AS D ON A~RSNUM = D~RSNUM "V1-9 ADD
* inner join afpo as b on a~aufnr = b~aufnr "V1-9 RMK
* inner join aufk as c on a~aufnr = c~aufnr "V1-9 RMK
inner join afpo as b on D~aufnr = b~aufnr "V1-9 ADD
inner join aufk as c on D~aufnr = c~aufnr "V1-9 ADD
where
* a~aufnr in s_aufnr "生产订单号 "V1-9 RMK
D~aufnr in s_aufnr "生产订单号 "V1-9 ADD
and b~dwerk = p_dwerk "工厂
and a~sdate in s_mdate "修改时间
and c~auart in r_auart "工单类型
and a~aennr in s_aennr. "修改人 "v1-5 add
"取得物料描述
if w_resb1-matnr is NOT initial. "v1-4 add
select single maktx
from makt
into w_resb1-maktx
where matnr = w_resb1-matnr
and spras = '1'.
else. "v1-4 add
select single potx1 "v1-4 add
from zresblog as a "v1-4 add
into w_resb1-maktx "v1-4 add
where a~rsnum = w_resb1-rsnum "v1-4 add
and a~rspos = w_resb1-rspos "v1-4 add
and a~sdate = w_resb1-sdate "v1-4 add
and a~stime = w_resb1-stime "v1-4 add
and a~snew = w_resb1-snew "v1-4 add
and a~sname = w_resb1-sname. "v1-4 add
endif. "v1-4 add
"根据借贷标记更新需求数量
if w_resb1-SHKZG = 'S'.
w_resb1-bdmng = - w_resb1-bdmng.
endif.
append w_resb1 to t_resb.
clear w_resb1.
endselect.
***************表头没有修改的记录也插入到t_afko中 开始***************
loop at t_resb into w_resb1.
read table t_afko into w_afko1 with key aufnr = w_resb1-aufnr
sdate = w_resb1-sdate
stime = w_resb1-stime
sname = w_resb1-sname.
if sy-subrc <> 0.
w_afko1-aufnr = w_resb1-aufnr.
w_afko1-sdate = w_resb1-sdate.
w_afko1-stime = w_resb1-stime.
w_afko1-sname = w_resb1-sname.
w_afko1-aennr = w_resb1-aennr. "v1-2 add
append w_afko1 to t_afko.
endif.
clear:w_resb1 , w_afko1.
endloop.
***************表头没有修改的记录也插入到t_afko中 结束***************
sort t_afko by aufnr sdate stime.
sort t_resb by rsnum sdate stime.
endform.
form data_output.
data: l_idx1 type i,
l_idx2 type i,
l_cname type adrp-name_text, "v1-6 add
l_name type adrp-name_text. "v1-6 add
loop at t_afko into w_afko1 where flag = space.
l_idx1 = sy-tabix.
if w_afko1-prvbe = '更改之前'.
write:/1 '生产订单号:', w_afko1-aufnr.
write:/10 '修改日',
25 '修改时间',
40 '修改者' ,
* 55 '计算机名' "v1-2 add "v1-6 rmk
70 '计算机名' "v1-6 add
.
read table t_afko into w_afko2 with key aufnr = w_afko1-aufnr
sdate = w_afko1-sdate
stime = w_afko1-stime
SNAME = W_AFKO1-SNAME "V1-9 ADD
prvbe = '更改之后'.
if sy-subrc = 0 . "V1-9 ADD
l_idx2 = sy-tabix. "V1-9 ADD
************************v1-6 add begin****************************
clear:l_name,l_cname.
perform frm_get_username using w_afko1-aennr changing l_cname.
concatenate w_afko1-aennr l_cname into l_name.
************************v1-6 add end******************************
* if sy-subrc = 0 . "V1-9 RMK
* l_idx2 = sy-tabix. "V1-9 RMK
write:/ w_afko1-sdate under '修改日',
w_afko1-stime under '修改时间',
* w_afko1-aennr under '修改者', "v1-2 add "v1-6 rmk
l_name under '修改者', "v1-6 add
w_afko1-sname under '计算机名' "v1-2 add
* w_afko1-sname under '修改者' "v1-2 rmk
.
skip.
write:at pos_taitou '抬头',
at pos_gamng '总计数量',
at pos_gasmg '废品数量',
at pos_gstrp '开始日期',
at pos_gltrp '完成日期'
.
perform get_afkoflag using w_afko1 w_afko2 g_afkoflag.
perform format_write_afko using w_afko1 w_afko2 g_afkoflag.
clear g_afkoflag.
w_afko1-flag = 'X'.
w_afko2-flag = 'X'.
modify t_afko from w_afko1 index l_idx1.
modify t_afko from w_afko2 index l_idx2.
***********************V1-9 ADD BEGIN*************************
ELSE.
clear:g_afkoflag,
w_afko2.
w_afko2-aufnr = w_afko1-aufnr.
w_afko2-sdate = w_afko1-sdate.
w_afko2-stime = w_afko1-stime.
w_afko2-SNAME = W_AFKO1-SNAME.
w_afko2-prvbe = '更改后(丢)'.
perform format_write_afko using w_afko1 w_afko2 g_afkoflag.
**********************V1-9 ADD END****************************
clear: l_idx1,l_idx2.
endif.
elseif w_afko1-prvbe = '更改之后'.
clear: l_idx1,l_idx2.
clear: w_afko1 , w_afko2 , w_resb1 , w_resb2.
continue.
else.
************************v1-6 add begin****************************
clear:l_name,l_cname.
perform frm_get_username using w_afko1-aennr changing l_cname.
concatenate w_afko1-aennr l_cname into l_name.
************************v1-6 add end******************************
write:/1 '生产订单号:', w_afko1-aufnr.
write:/10 '修改日',
25 '修改时间',
40 '修改者' ,
* 55 '计算机名' "v1-2 add "v1-6 rmk
70 '计算机名' "v1-6 add
.
write:/ w_afko1-sdate under '修改日',
w_afko1-stime under '修改时间',
* w_afko1-aennr under '修改者', "v1-2 add "v1-6 rmk
l_name under '修改者', "v1-6 add
w_afko1-sname under '计算机名' "v1-2 add
* w_afko1-sname under '修改者' "v1-2 rmk
.
skip.
write:at pos_taitou '抬头无修改'.
w_afko1-flag = 'X'.
modify t_afko from w_afko1 index l_idx1.
clear: l_idx1,l_idx2.
ENDIF.
************配件部分开始*********************
skip.
read table t_resb into w_resb1 with key aufnr = w_afko1-aufnr
flag = space
sdate = w_afko1-sdate
stime = w_afko1-stime
sname = w_afko1-sname .
if sy-subrc = 0. "配件有修改过
write: at pos_biaoshen '配件',
at pos_matnr '物料号',
at pos_maktx '物料描述',
at pos_dwerk '工厂',
at pos_lgort '库位',
at pos_bdmng '需求数量' ,
at pos_sobkz '特殊库存',
at pos_kzear '最后确认' "v1-3 add
.
loop at t_resb into w_resb1 where aufnr = w_afko1-aufnr
and flag = space
and sdate = w_afko1-sdate
and stime = w_afko1-stime
and sname = w_afko1-sname .
l_idx1 = sy-tabix.
if w_resb1-prvbe = '更改之前'.
read table t_resb into w_resb2 with key rsnum = w_resb1-rsnum
rspos = w_resb1-rspos
sdate = w_resb1-sdate
stime = w_resb1-stime
sname = w_resb1-sname "v1-9 add
prvbe = '更改之后'.
if sy-subrc = 0.
l_idx2 = sy-tabix.
perform get_resbflag using w_resb1 w_resb2 g_resbflag.
perform format_write_resb
using w_resb1 w_resb2 g_resbflag.
clear g_resbflag.
w_resb1-flag = 'X'.
w_resb2-flag = 'X'.
modify t_resb from w_resb1 index l_idx1.
modify t_resb from w_resb2 index l_idx2.
clear: w_resb1 , w_resb2.
************************v1-9 ADD BEGIN****************************
ELSE.
CLEAR:W_RESB2,
G_RESBFLAG.
w_resb2-rsnum = w_resb1-rsnum.
w_resb2-rspos = w_resb1-rspos.
w_resb2-sdate = w_resb1-sdate.
w_resb2-stime = w_resb1-stime.
w_resb2-sname = w_resb1-sname.
w_resb2-prvbe = '更改后(丢)'.
perform format_write_resb
using w_resb1 w_resb2 g_resbflag.
************************V1-9 ADD END******************************
endif.
* elseif w_resb1-prvbe <> '更改之后' .
elseif not ( w_resb1-prvbe = '更改之后'
or w_resb1-prvbe = '更改之前' ).
perform initformat_write_resb using w_resb1.
w_resb1-flag = 'X'.
modify t_resb from w_resb1 index l_idx1.
endif.
clear: l_idx1,l_idx2.
endloop.
else. "配件没修改过
write: at pos_biaoshen '配件无修改'.
endif.
************配件部分结束*********************
ULINE.
SKIP.
clear: w_afko1 , w_afko2 , w_resb1 , w_resb2.
endloop.
endform.
form format_write_afko using para_w_afko1 like w_afko1 para_w_afko2
like w_afko1 para_afkoflag type afkoflag.
data l_afkoflag type afkoflag.
data l_afkoval type afkoval.
l_afkoflag = para_afkoflag.
move-corresponding para_w_afko1 to l_afkoval.
field-symbols :<flag> , <pos> , <val>.
skip.
write:
* at pos_before '更改之前' "V1-9 RMK
at pos_before para_w_afko1-prvbe "V1-9 ADD
* AT POS_GAMNG PARA_W_AFKO1-GAMNG,
* AT POS_GASMG PARA_W_AFKO1-GASMG,
* AT POS_GSTRP PARA_W_AFKO1-GSTRP,
* AT POS_GLTRP PARA_W_AFKO1-GLTRP
.
do.
assign component sy-index of structure l_afkoflag to <flag>.
assign component sy-index of structure g_afkopos to <pos>.
assign component sy-index of structure l_afkoval to <val>.
if sy-subrc <> 0.
exit.
endif.
perform write_col_negative using <flag> <pos> <val>.
enddo.
clear l_afkoval.
move-corresponding para_w_afko2 to l_afkoval.
skip.
write:
* at pos_after '更改之后' "V1-9 RMK
at pos_after para_w_afko2-prvbe "V1-9 ADD
* AT POS_GAMNG PARA_W_AFKO2-GAMNG ,
* AT POS_GASMG PARA_W_AFKO2-GASMG ,
* AT POS_GSTRP PARA_W_AFKO2-GSTRP ,
* AT POS_GLTRP PARA_W_AFKO2-GLTRP
.
do.
assign component sy-index of structure l_afkoflag to <flag>.
assign component sy-index of structure g_afkopos to <pos>.
assign component sy-index of structure l_afkoval to <val>.
if sy-subrc <> 0.
exit.
endif.
perform write_col_positive using <flag> <pos> <val>.
enddo.
endform.
form get_afkoflag using para_w_afko1 like w_afko1 para_w_afko2 like
w_afko1 para_afkoflag type afkoflag.
if para_w_afko1-gamng <> para_w_afko2-gamng.
para_afkoflag-gamng = 'X'.
endif.
if para_w_afko1-gasmg <> para_w_afko2-gasmg.
para_afkoflag-gasmg = 'X'.
endif.
if para_w_afko1-gstrp <> para_w_afko2-gstrp.
para_afkoflag-gstrp = 'X'.
endif.
if para_w_afko1-gltrp <> para_w_afko2-gltrp.
para_afkoflag-gltrp = 'X'.
endif.
endform.
form format_write_resb using para_w_resb1 like w_resb1 para_w_resb2
like w_resb1 para_resbflag type resbflag.
data l_resbflag type resbflag.
data l_resbval type resbval.
l_resbflag = para_resbflag.
move-corresponding para_w_resb1 to l_resbval.
field-symbols :<flag> , <pos> , <val>.
skip.
* AT POS_BEFORE '更改之前',
write:at pos_before para_w_resb1-prvbe,
at pos_matnr para_w_resb1-matnr,
at pos_maktx para_w_resb1-maktx
* AT POS_DWERK PARA_W_RESB1-WERKS,
* AT POS_LGORT PARA_W_RESB1-LGORT,
* AT POS_BDMNG PARA_W_RESB1-BDMNG,
* AT POS_SOBKZ PARA_W_RESB1-SOBKZ
.
do.
assign component sy-index of structure l_resbflag to <flag>.
assign component sy-index of structure g_resbpos to <pos>.
assign component sy-index of structure l_resbval to <val>.
if sy-subrc <> 0.
exit.
endif.
perform write_col_negative using <flag> <pos> <val>.
enddo.
clear l_resbval.
move-corresponding para_w_resb2 to l_resbval.
skip.
* WRITE:AT POS_AFTER '更改之后',
write:at pos_before para_w_resb2-prvbe,
at pos_matnr para_w_resb2-matnr,
at pos_maktx para_w_resb2-maktx
* AT POS_DWERK PARA_W_RESB2-WERKS,
* AT POS_LGORT PARA_W_RESB2-LGORT,
* AT POS_BDMNG PARA_W_RESB2-BDMNG,
* AT POS_SOBKZ PARA_W_RESB2-SOBKZ
.
do.
assign component sy-index of structure l_resbflag to <flag>.
assign component sy-index of structure g_resbpos to <pos>.
assign component sy-index of structure l_resbval to <val>.
if sy-subrc <> 0.
exit.
endif.
perform write_col_positive using <flag> <pos> <val>.
enddo.
endform.
form get_resbflag using para_w_resb1 like w_resb1 para_w_resb2 like
w_resb1 para_resbflag type resbflag.
***********************v1-9 add begin***********************
if para_w_resb1-matnr <> para_w_resb2-matnr.
para_resbflag-matnr = 'X'.
endif.
************************v1-9 add end*************************
if para_w_resb1-werks <> para_w_resb2-werks.
para_resbflag-werks = 'X'.
endif.
if para_w_resb1-lgort <> para_w_resb2-lgort.
para_resbflag-lgort = 'X'.
endif.
if para_w_resb1-bdmng <> para_w_resb2-bdmng.
para_resbflag-bdmng = 'X'.
endif.
if para_w_resb1-sobkz <> para_w_resb2-sobkz.
para_resbflag-sobkz = 'X'.
endif.
if para_w_resb1-kzear <> para_w_resb2-kzear. "v1-3 add
para_resbflag-kzear = 'X'. "v1-3 add
endif. "v1-3 add
endform.
form initformat_write_resb using para_w_resb1 like w_resb1.
skip.
write:at pos_after para_w_resb1-prvbe,
at pos_matnr para_w_resb1-matnr,
at pos_maktx para_w_resb1-maktx,
at pos_dwerk para_w_resb1-werks,
at pos_lgort para_w_resb1-lgort,
at pos_bdmng para_w_resb1-bdmng,
at pos_sobkz(1) para_w_resb1-sobkz,
at pos_kzear(1) para_w_resb1-kzear "v1-3 add
.
endform.
form write_col_negative using para_col type c para_pos type i para_val.
data l_len type i. "v1-3 add
clear l_len. "v1-3 add
describe field para_val output-length l_len. "v1-3 add
if l_len < 8. "目的是为底色显示更平均 "v1-3 add
l_len = 8. "v1-3 add
endif. "v1-3 add
if para_col = 'X'.
format color col_negative on .
"write : at para_pos para_val. "v1-3 rmk
write : at para_pos(l_len) para_val. "v1-3 add
else.
format color col_negative off .
write: at para_pos para_val. "v1-3 rmk
write: at para_pos(l_len) para_val. "v1-3 add
endif.
format color col_negative off .
endform.
form write_col_positive using para_col type c para_pos type i
para_val.
data l_len type i. "v1-3 add
clear l_len. "v1-3 add
describe field para_val output-length l_len. "v1-3 add
if l_len < 8. "目的是为底色显示更平均 "v1-3 add
l_len = 8. "v1-3 add
endif. "v1-3 add
if para_col = 'X'.
format color col_positive on.
"write : at para_pos para_val. "v1-3 rmk
write : at para_pos(l_len) para_val. "v1-3 add
else.
format color col_positive off.
"write : at para_pos para_val. "v1-3 rmk
write: at para_pos(l_len) para_val. "v1-3 add
endif.
format color col_positive off.
endform.
***************************v1-6 add begin******************************
*&---------------------------------------------------------------------*
*& Form FRM_GET_USERNAME
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form frm_get_username using p_sy_uname changing p_name_txt.
select single name_text
from adrp
inner join usr21 on usr21~persnumber = adrp~persnumber
into p_name_txt
where bname = p_sy_uname.
endform. " FRM_GET_USERNAME
***************************v1-6 add end********************************
******************************V1-8 ADD BEGIN******************************
*&---------------------------------------------------------------------*
*& Form FRM_AUTH_CHECK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_AUTH_CHECK .
* clear:r_vkorg,
* r_vkorg[].
CALL FUNCTION 'ZGL_CHECK_REPAUTH'
EXPORTING
I_MODULE = 'PP'
* I_BUKRS = P_BUKRS
I_WERKS = p_dwerk
* I_VKORG =
* I_ACTVT =
EXCEPTIONS
NO_MODULE = 1
NO_INPUTFIELD = 2
NOT_AUTHORIZED = 3
OTHERS = 4
.
IF SY-SUBRC <> 0.
g_ifnoauthpass = 'X'.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
else.
clear g_ifnoauthpass.
ENDIF.
*
* r_vkorg[] = s_vkorg[].
*
* CALL FUNCTION 'ZGL_CHECK_REPAUTH_FILTRANGE'
* EXPORTING
* I_MODULE = 'SD'
** I_***TVT =
** I_IFBUKRS =
** I_IFWERKS =
* I_IFVKORG = 'X'
* TABLES
** T_RANGEBUKRS =
** T_RANGEWERKS =
* T_RANGEVKORG = R_VKORG
* .
ENDFORM. " FRM_AUTH_CHECK
*****************************V1-8 ADD END**********************************
*& Report ZPPR024
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZPPR024.
*&---------------------------------------------------------------------*
*& Report ZPR_0002 for WBL
*& CO02生产订单修改记录报表
*&---------------------------------------------------------------------*
tables:zafkolog , zresblog , aufk ,afpo.
types: begin of typ_afko.
include type zafkolog.
types: flag type c,
end of typ_afko.
types: begin of typ_resb.
include type zresblog.
types: maktx like makt-maktx,"物料描述
flag type c,
end of typ_resb.
types: begin of afkoflag,
gamng type c, "总计数量修改
gasmg type c, "废品数量修改
gstrp type c, "开始日期修改
gltrp type c, "完成日期修改
end of afkoflag.
types:begin of resbflag,
matnr type c, "物料 "v1-9 add
werks type c, "工厂修改
lgort type c, "库位修改
bdmng type c, "需求数量修改
sobkz type c, "特殊库存修改
KZEAR TYPE C, "最后确认 "v1-3 add
end of resbflag.
types:begin of afkopos,
gamng type i,
gasmg type i,
gstrp type i,
gltrp type i,
end of afkopos.
types:begin of resbpos,
matnr type i, "物料 "v1-9 add
werks type i,
lgort type i,
bdmng type i,
sobkz type i,
KZEAR type i, "v1-3 add
end of resbpos.
types:begin of afkoval,
gamng like afko-gamng,
gasmg like afko-gasmg,
gstrp like afko-gstrp,
gltrp like afko-gltrp,
end of afkoval.
types:begin of resbval,
matnr like resb-matnr, "物料 "v1-9 add
werks like resb-werks,
lgort like resb-lgort,
bdmng like resb-bdmng,
sobkz like resb-sobkz,
KZEAR LIKE RESB-KZEAR, "v1-3 add
end of resbval.
data:t_afko type table of typ_afko, "工单抬头给修改过的
t_afko2 type table of typ_afko, "工单抬头未给修改,只有物料清单给修改过的整理后的
t_resb type table of typ_resb,
w_afko1 type typ_afko,
w_afko2 type typ_afko,
w_resb1 type typ_resb,
w_resb2 type typ_resb,
g_resbflag type resbflag,
g_afkoflag type afkoflag,
g_afkopos type afkopos,
g_resbpos type resbpos,
g_afkoval type afkoval,
g_resbval type resbval,
g_iferr type c "v1-7 add
.
data: g_ifnoauthpass TYPE C. "v1-8
constants: pos_taitou type i value 12,
pos_before type i value 17,
pos_gamng type i value 27,
pos_gasmg type i value 47,
pos_gstrp type i value 67,
pos_gltrp type i value 82,
pos_biaoshen type i value 12,
pos_after type i value 17,
pos_matnr type i value 27,
pos_maktx type i value 42,
pos_dwerk type i value 82,
pos_lgort type i value 92,
pos_bdmng type i value 98,
pos_sobkz type i value 118,
pos_kzear type i value 128. "v1-3 add
g_afkopos-gamng = pos_gamng.
g_afkopos-gasmg = pos_gasmg.
g_afkopos-gstrp = pos_gstrp.
g_afkopos-gltrp = pos_gltrp.
g_resbpos-matnr = pos_matnr. "v1-9 add
g_resbpos-werks = pos_dwerk.
g_resbpos-lgort = pos_lgort.
g_resbpos-bdmng = pos_bdmng.
g_resbpos-sobkz = pos_sobkz.
g_resbpos-kzear = pos_kzear. "v1-3 add
ranges r_auart for aufk-auart.
selection-screen begin of block blk1 with frame title
text-t01.
parameters:p_dwerk like afpo-dwerk obligatory. "default '1021'. "工厂
select-options: s_aufnr for zafkolog-aufnr,
"obligatory, "v1-7 rmk
s_mdate for zafkolog-gstrp.
parameters:p_auart like aufk-auart. "工单类型
select-options:s_aennr for zafkolog-aennr no intervals. "修改人 "v1-5 add
* SELECT-OPTIONS:S_AUART FOR AUFK-AUART NO INTERVALS OPTION EQ SIGN I.
selection-screen end of block blk1.
*****BEGIN OF EVENT TOP-OF-PAGE*****
*****END OF EVENT TOP-OF-PAGE********
******BEGIN OF EVENT INITIALZATION**********
INITIALIZATION.
GET PARAMETER ID 'WRK' FIELD P_DWERK. "V1-9 ADD
******END OF EVENT INITIALZATION************
******BEGIN OF EVENT AT SELECTION-SCREEN ON BLOCK BLK1***********
at selection-screen.
if p_auart is not initial.
refresh r_auart.
r_auart-option = 'EQ'.
r_auart-sign = 'I'.
r_auart-low = p_auart.
append r_auart.
endif.
******END OF EVENT AT SELECTION-SCREEN ON BLOCK BLK1************
*****BEGIN OF EVENT START-OF-SELECTION************
start-of-selection.
* perform frm_auth_check. "V1-8 ADD
* if g_ifnoauthpass is initial. "V1-8 ADD
perform frm_check
using g_iferr. "v1-7 add
check g_iferr is initial. "v1-7 add
perform frm_select.
perform data_output.
"v1-8 add
*****END OF EVENT START-OF-SELECTION**************
******BEGIN OF EVENT END-OF-SELECTION****************
end-of-selection.
******END OF EVENT END-OF-SELECTION*****************
form frm_check
using p_iferr. "v1-7 add
clear p_iferr. "v1-7 add
select single
a~aufnr "生产订单
into corresponding fields of w_afko1
from zafkolog as a
inner join afpo as b on a~aufnr = b~aufnr
inner join aufk as c on a~aufnr = c~aufnr
where a~aufnr in s_aufnr "生产订单号
and b~dwerk = p_dwerk "工厂
and a~sdate in s_mdate "修改时间
and c~auart in r_auart "工单类型
and a~aennr in s_aennr. "修改人 "v1-5 add
if sy-subrc <> 0.
select single
a~aufnr
into corresponding fields of w_resb1
from zresblog as a
INNER JOIN AFKO AS D ON A~RSNUM = D~RSNUM "V1-9 ADD
* inner join afpo as b on a~aufnr = b~aufnr "V1-9 RMK
* inner join aufk as c on a~aufnr = c~aufnr "V1-9 RMK
inner join afpo as b on D~aufnr = b~aufnr "V1-9 ADD
inner join aufk as c on D~aufnr = c~aufnr "V1-9 ADD
where
* a~aufnr in s_aufnr "生产订单号 "V1-9 RMK
D~aufnr in s_aufnr "生产订单号 "V1-9 ADD
and b~dwerk = p_dwerk "工厂
and a~sdate in s_mdate "修改时间
and c~auart in r_auart "工单类型
and a~aennr in s_aennr. "修改人 "v1-5 add
if sy-subrc <> 0.
message '无相关单据' type 'S'.
endif.
endif.
*********************v1-7 add begin*******************
if s_aufnr is initial
and s_mdate is initial.
message '条件生产订单和修改日期不能都为空.' TYPE 'S' DISPLAY LIKE 'E'.
P_IFERR = 'X'.
endif.
*********************v1-7 add end*********************
clear: w_afko1 , w_resb1.
endform.
form frm_select .
select a~aufnr
a~sdate
a~stime
a~snew
a~sname
a~prvbe
a~gltrp
a~gstrp
a~gamng
a~gasmg
a~aennr "v1-2 add
into corresponding fields of w_afko1
from zafkolog as a
inner join afpo as b on a~aufnr = b~aufnr
inner join aufk as c on a~aufnr = c~aufnr
where a~aufnr in s_aufnr "生产订单号
and b~dwerk = p_dwerk "工厂
and a~sdate in s_mdate "修改时间
and c~auart in r_auart "工单类型
and a~aennr in s_aennr. "修改人 "v1-5 add
append w_afko1 to t_afko.
clear w_afko1.
endselect.
select a~rsnum
a~rspos
a~aufnr
a~rsart
a~sdate
a~stime
a~snew
a~sname
a~prvbe
a~werks
a~lgort
a~bdmng
a~sobkz
a~matnr
a~SHKZG "借贷标记 S为借(负),H 为贷(正)
a~aennr "v1-2 add
a~kzear "v1-3 add
into corresponding fields of w_resb1
from zresblog as a
INNER JOIN AFKO AS D ON A~RSNUM = D~RSNUM "V1-9 ADD
* inner join afpo as b on a~aufnr = b~aufnr "V1-9 RMK
* inner join aufk as c on a~aufnr = c~aufnr "V1-9 RMK
inner join afpo as b on D~aufnr = b~aufnr "V1-9 ADD
inner join aufk as c on D~aufnr = c~aufnr "V1-9 ADD
where
* a~aufnr in s_aufnr "生产订单号 "V1-9 RMK
D~aufnr in s_aufnr "生产订单号 "V1-9 ADD
and b~dwerk = p_dwerk "工厂
and a~sdate in s_mdate "修改时间
and c~auart in r_auart "工单类型
and a~aennr in s_aennr. "修改人 "v1-5 add
"取得物料描述
if w_resb1-matnr is NOT initial. "v1-4 add
select single maktx
from makt
into w_resb1-maktx
where matnr = w_resb1-matnr
and spras = '1'.
else. "v1-4 add
select single potx1 "v1-4 add
from zresblog as a "v1-4 add
into w_resb1-maktx "v1-4 add
where a~rsnum = w_resb1-rsnum "v1-4 add
and a~rspos = w_resb1-rspos "v1-4 add
and a~sdate = w_resb1-sdate "v1-4 add
and a~stime = w_resb1-stime "v1-4 add
and a~snew = w_resb1-snew "v1-4 add
and a~sname = w_resb1-sname. "v1-4 add
endif. "v1-4 add
"根据借贷标记更新需求数量
if w_resb1-SHKZG = 'S'.
w_resb1-bdmng = - w_resb1-bdmng.
endif.
append w_resb1 to t_resb.
clear w_resb1.
endselect.
***************表头没有修改的记录也插入到t_afko中 开始***************
loop at t_resb into w_resb1.
read table t_afko into w_afko1 with key aufnr = w_resb1-aufnr
sdate = w_resb1-sdate
stime = w_resb1-stime
sname = w_resb1-sname.
if sy-subrc <> 0.
w_afko1-aufnr = w_resb1-aufnr.
w_afko1-sdate = w_resb1-sdate.
w_afko1-stime = w_resb1-stime.
w_afko1-sname = w_resb1-sname.
w_afko1-aennr = w_resb1-aennr. "v1-2 add
append w_afko1 to t_afko.
endif.
clear:w_resb1 , w_afko1.
endloop.
***************表头没有修改的记录也插入到t_afko中 结束***************
sort t_afko by aufnr sdate stime.
sort t_resb by rsnum sdate stime.
endform.
form data_output.
data: l_idx1 type i,
l_idx2 type i,
l_cname type adrp-name_text, "v1-6 add
l_name type adrp-name_text. "v1-6 add
loop at t_afko into w_afko1 where flag = space.
l_idx1 = sy-tabix.
if w_afko1-prvbe = '更改之前'.
write:/1 '生产订单号:', w_afko1-aufnr.
write:/10 '修改日',
25 '修改时间',
40 '修改者' ,
* 55 '计算机名' "v1-2 add "v1-6 rmk
70 '计算机名' "v1-6 add
.
read table t_afko into w_afko2 with key aufnr = w_afko1-aufnr
sdate = w_afko1-sdate
stime = w_afko1-stime
SNAME = W_AFKO1-SNAME "V1-9 ADD
prvbe = '更改之后'.
if sy-subrc = 0 . "V1-9 ADD
l_idx2 = sy-tabix. "V1-9 ADD
************************v1-6 add begin****************************
clear:l_name,l_cname.
perform frm_get_username using w_afko1-aennr changing l_cname.
concatenate w_afko1-aennr l_cname into l_name.
************************v1-6 add end******************************
* if sy-subrc = 0 . "V1-9 RMK
* l_idx2 = sy-tabix. "V1-9 RMK
write:/ w_afko1-sdate under '修改日',
w_afko1-stime under '修改时间',
* w_afko1-aennr under '修改者', "v1-2 add "v1-6 rmk
l_name under '修改者', "v1-6 add
w_afko1-sname under '计算机名' "v1-2 add
* w_afko1-sname under '修改者' "v1-2 rmk
.
skip.
write:at pos_taitou '抬头',
at pos_gamng '总计数量',
at pos_gasmg '废品数量',
at pos_gstrp '开始日期',
at pos_gltrp '完成日期'
.
perform get_afkoflag using w_afko1 w_afko2 g_afkoflag.
perform format_write_afko using w_afko1 w_afko2 g_afkoflag.
clear g_afkoflag.
w_afko1-flag = 'X'.
w_afko2-flag = 'X'.
modify t_afko from w_afko1 index l_idx1.
modify t_afko from w_afko2 index l_idx2.
***********************V1-9 ADD BEGIN*************************
ELSE.
clear:g_afkoflag,
w_afko2.
w_afko2-aufnr = w_afko1-aufnr.
w_afko2-sdate = w_afko1-sdate.
w_afko2-stime = w_afko1-stime.
w_afko2-SNAME = W_AFKO1-SNAME.
w_afko2-prvbe = '更改后(丢)'.
perform format_write_afko using w_afko1 w_afko2 g_afkoflag.
**********************V1-9 ADD END****************************
clear: l_idx1,l_idx2.
endif.
elseif w_afko1-prvbe = '更改之后'.
clear: l_idx1,l_idx2.
clear: w_afko1 , w_afko2 , w_resb1 , w_resb2.
continue.
else.
************************v1-6 add begin****************************
clear:l_name,l_cname.
perform frm_get_username using w_afko1-aennr changing l_cname.
concatenate w_afko1-aennr l_cname into l_name.
************************v1-6 add end******************************
write:/1 '生产订单号:', w_afko1-aufnr.
write:/10 '修改日',
25 '修改时间',
40 '修改者' ,
* 55 '计算机名' "v1-2 add "v1-6 rmk
70 '计算机名' "v1-6 add
.
write:/ w_afko1-sdate under '修改日',
w_afko1-stime under '修改时间',
* w_afko1-aennr under '修改者', "v1-2 add "v1-6 rmk
l_name under '修改者', "v1-6 add
w_afko1-sname under '计算机名' "v1-2 add
* w_afko1-sname under '修改者' "v1-2 rmk
.
skip.
write:at pos_taitou '抬头无修改'.
w_afko1-flag = 'X'.
modify t_afko from w_afko1 index l_idx1.
clear: l_idx1,l_idx2.
ENDIF.
************配件部分开始*********************
skip.
read table t_resb into w_resb1 with key aufnr = w_afko1-aufnr
flag = space
sdate = w_afko1-sdate
stime = w_afko1-stime
sname = w_afko1-sname .
if sy-subrc = 0. "配件有修改过
write: at pos_biaoshen '配件',
at pos_matnr '物料号',
at pos_maktx '物料描述',
at pos_dwerk '工厂',
at pos_lgort '库位',
at pos_bdmng '需求数量' ,
at pos_sobkz '特殊库存',
at pos_kzear '最后确认' "v1-3 add
.
loop at t_resb into w_resb1 where aufnr = w_afko1-aufnr
and flag = space
and sdate = w_afko1-sdate
and stime = w_afko1-stime
and sname = w_afko1-sname .
l_idx1 = sy-tabix.
if w_resb1-prvbe = '更改之前'.
read table t_resb into w_resb2 with key rsnum = w_resb1-rsnum
rspos = w_resb1-rspos
sdate = w_resb1-sdate
stime = w_resb1-stime
sname = w_resb1-sname "v1-9 add
prvbe = '更改之后'.
if sy-subrc = 0.
l_idx2 = sy-tabix.
perform get_resbflag using w_resb1 w_resb2 g_resbflag.
perform format_write_resb
using w_resb1 w_resb2 g_resbflag.
clear g_resbflag.
w_resb1-flag = 'X'.
w_resb2-flag = 'X'.
modify t_resb from w_resb1 index l_idx1.
modify t_resb from w_resb2 index l_idx2.
clear: w_resb1 , w_resb2.
************************v1-9 ADD BEGIN****************************
ELSE.
CLEAR:W_RESB2,
G_RESBFLAG.
w_resb2-rsnum = w_resb1-rsnum.
w_resb2-rspos = w_resb1-rspos.
w_resb2-sdate = w_resb1-sdate.
w_resb2-stime = w_resb1-stime.
w_resb2-sname = w_resb1-sname.
w_resb2-prvbe = '更改后(丢)'.
perform format_write_resb
using w_resb1 w_resb2 g_resbflag.
************************V1-9 ADD END******************************
endif.
* elseif w_resb1-prvbe <> '更改之后' .
elseif not ( w_resb1-prvbe = '更改之后'
or w_resb1-prvbe = '更改之前' ).
perform initformat_write_resb using w_resb1.
w_resb1-flag = 'X'.
modify t_resb from w_resb1 index l_idx1.
endif.
clear: l_idx1,l_idx2.
endloop.
else. "配件没修改过
write: at pos_biaoshen '配件无修改'.
endif.
************配件部分结束*********************
ULINE.
SKIP.
clear: w_afko1 , w_afko2 , w_resb1 , w_resb2.
endloop.
endform.
form format_write_afko using para_w_afko1 like w_afko1 para_w_afko2
like w_afko1 para_afkoflag type afkoflag.
data l_afkoflag type afkoflag.
data l_afkoval type afkoval.
l_afkoflag = para_afkoflag.
move-corresponding para_w_afko1 to l_afkoval.
field-symbols :<flag> , <pos> , <val>.
skip.
write:
* at pos_before '更改之前' "V1-9 RMK
at pos_before para_w_afko1-prvbe "V1-9 ADD
* AT POS_GAMNG PARA_W_AFKO1-GAMNG,
* AT POS_GASMG PARA_W_AFKO1-GASMG,
* AT POS_GSTRP PARA_W_AFKO1-GSTRP,
* AT POS_GLTRP PARA_W_AFKO1-GLTRP
.
do.
assign component sy-index of structure l_afkoflag to <flag>.
assign component sy-index of structure g_afkopos to <pos>.
assign component sy-index of structure l_afkoval to <val>.
if sy-subrc <> 0.
exit.
endif.
perform write_col_negative using <flag> <pos> <val>.
enddo.
clear l_afkoval.
move-corresponding para_w_afko2 to l_afkoval.
skip.
write:
* at pos_after '更改之后' "V1-9 RMK
at pos_after para_w_afko2-prvbe "V1-9 ADD
* AT POS_GAMNG PARA_W_AFKO2-GAMNG ,
* AT POS_GASMG PARA_W_AFKO2-GASMG ,
* AT POS_GSTRP PARA_W_AFKO2-GSTRP ,
* AT POS_GLTRP PARA_W_AFKO2-GLTRP
.
do.
assign component sy-index of structure l_afkoflag to <flag>.
assign component sy-index of structure g_afkopos to <pos>.
assign component sy-index of structure l_afkoval to <val>.
if sy-subrc <> 0.
exit.
endif.
perform write_col_positive using <flag> <pos> <val>.
enddo.
endform.
form get_afkoflag using para_w_afko1 like w_afko1 para_w_afko2 like
w_afko1 para_afkoflag type afkoflag.
if para_w_afko1-gamng <> para_w_afko2-gamng.
para_afkoflag-gamng = 'X'.
endif.
if para_w_afko1-gasmg <> para_w_afko2-gasmg.
para_afkoflag-gasmg = 'X'.
endif.
if para_w_afko1-gstrp <> para_w_afko2-gstrp.
para_afkoflag-gstrp = 'X'.
endif.
if para_w_afko1-gltrp <> para_w_afko2-gltrp.
para_afkoflag-gltrp = 'X'.
endif.
endform.
form format_write_resb using para_w_resb1 like w_resb1 para_w_resb2
like w_resb1 para_resbflag type resbflag.
data l_resbflag type resbflag.
data l_resbval type resbval.
l_resbflag = para_resbflag.
move-corresponding para_w_resb1 to l_resbval.
field-symbols :<flag> , <pos> , <val>.
skip.
* AT POS_BEFORE '更改之前',
write:at pos_before para_w_resb1-prvbe,
at pos_matnr para_w_resb1-matnr,
at pos_maktx para_w_resb1-maktx
* AT POS_DWERK PARA_W_RESB1-WERKS,
* AT POS_LGORT PARA_W_RESB1-LGORT,
* AT POS_BDMNG PARA_W_RESB1-BDMNG,
* AT POS_SOBKZ PARA_W_RESB1-SOBKZ
.
do.
assign component sy-index of structure l_resbflag to <flag>.
assign component sy-index of structure g_resbpos to <pos>.
assign component sy-index of structure l_resbval to <val>.
if sy-subrc <> 0.
exit.
endif.
perform write_col_negative using <flag> <pos> <val>.
enddo.
clear l_resbval.
move-corresponding para_w_resb2 to l_resbval.
skip.
* WRITE:AT POS_AFTER '更改之后',
write:at pos_before para_w_resb2-prvbe,
at pos_matnr para_w_resb2-matnr,
at pos_maktx para_w_resb2-maktx
* AT POS_DWERK PARA_W_RESB2-WERKS,
* AT POS_LGORT PARA_W_RESB2-LGORT,
* AT POS_BDMNG PARA_W_RESB2-BDMNG,
* AT POS_SOBKZ PARA_W_RESB2-SOBKZ
.
do.
assign component sy-index of structure l_resbflag to <flag>.
assign component sy-index of structure g_resbpos to <pos>.
assign component sy-index of structure l_resbval to <val>.
if sy-subrc <> 0.
exit.
endif.
perform write_col_positive using <flag> <pos> <val>.
enddo.
endform.
form get_resbflag using para_w_resb1 like w_resb1 para_w_resb2 like
w_resb1 para_resbflag type resbflag.
***********************v1-9 add begin***********************
if para_w_resb1-matnr <> para_w_resb2-matnr.
para_resbflag-matnr = 'X'.
endif.
************************v1-9 add end*************************
if para_w_resb1-werks <> para_w_resb2-werks.
para_resbflag-werks = 'X'.
endif.
if para_w_resb1-lgort <> para_w_resb2-lgort.
para_resbflag-lgort = 'X'.
endif.
if para_w_resb1-bdmng <> para_w_resb2-bdmng.
para_resbflag-bdmng = 'X'.
endif.
if para_w_resb1-sobkz <> para_w_resb2-sobkz.
para_resbflag-sobkz = 'X'.
endif.
if para_w_resb1-kzear <> para_w_resb2-kzear. "v1-3 add
para_resbflag-kzear = 'X'. "v1-3 add
endif. "v1-3 add
endform.
form initformat_write_resb using para_w_resb1 like w_resb1.
skip.
write:at pos_after para_w_resb1-prvbe,
at pos_matnr para_w_resb1-matnr,
at pos_maktx para_w_resb1-maktx,
at pos_dwerk para_w_resb1-werks,
at pos_lgort para_w_resb1-lgort,
at pos_bdmng para_w_resb1-bdmng,
at pos_sobkz(1) para_w_resb1-sobkz,
at pos_kzear(1) para_w_resb1-kzear "v1-3 add
.
endform.
form write_col_negative using para_col type c para_pos type i para_val.
data l_len type i. "v1-3 add
clear l_len. "v1-3 add
describe field para_val output-length l_len. "v1-3 add
if l_len < 8. "目的是为底色显示更平均 "v1-3 add
l_len = 8. "v1-3 add
endif. "v1-3 add
if para_col = 'X'.
format color col_negative on .
"write : at para_pos para_val. "v1-3 rmk
write : at para_pos(l_len) para_val. "v1-3 add
else.
format color col_negative off .
write: at para_pos para_val. "v1-3 rmk
write: at para_pos(l_len) para_val. "v1-3 add
endif.
format color col_negative off .
endform.
form write_col_positive using para_col type c para_pos type i
para_val.
data l_len type i. "v1-3 add
clear l_len. "v1-3 add
describe field para_val output-length l_len. "v1-3 add
if l_len < 8. "目的是为底色显示更平均 "v1-3 add
l_len = 8. "v1-3 add
endif. "v1-3 add
if para_col = 'X'.
format color col_positive on.
"write : at para_pos para_val. "v1-3 rmk
write : at para_pos(l_len) para_val. "v1-3 add
else.
format color col_positive off.
"write : at para_pos para_val. "v1-3 rmk
write: at para_pos(l_len) para_val. "v1-3 add
endif.
format color col_positive off.
endform.
***************************v1-6 add begin******************************
*&---------------------------------------------------------------------*
*& Form FRM_GET_USERNAME
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form frm_get_username using p_sy_uname changing p_name_txt.
select single name_text
from adrp
inner join usr21 on usr21~persnumber = adrp~persnumber
into p_name_txt
where bname = p_sy_uname.
endform. " FRM_GET_USERNAME
***************************v1-6 add end********************************
******************************V1-8 ADD BEGIN******************************
*&---------------------------------------------------------------------*
*& Form FRM_AUTH_CHECK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_AUTH_CHECK .
* clear:r_vkorg,
* r_vkorg[].
CALL FUNCTION 'ZGL_CHECK_REPAUTH'
EXPORTING
I_MODULE = 'PP'
* I_BUKRS = P_BUKRS
I_WERKS = p_dwerk
* I_VKORG =
* I_ACTVT =
EXCEPTIONS
NO_MODULE = 1
NO_INPUTFIELD = 2
NOT_AUTHORIZED = 3
OTHERS = 4
.
IF SY-SUBRC <> 0.
g_ifnoauthpass = 'X'.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
else.
clear g_ifnoauthpass.
ENDIF.
*
* r_vkorg[] = s_vkorg[].
*
* CALL FUNCTION 'ZGL_CHECK_REPAUTH_FILTRANGE'
* EXPORTING
* I_MODULE = 'SD'
** I_***TVT =
** I_IFBUKRS =
** I_IFWERKS =
* I_IFVKORG = 'X'
* TABLES
** T_RANGEBUKRS =
** T_RANGEWERKS =
* T_RANGEVKORG = R_VKORG
* .
ENDFORM. " FRM_AUTH_CHECK
*****************************V1-8 ADD END**********************************
相关文章推荐
- 几个DOM属性
- bzoj 3999 线段树区间提取 有序链剖
- 二分查找/暴力 Codeforces Round #166 (Div. 2) B. Prime Matrix
- Mybatis学习(4)实现关联数据的查询
- 欢迎使用CSDN-markdown编辑器
- Linux/lnmp安装/lnmp Redis/SSL配置/LNMP删除.user.ini
- Oracle数据库之创建表空间与用户
- Android Studio上手,基于VideoView的本地文件及流媒体播放器
- 水题 Codeforces Beta Round #70 (Div. 2) A. Haiku
- Object-C-NSFileManager
- Javascript对象Clone实例分析
- centos6.x下让redis以服务方式运行
- apk编译与反编译
- 黑马程序员——java概述
- HDU 4599 Dice
- 计步器
- web前端讲解,jQuery之jQuery过滤器(二)内容过滤器
- 简述 synchronized 和 java.util.concurrent.locks.Lock 的异同 ?
- 使用block的一些注意点
- 在Ubuntu 12.04LTS系统中安装jdk和配置tomcat服务器