*&---------------------------------------------------------------------*
*& Report ZPRD_STATUS
*&---------------------------------------------------------------------*
REPORT ZPRD_STATUS No Standard Page Heading.
Tables: aufk, afpo, bsis.
type-pools: slis. " ALV
*ALV data declarations
*
data: i_fieldcat_alv type slis_t_fieldcat_alv,
i_fieldcat type slis_fieldcat_alv,
i_layout type slis_layout_alv, " ALV 的格式
t_header type slis_t_listheader,
w_repid like sy-repid,
wa_header type slis_listheader,
t_line like wa_header-info,
color TYPE slis_t_specialcol_alv with header line.
*
Constants: c_null_date(8) value '00000000', c_hkont(10) value '5001500001'.
** ALV Grid Structure Declaration
Data: begin of st_record,
werks like bseg-werks, " 工廠
aufnr like aufk-aufnr, " 生產單號
auart like aufk-auart, " 訂單類型
ernam like aufk-ernam, " 創建用戶
erdat like aufk-erdat, " 創建日期
aenam like aufk-aenam, " 更新用戶
aedat like aufk-aedat, " 更新日期
idat2 like aufk-idat2, " TECO Date
posnr like afpo-posnr, " 行號
ltrmi like afpo-ltrmi, " 交貨日期 DLV/PDLV
psmng like afpo-psmng, " 訂單項數量
wemng like afpo-wemng, " 已交數量
budat like bsis-budat, " 結算日期
belnr like bsis-belnr, " Settlement FI Doc
end of st_record.
*
Data: wa_record like st_record,
it_record like st_record occurs 0.
*
DEFINE add_field.
I_FIELDCAT-TABNAME = 'IT_RECORD'.
I_FIELDCAT-FIELDNAME = &1.
I_FIELDCAT-SELTEXT_M = &2.
APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
END-OF-DEFINITION.
*
SELECTION-SCREEN BEGIN OF BLOCK ZB1 WITH FRAME TITLE text-100.
PARAMETER: p_werks LIKE bseg-werks DEFAULT '1101' OBLIGATORY.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS: p_aufnr for aufk-aufnr. " 生產訂單編號
SELECTION-SCREEN SKIP.
SELECT-OPTIONS: p_erdat for aufk-erdat. " 創建日期
*PARAMETER: p_dlv(01) type c default 'X'.
*SELECTION-SCREEN SKIP.
SELECT-OPTIONS: p_idat2 for aufk-idat2. " TECO日期
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK ZB1.
*
initialization.
*
start-of-selection.
Perform Proc_1000. " 加入資料
* ALV
Perform Build_FieldCatalog.
Perform Build_Layout.
Perform Display_ALV_Report.
* Perform Proc_2000. " 顯示資料
* End Of Main Program
Form Proc_1000.
*
select * from aufk
join afpo on aufk~aufnr = afpo~aufnr
into corresponding fields of wa_record
where aufk~werks = p_werks and
aufk~aufnr in p_aufnr and
aufk~erdat in p_erdat and
aufk~idat2 in p_idat2 and
afpo~posnr = '1'.
append wa_record to it_record.
endselect.
* Filter DLV/PDLV 日期
*If p_dlv <> 'X'.
* Delete it_record where ltrmi in p_erdat.
*endif.
loop at it_record into wa_record.
* 加入結算文件 SA
select single budat belnr into (wa_record-budat, wa_record-belnr)
from bsis
where hkont = c_hkont and werks = p_werks and blart = 'SA' and aufnr = wa_record-aufnr.
modify it_record from wa_record.
endloop.
Endform.
Form Proc_2000.
data: l_counter type i value 0.
Loop at it_record into wa_record Where Not ( idat2 = c_null_date and ltrmi = c_null_date ).
l_counter = l_counter + 1.
write: / l_counter,
wa_record-werks, wa_record-aufnr, wa_record-auart, wa_record-ernam, wa_record-erdat,
wa_record-aenam, wa_record-aedat, wa_record-idat2, wa_record-ltrmi.
Endloop.
Endform.
FORM DISPLAY_ALV_REPORT.
Data: l_repid like sy-repid.
L_REPID = SY-REPID.
CALL Function 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_repid
i_callback_top_of_page = 'TOP_OF_PAGE' " Top Of Page 丙`
i_save = 'X'
is_layout = i_layout
it_fieldcat = i_fieldcat_alv[]
TABLES
t_outtab = IT_RECORD. " 内表数据
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_ALV_REPORT
*
FORM BUILD_FIELDCATALOG. " 表格 Heading 描述
ADD_FIELD 'WERKS' TEXT-102.
ADD_FIELD 'AUFNR' TEXT-103.
ADD_FIELD 'AUART' TEXT-104.
ADD_FIELD 'ERNAM' TEXT-105.
ADD_FIELD 'ERDAT' TEXT-106.
ADD_FIELD 'AENAM' TEXT-107.
ADD_FIELD 'AEDAT' TEXT-108.
ADD_FIELD 'IDAT2' TEXT-109.
ADD_FIELD 'LTRMI' TEXT-110.
ADD_FIELD 'PSMNG' TEXT-120.
ADD_FIELD 'WEMNG' TEXT-122.
ADD_FIELD 'BUDAT' TEXT-123.
ADD_FIELD 'BELNR' TEXT-124.
Endform.
*
FORM BUILD_LAYOUT.
w_repid = sy-repid. " 当前程序
i_layout-zebra = 'X'. " 颜色交替显示
i_layout-detail_popup = 'X'. " 详细信息窗口
i_layout-f2code = '&ETA'. " 双击
i_layout-no_vline = ' '. " 無列间隔线
i_layout-colwidth_optimize = 'X'. " 优化列宽
i_layout-coltab_fieldname = 'COLOR'.
i_layout-detail_initial_lines = 'X'.
i_layout-detail_titlebar = '详细内容'. "设置弹出窗口的标##
ENDFORM. " BUILD_LAYOUT
*
FORM TOP_OF_PAGE.
DATA: L_CNT type I.
CLEAR: WA_HEADER, T_HEADER.
WA_HEADER-TYP = 'H'.
WA_HEADER-INFO = '生产单状态'.
APPEND WA_HEADER TO T_HEADER.
*
CLEAR WA_HEADER.
WA_HEADER-INFO = SY-UNAME.
WA_HEADER-TYP = 'S'.
WA_HEADER-KEY = '使用者:'.
APPEND WA_HEADER TO T_HEADER.
*
Describe table IT_RECORD lines L_CNT.
CLEAR WA_HEADER.
WA_HEADER-INFO = L_CNT.
WA_HEADER-TYP = 'S'.
WA_HEADER-KEY = '笔数:'.
APPEND WA_HEADER TO T_HEADER.
*
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_HEADER.
ENDFORM. " BUILD_TOP
*
*& Report ZPRD_STATUS
*&---------------------------------------------------------------------*
REPORT ZPRD_STATUS No Standard Page Heading.
Tables: aufk, afpo, bsis.
type-pools: slis. " ALV
*ALV data declarations
*
data: i_fieldcat_alv type slis_t_fieldcat_alv,
i_fieldcat type slis_fieldcat_alv,
i_layout type slis_layout_alv, " ALV 的格式
t_header type slis_t_listheader,
w_repid like sy-repid,
wa_header type slis_listheader,
t_line like wa_header-info,
color TYPE slis_t_specialcol_alv with header line.
*
Constants: c_null_date(8) value '00000000', c_hkont(10) value '5001500001'.
** ALV Grid Structure Declaration
Data: begin of st_record,
werks like bseg-werks, " 工廠
aufnr like aufk-aufnr, " 生產單號
auart like aufk-auart, " 訂單類型
ernam like aufk-ernam, " 創建用戶
erdat like aufk-erdat, " 創建日期
aenam like aufk-aenam, " 更新用戶
aedat like aufk-aedat, " 更新日期
idat2 like aufk-idat2, " TECO Date
posnr like afpo-posnr, " 行號
ltrmi like afpo-ltrmi, " 交貨日期 DLV/PDLV
psmng like afpo-psmng, " 訂單項數量
wemng like afpo-wemng, " 已交數量
budat like bsis-budat, " 結算日期
belnr like bsis-belnr, " Settlement FI Doc
end of st_record.
*
Data: wa_record like st_record,
it_record like st_record occurs 0.
*
DEFINE add_field.
I_FIELDCAT-TABNAME = 'IT_RECORD'.
I_FIELDCAT-FIELDNAME = &1.
I_FIELDCAT-SELTEXT_M = &2.
APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
END-OF-DEFINITION.
*
SELECTION-SCREEN BEGIN OF BLOCK ZB1 WITH FRAME TITLE text-100.
PARAMETER: p_werks LIKE bseg-werks DEFAULT '1101' OBLIGATORY.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS: p_aufnr for aufk-aufnr. " 生產訂單編號
SELECTION-SCREEN SKIP.
SELECT-OPTIONS: p_erdat for aufk-erdat. " 創建日期
*PARAMETER: p_dlv(01) type c default 'X'.
*SELECTION-SCREEN SKIP.
SELECT-OPTIONS: p_idat2 for aufk-idat2. " TECO日期
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK ZB1.
*
initialization.
*
start-of-selection.
Perform Proc_1000. " 加入資料
* ALV
Perform Build_FieldCatalog.
Perform Build_Layout.
Perform Display_ALV_Report.
* Perform Proc_2000. " 顯示資料
* End Of Main Program
Form Proc_1000.
*
select * from aufk
join afpo on aufk~aufnr = afpo~aufnr
into corresponding fields of wa_record
where aufk~werks = p_werks and
aufk~aufnr in p_aufnr and
aufk~erdat in p_erdat and
aufk~idat2 in p_idat2 and
afpo~posnr = '1'.
append wa_record to it_record.
endselect.
* Filter DLV/PDLV 日期
*If p_dlv <> 'X'.
* Delete it_record where ltrmi in p_erdat.
*endif.
loop at it_record into wa_record.
* 加入結算文件 SA
select single budat belnr into (wa_record-budat, wa_record-belnr)
from bsis
where hkont = c_hkont and werks = p_werks and blart = 'SA' and aufnr = wa_record-aufnr.
modify it_record from wa_record.
endloop.
Endform.
Form Proc_2000.
data: l_counter type i value 0.
Loop at it_record into wa_record Where Not ( idat2 = c_null_date and ltrmi = c_null_date ).
l_counter = l_counter + 1.
write: / l_counter,
wa_record-werks, wa_record-aufnr, wa_record-auart, wa_record-ernam, wa_record-erdat,
wa_record-aenam, wa_record-aedat, wa_record-idat2, wa_record-ltrmi.
Endloop.
Endform.
FORM DISPLAY_ALV_REPORT.
Data: l_repid like sy-repid.
L_REPID = SY-REPID.
CALL Function 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_repid
i_callback_top_of_page = 'TOP_OF_PAGE' " Top Of Page 丙`
i_save = 'X'
is_layout = i_layout
it_fieldcat = i_fieldcat_alv[]
TABLES
t_outtab = IT_RECORD. " 内表数据
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_ALV_REPORT
*
FORM BUILD_FIELDCATALOG. " 表格 Heading 描述
ADD_FIELD 'WERKS' TEXT-102.
ADD_FIELD 'AUFNR' TEXT-103.
ADD_FIELD 'AUART' TEXT-104.
ADD_FIELD 'ERNAM' TEXT-105.
ADD_FIELD 'ERDAT' TEXT-106.
ADD_FIELD 'AENAM' TEXT-107.
ADD_FIELD 'AEDAT' TEXT-108.
ADD_FIELD 'IDAT2' TEXT-109.
ADD_FIELD 'LTRMI' TEXT-110.
ADD_FIELD 'PSMNG' TEXT-120.
ADD_FIELD 'WEMNG' TEXT-122.
ADD_FIELD 'BUDAT' TEXT-123.
ADD_FIELD 'BELNR' TEXT-124.
Endform.
*
FORM BUILD_LAYOUT.
w_repid = sy-repid. " 当前程序
i_layout-zebra = 'X'. " 颜色交替显示
i_layout-detail_popup = 'X'. " 详细信息窗口
i_layout-f2code = '&ETA'. " 双击
i_layout-no_vline = ' '. " 無列间隔线
i_layout-colwidth_optimize = 'X'. " 优化列宽
i_layout-coltab_fieldname = 'COLOR'.
i_layout-detail_initial_lines = 'X'.
i_layout-detail_titlebar = '详细内容'. "设置弹出窗口的标##
ENDFORM. " BUILD_LAYOUT
*
FORM TOP_OF_PAGE.
DATA: L_CNT type I.
CLEAR: WA_HEADER, T_HEADER.
WA_HEADER-TYP = 'H'.
WA_HEADER-INFO = '生产单状态'.
APPEND WA_HEADER TO T_HEADER.
*
CLEAR WA_HEADER.
WA_HEADER-INFO = SY-UNAME.
WA_HEADER-TYP = 'S'.
WA_HEADER-KEY = '使用者:'.
APPEND WA_HEADER TO T_HEADER.
*
Describe table IT_RECORD lines L_CNT.
CLEAR WA_HEADER.
WA_HEADER-INFO = L_CNT.
WA_HEADER-TYP = 'S'.
WA_HEADER-KEY = '笔数:'.
APPEND WA_HEADER TO T_HEADER.
*
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_HEADER.
ENDFORM. " BUILD_TOP
*