plas ON ( plas~plnty = mapl~plnty AND
plas~plnnr = mapl~plnnr AND
plas~plnal = mapl~plnal AND
plas~loekz EQ space )
JOIN plpo ON ( plpo~plnty = plas~plnty AND
plpo~plnnr = plas~plnnr AND
plpo~plnkn = plas~plnkn AND
plpo~zaehl = plas~zaehl )
JOIN PLKO ON ( PLKO~PLNTY = PLAS~PLNTY AND
PLKO~PLNNR = PLAS~PLNNR AND
PLKO~PLNAL = PLAS~plnaL )
工艺路线报表代码 zpphz
*&---------------------------------------------------------------------*
*& Report ZRPT_PP_HUIZONG *
*& *
*&---------------------------------------------------------------------*
*& 生产版本、工艺路线汇总报表 *
*& *
*&---------------------------------------------------------------------*
REPORT zrpt_pp_huizong .
TYPE-POOLS:slis.
TABLES:mkal,mapl,plko,plpo,mkal_aend,makt,crhd,mara,plas.
TYPES:BEGIN OF t_scbb,
matnr LIKE mkal-matnr,"物料号
maktx LIKE makt-maktx,"物料描述
prdat LIKE mkal-prdat,"检查日期
plnnr LIKE mkal-plnnr,"组
alnal LIKE mkal-alnal,"组计数器
stlal LIKE mkal-stlal,"可选的BOM
stlan LIKE mkal-stlan,"BOM用途
serkz LIKE mkal-serkz,"允许REM
mdv01 LIKE mkal-mdv01,"生产线
verid LIKE mkal-verid,"生产版本
elpro LIKE mkal-elpro,"发货仓储地
alort LIKE mkal-alort,"接受仓储地
prfg_f LIKE mkal-prfg_f,"检查状态
prfg_s LIKE mkal-prfg_s,"BOM检查状态
annam LIKE mkal_aend-annam,"创建人
mtart LIKE mara-mtart,
matkl LIKE mara-matkl,
sign TYPE icon_d,"生产版本预警标志
sign1 TYPE icon_d,"BOM预警标志
END OF t_scbb,
BEGIN OF t_gylx,
matnr LIKE mapl-matnr,"物料号
werks LIKE mapl-werks,"工厂
annam LIKE mapl-annam,"创建人
maktx LIKE makt-maktx,"物料描述
plnty LIKE mapl-plnty,"N 路线
plnnr LIKE mapl-plnnr,"组
plnal LIKE mapl-plnal,"组计数器
arbpl LIKE crhd-arbpl,"工作中心
ktext LIKE crtx-ktext,"工作中心文本
andat LIKE plpo-andat,"创建日期
vornr LIKE plpo-vornr,"工序
steus LIKE plpo-steus,"控制码
KTSCH like plpo-KTSCH,"
ltxa1 LIKE plpo-ltxa1,"工序描述
bmsch LIKE plpo-bmsch,"基本数量
vgw01 LIKE plpo-vgw01,"直接人工
vgw02 LIKE plpo-vgw02,"折旧
vgw03 LIKE plpo-vgw03,"机物料
vgw04 LIKE plpo-vgw04,"制造人工
vgw05 LIKE plpo-vgw05,"其它费用
mtart LIKE mara-mtart,
matkl LIKE mara-matkl,
bukrs LIKE plpo-bukrs, "公司代码
plnkn LIKE plpo-plnkn, "任务清单节点数
zaehl LIKE plpo-zaehl, "内部计数器
PLNNR_ALT like PLKO-PLNNR_ALT,"旧清单号
vge01 TYPE plpo-vge01, "计量单位 @added by handcsh at 20181123
END OF t_gylx.
DATA:scbb TYPE TABLE OF t_scbb WITH HEADER LINE,
gylx TYPE TABLE OF t_gylx WITH HEADER LINE.
DATA:STDATUM LIKE SY-DATUM,
STUZEIT LIKE SY-UZEIT.
SELECTION-SCREEN BEGIN OF BLOCK bok WITH FRAME TITLE tit001.
SELECT-OPTIONS:
* WERKS FOR MKAL-WERKS DEFAULT '1000' NO INTERVALS NO-EXTENSION,
werks FOR mkal-werks DEFAULT '1000' OBLIGATORY, "@changed by handchs at 20190129
matnr FOR mkal-matnr,
mtart FOR mara-mtart,
matkl FOR mara-matkl,
adatu FOR mkal-adatu ."DEFAULT sy-datum.
PARAMETER: r1 RADIOBUTTON GROUP rad1 DEFAULT 'X',"生产版本
r2 RADIOBUTTON GROUP rad1."工艺路线
SELECTION-SCREEN END OF BLOCK bok.
INITIALIZATION.
tit001 = '请输入选择条件'.
START-OF-SELECTION.
END-OF-SELECTION.
STDATUM = SY-DATUM.
STUZEIT = SY-UZEIT.
IF r1 EQ 'X'."生产版本
* WRITE: 'r1 is checked'.
PERFORM getscbb.
PERFORM WRITERPTRUNRECORD.
PERFORM display.
ELSEIF r2 EQ 'X'.
* WRITE: 'r2 is checked'.
PERFORM getgylx.
PERFORM WRITERPTRUNRECORD.
PERFORM disalv.
PERFORM SAVE2BPC.
ENDIF.
*&---------------------------------------------------------------------*
*& Form WRITERPTRUNRECORD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM WRITERPTRUNRECORD.
DATA:l_werks LIKE t001w OCCURS 0 WITH HEADER LINE.
SELECT * INTO TABLE l_werks
FROM t001w
WHERE werks IN werks.
LOOP AT l_werks.
GET TIME.
CALL FUNCTION 'ZSYS_RPT_RUNRECORD'
EXPORTING
TCODE = SY-TCODE
PROGRAMM = SY-CPROG
"bukrs = bukrs
werks = l_werks-werks
DATUMRST = STDATUM
UZEITRST = STUZEIT
BATCH = SY-BATCH
DATUMREND = SY-datum
UZEITREND = sy-UZEIT
DATUMC = '20070823'
RUNNER = SY-UNAME
RPTSRC = 'PP'.
ENDLOOP.
ENDFORM. "WRITERPTRUNRECORD
*&---------------------------------------------------------------------*
*& Form getscbb
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM getscbb .
FIELD-SYMBOLS:<scbb> TYPE t_scbb.
SELECT
mkal~matnr"物料号
makt~maktx"物料描述
mkal~prdat"检查日期
mkal~plnnr"组
mkal~alnal"组计数器
mkal~stlal"可选的BOM
mkal~stlan"BOM用途
mkal~serkz"允许REM
mkal~mdv01"生产线
mkal~verid"版本号
mkal~elpro"发货仓储地
mkal~alort"发货仓储地
mkal~prfg_f"检查状态
mkal~prfg_s"BOM检查状态
mkal_aend~annam"创建人
mara~mtart
mara~matkl
INTO TABLE scbb
FROM mkal
JOIN makt ON ( mkal~matnr = makt~matnr AND makt~spras = '1' )
JOIN mkal_aend ON ( mkal~matnr = mkal_aend~matnr AND
mkal~werks = mkal_aend~werks AND
mkal~verid = mkal_aend~verid AND
mkal_aend~vbkz = 'I' ) "I:插入 U:更新 D:删除
JOIN mara ON ( mkal~matnr = mara~matnr )
WHERE mkal~matnr IN matnr AND
mkal~prdat IN adatu AND
mkal~werks IN werks AND
mara~mtart IN mtart AND
mara~matkl IN matkl AND
mara~lvorm EQ space
ORDER BY mkal~matnr
.
LOOP AT scbb ASSIGNING <scbb>.
IF <scbb>-prfg_f = '3' OR <scbb>-prfg_f = '2'."检查有error或有waring
<scbb>-sign = '@0A@'.
ELSEIF <scbb>-prfg_f = '1'."检查OK
<scbb>-sign = '@08@'.
ELSE."没有进行检查
<scbb>-sign = '@09@'.
ENDIF.
IF <scbb>-prfg_s = '3' OR <scbb>-prfg_s = '2'.
<scbb>-sign1 = '@0A@'.
ELSEIF <scbb>-prfg_s = '1'.
<scbb>-sign1 = '@08@'.
ELSE.
<scbb>-sign1 = '@09@'.
ENDIF.
ENDLOOP.
ENDFORM. " getscbb
*&---------------------------------------------------------------------*
*& Form SAVE2BPC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM SAVE2BPC.
*=================================
IF SY-UNAME = 'BW'.
DATA: BPCTB LIKE TABLE OF ZBPC_ZPPHZ WITH HEADER LINE.
* DELETE FROM ZBPC_ZPPHZ . " @ADDED BY HANDCSH AT 20190129
UPDATE ZBPC_ZPPHZ SET
SYDAT = SY-DATUM
SYZET = SY-UZEIT
SYNAM = SY-UNAME
VGW01 = 0 VGW02 = 0
VGW03 = 0 VGW04 = 0
VGW05 = 0 PLNKN = 0
BMSCH = 0
WHERE WERKS IN WERKS AND matnr in MATNR and BMSCH GT 0.
COMMIT WORK AND WAIT.
LOOP AT GYLX.
MOVE-CORRESPONDING GYLX TO BPCTB.
BPCTB-SYNAM = SY-UNAME.
BPCTB-SYDAT = SY-DATUM.
BPCTB-SYZET = SY-UZEIT.
APPEND BPCTB.
ENDLOOP.
* INSERT ZBPC_ZPPHZ FROM TABLE BPCTB ACCEPTING DUPLICATE KEYS.
MODIFY ZBPC_ZPPHZ FROM TABLE BPCTB ."ACCEPTING DUPLICATE KEYS.
COMMIT WORK AND WAIT.
ENDIF.
*=================================
ENDFORM. "SAVE2BPC
*&---------------------------------------------------------------------*
*& Form display
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display .
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
is_variant LIKE disvariant,
it_events TYPE slis_t_event,
is_layout TYPE slis_layout_alv,"ALV的格式
i_list_comments TYPE slis_t_listheader,
i_callback_program TYPE sy-repid,
title TYPE lvc_title,
it_sort TYPE slis_t_sortinfo_alv
.
PERFORM fieldcat_init USING it_fieldcat."输出列表控件表头
PERFORM layout_init USING is_layout.
PERFORM eventtab_build USING it_events.
i_callback_program = sy-repid.
title = '生产版本汇总报表'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = i_callback_program
i_grid_title = title
is_layout = is_layout
it_fieldcat = it_fieldcat
it_events = it_events
it_sort = it_sort
TABLES
t_outtab = scbb
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " display
*&---------------------------------------------------------------------*
*& Form fieldcat_init
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_IT_FIELDCAT text
*----------------------------------------------------------------------*
FORM fieldcat_init USING it_fieldcat TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
ls_fieldcat-fieldname = 'MATNR'.
ls_fieldcat-reptext_ddic = '物料号'.
ls_fieldcat-outputlen = '8'.
ls_fieldcat-ref_fieldname = 'MATNR'.
ls_fieldcat-ref_tabname = 'MARA'.
ls_fieldcat-no_zero = 'X'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MAKTX'.
ls_fieldcat-reptext_ddic = '物料描述'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PRDAT'.
ls_fieldcat-reptext_ddic = '检查日期'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PLNNR'.
ls_fieldcat-reptext_ddic = '组'.
ls_fieldcat-outputlen = '8'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ALNAL'.
ls_fieldcat-reptext_ddic = '组计数器'.
ls_fieldcat-outputlen = '8'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'STLAL'.
ls_fieldcat-reptext_ddic = '可选BOM'.
ls_fieldcat-outputlen = '8'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'STLAN'.
ls_fieldcat-reptext_ddic = 'BOM用途'.
ls_fieldcat-outputlen = '8'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'SERKZ'.
ls_fieldcat-reptext_ddic = '允许REM'.
ls_fieldcat-outputlen = '8'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MDV01'.
ls_fieldcat-reptext_ddic = '生产线'.
ls_fieldcat-outputlen = '8'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'VERID'.
ls_fieldcat-reptext_ddic = '生产版本'.
ls_fieldcat-outputlen = '8'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ELPRO'.
ls_fieldcat-reptext_ddic = '发货仓储地'.
ls_fieldcat-outputlen = '8'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ALORT'.
ls_fieldcat-reptext_ddic = '接收仓储地'.
ls_fieldcat-outputlen = '8'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'SIGN'.
ls_fieldcat-reptext_ddic = '任务清单检查状态'.
ls_fieldcat-outputlen = '4'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'SIGN1'.
ls_fieldcat-reptext_ddic = 'BOM检查状态'.
ls_fieldcat-outputlen = '4'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ANNAM'.
ls_fieldcat-reptext_ddic = '创建人'.
ls_fieldcat-outputlen = '8'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MTART'.
ls_fieldcat-reptext_ddic = '物料类型'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MATKL'.
ls_fieldcat-reptext_ddic = '物料组'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ENDFORM. " fieldcat_init
*&---------------------------------------------------------------------*
*& Form getgylx
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM getgylx .
SELECT
mapl~matnr"物料号
mapl~werks "工厂
mapl~annam"创建人
makt~maktx"物料描述
mapl~plnty"N 路线
mapl~plnnr"组
mapl~plnal"组计数器
crhd~arbpl"工作中心
crtx~ktext
plpo~andat"创建日期
plpo~vornr"工序
plpo~steus"控制码
plpo~KTSCH
plpo~ltxa1"工序描述
plpo~bmsch"基本数量
plpo~vgw01"直接人工
plpo~vgw02"折旧
plpo~vgw03"机物料
plpo~vgw04"制造人工
plpo~vgw05"其它费用
mara~mtart
mara~matkl
plpo~bukrs
plpo~plnkn "任务清单节点数
plpo~zaehl "内部计数器
PLKO~PLNNR_ALT
plpo~vge01 "计量单位
INTO TABLE gylx
FROM mapl
JOIN makt ON ( mapl~matnr = makt~matnr AND
makt~spras = '1' )
JOIN plas ON ( plas~plnty = mapl~plnty AND
plas~plnnr = mapl~plnnr AND
plas~plnal = mapl~plnal AND
plas~loekz EQ space )
JOIN plpo ON ( plpo~plnty = plas~plnty AND
plpo~plnnr = plas~plnnr AND
plpo~plnkn = plas~plnkn AND
plpo~zaehl = plas~zaehl )
JOIN PLKO ON ( PLKO~PLNTY = PLAS~PLNTY AND
PLKO~PLNNR = PLAS~PLNNR AND
PLKO~PLNAL = PLAS~plnaL )
JOIN mara ON ( mapl~matnr = mara~matnr )
LEFT JOIN crhd ON ( crhd~objid = plpo~arbid )
LEFT JOIN crtx ON ( crtx~objid = plpo~arbid )
WHERE mapl~matnr IN matnr AND
mapl~andat IN adatu AND
mapl~werks IN werks AND
mapl~plnty EQ 'N' AND
mara~mtart IN mtart AND
mara~matkl IN matkl AND
mara~lvorm EQ space AND
mapl~loekz EQ space
ORDER BY mapl~matnr plpo~vornr
.
ENDFORM. " getgylx
*&---------------------------------------------------------------------*
*& Form disalv
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM disalv .
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
is_variant LIKE disvariant,
it_events TYPE slis_t_event,
is_layout TYPE slis_layout_alv,"ALV的格式
i_list_comments TYPE slis_t_listheader,
i_callback_program TYPE sy-repid,
title TYPE lvc_title,
it_sort TYPE slis_t_sortinfo_alv
.
PERFORM fieldcat_init1 USING it_fieldcat."输出列表控件表头
PERFORM layout_init USING is_layout.
PERFORM eventtab_build USING it_events.
i_callback_program = sy-repid.
title = '工艺路线汇总报表'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = i_callback_program
i_grid_title = title
is_layout = is_layout
it_fieldcat = it_fieldcat
it_events = it_events
it_sort = it_sort
TABLES
t_outtab = gylx
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " disalv
*&---------------------------------------------------------------------*
*& Form fieldcat_init1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_IT_FIELDCAT text
*----------------------------------------------------------------------*
FORM fieldcat_init1 USING it_fieldcat TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
IF r2 = abap_true.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'WERKS'.
ls_fieldcat-reptext_ddic = '工厂'.
ls_fieldcat-outputlen = '4'.
ls_fieldcat-ref_fieldname = 'WERKS'.
ls_fieldcat-ref_tabname = 'MKAL'.
ls_fieldcat-no_zero = 'X'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ENDIF.
ls_fieldcat-fieldname = 'MATNR'.
ls_fieldcat-reptext_ddic = '物料号'.
ls_fieldcat-outputlen = '8'.
ls_fieldcat-ref_fieldname = 'MATNR'.
ls_fieldcat-ref_tabname = 'MARA'.
ls_fieldcat-no_zero = 'X'.
ls_fieldcat-key = 'X'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MAKTX'.
ls_fieldcat-reptext_ddic = '物料描述'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PLNNR'.
ls_fieldcat-reptext_ddic = '组'.
ls_fieldcat-outputlen = '8'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PLNAL'.
ls_fieldcat-ref_fieldname = 'PLNAL'.
ls_fieldcat-ref_tabname = 'MAPL'.
ls_fieldcat-no_zero = 'X'.
ls_fieldcat-reptext_ddic = '组计数器'.
ls_fieldcat-outputlen = '4'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'VORNR'.
ls_fieldcat-reptext_ddic = '工序'.
ls_fieldcat-outputlen = '4'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ARBPL'.
ls_fieldcat-reptext_ddic = '工作中心'.
ls_fieldcat-outputlen = '8'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'KTEXT'.
ls_fieldcat-reptext_ddic = '工作中心文本'.
* ls_fieldcat-outputlen = '8'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'STEUS'.
ls_fieldcat-reptext_ddic = '控制码'.
ls_fieldcat-outputlen = '6'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'KTSCH'.
ls_fieldcat-reptext_ddic = '工序代码'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'LTXA1'.
ls_fieldcat-reptext_ddic = '工序描述'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BMSCH'.
ls_fieldcat-reptext_ddic = '基本数量'.
ls_fieldcat-outputlen = '8'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'VGW01'.
ls_fieldcat-reptext_ddic = '直接人工'.
ls_fieldcat-outputlen = '8'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'VGW02'.
ls_fieldcat-reptext_ddic = '折旧'.
ls_fieldcat-outputlen = '8'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'VGW03'.
ls_fieldcat-reptext_ddic = '机物料'.
ls_fieldcat-outputlen = '8'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'VGW04'.
ls_fieldcat-reptext_ddic = '制造人工'.
ls_fieldcat-outputlen = '8'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'VGW05'.
ls_fieldcat-reptext_ddic = '其它费用'.
ls_fieldcat-outputlen = '8'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
"$. Region 添加计量单位显示字段 @added by handcsh at 20181123
ls_fieldcat-fieldname = 'VGE01'.
ls_fieldcat-reptext_ddic = '计量单位'.
* LS_FIELDCAT-OUTPUTLEN = '8'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
"$. Endregion 添加计量单位显示字段 @added by handcsh at 20181123
ls_fieldcat-fieldname = 'ANDAT'.
ls_fieldcat-reptext_ddic = '创建日期'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ANNAM'.
ls_fieldcat-reptext_ddic = '创建人'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MTART'.
ls_fieldcat-reptext_ddic = '物料类型'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MATKL'.
ls_fieldcat-reptext_ddic = '物料组'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PLNNR_ALT'.
ls_fieldcat-reptext_ddic = '旧任务清单号'.
APPEND ls_fieldcat TO it_fieldcat.
CLEAR ls_fieldcat.
ENDFORM. " fieldcat_init1
*&---------------------------------------------------------------------*
*& Form layout_init1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_IS_LAYOUT text
*----------------------------------------------------------------------*
FORM layout_init USING is_layout TYPE slis_layout_alv.
is_layout-colwidth_optimize = 'X'.
is_layout-f2code = 'ZDET'.
ENDFORM. " layout_init
*&---------------------------------------------------------------------*
*& Form eventtab_build
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_IT_EVENTS text
*----------------------------------------------------------------------*
FORM eventtab_build USING it_events TYPE slis_t_event .
DATA: ls_event TYPE slis_alv_event.
MOVE 'USER_COMMAND' TO ls_event-name.
MOVE 'USER_COMMAND' TO ls_event-form.
APPEND ls_event TO it_events.
CLEAR ls_event.
ENDFORM. " eventtab_build
*&--------------------------------------------------------------------*
*& Form user_command
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->RF_UCOMM text
* -->RS_SELFIELDtext
*---------------------------------------------------------------------*
FORM user_command USING rf_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield. "#EC CALLED
* DATA: ebeln TYPE ebeln.
CASE rf_ucomm.
WHEN 'ZDET'.
IF rs_selfield-tabindex > 0 .
IF r1 EQ 'X'."生产版本
READ TABLE scbb INDEX rs_selfield-tabindex.
IF sy-subrc = 0 .
SET PARAMETER ID 'WRK' FIELD '1000'.
SET PARAMETER ID 'MAT' FIELD scbb-matnr.
SET PARAMETER ID 'PLN' FIELD scbb-plnnr.
CALL TRANSACTION 'C223' AND SKIP FIRST SCREEN.
ENDIF.
ELSEIF r2 EQ 'X'."工艺路线
READ TABLE gylx INDEX rs_selfield-tabindex.
IF sy-subrc = 0 .
SET PARAMETER ID 'WRK' FIELD '1000'.
SET PARAMETER ID 'MAT' FIELD gylx-matnr.
SET PARAMETER ID 'PLN' FIELD gylx-plnnr.
CALL TRANSACTION 'CA03' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
ELSE.
MESSAGE w004(zjack_err).
ENDIF.
ENDCASE.
ENDFORM. "user_command