재료 증빙서류 하 발 일지
56540 단어 로그
TYPE-POOLS: slis,icon.
TABLES: mkpf,mseg,zmb_send_log.
DATA: lv_count TYPE i.
DATA: BEGIN OF it_data OCCURS 0,
sel(1) TYPE c,
icon(50) TYPE c,
mblnr LIKE zmb_send_log-mblnr,
mjahr LIKE zmb_send_log-mjahr,
kunnr LIKE zmb_send_log-kunnr,
bldat LIKE zmb_send_log-bldat,
budat LIKE zmb_send_log-budat,
create_date LIKE zmb_send_log-create_date,
create_time LIKE zmb_send_log-create_time,
usnam LIKE zmb_send_log-usnam,
pos_bktxt LIKE zmb_send_log-pos_bktxt,
pos_flag LIKE zmb_send_log-pos_flag,
errornum LIKE zmb_send_log-errornum,
errormsg LIKE zmb_send_log-errormsg,
send_date LIKE zmb_send_log-send_date,
send_time LIKE zmb_send_log-send_time,
send_usnam LIKE zmb_send_log-send_usnam,
tcode LIKE zmb_send_log-tcode,
sendnum LIKE zmb_send_log-sendnum,
send_begin_time LIKE zmb_send_log-send_begin_time,
mbcount LIKE zmb_send_log-mbcount,
maxnum LIKE zmb_send_log-maxnum,
rflag LIKE zmb_send_log-rflag,
pos_rflag LIKE zmb_send_log-pos_rflag,
send_rdate LIKE zmb_send_log-send_rdate,
send_rtime LIKE zmb_send_log-send_rtime,
send_rusnam LIKE zmb_send_log-send_rusnam,
origin LIKE zmb_send_log-origin,
biztpcode LIKE zmb_send_log-biztpcode,
biztptxt LIKE zmb_send_log-biztptxt,
timediff LIKE zmb_send_log-send_time.
DATA: END OF it_data.
DATA: BEGIN OF lt_mseg OCCURS 0,
MBLNR like mkpf-MBLNR,
MJAHR like mkpf-MJAHR,
BLDAT like mkpf-BLDAT,
BUDAT like mkpf-BUDAT,
CPUDT like mkpf-CPUDT,
KUNNR like mseg-KUNNR,
BWART like mseg-BWART,
END OF lt_mseg.
INCLUDE ZSDR015TOP.
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:s_mblnr FOR mkpf-mblnr no INTERVALS,
s_mjahr FOR mkpf-mjahr no INTERVALS,
s_kunnr FOR mseg-kunnr no INTERVALS,
s_budat FOR mkpf-budat ,
s_bldat FOR mkpf-bldat ,
s_cpudt FOR mkpf-cpudt DEFAULT sy-datum TO sy-datum,
s_USNAM FOR mkpf-USNAM,
s_flag FOR zmb_send_log-pos_flag no INTERVALS no-EXTENSION.
SELECTION-SCREEN END OF BLOCK blk1.
SELECTION-SCREEN BEGIN OF BLOCK blkr3 WITH FRAME TITLE text-003.
PARAMETERS:p_mx RADIOBUTTON GROUP a DEFAULT 'X', "
p_err RADIOBUTTON GROUP a, "
p_mseg RADIOBUTTON GROUP a.
SELECTION-SCREEN END OF BLOCK blkr3.
START-OF-SELECTION.
PERFORM FRM_GET_DATA.
PERFORM FRM_SET_DATA.
PERFORM frm_show_alv.
INCLUDE ZSDR015SCR.
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS '1100'.
SET TITLEBAR 'TITLE1' WITH lv_count.
ENDFORM.
INCLUDE ZSDR015I01.
FORM user_command_alv USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN 'ZSEND'.
PERFORM frm_sendmb.
WHEN 'SHOWLIST'.
READ TABLE it_data INDEX rs_selfield-tabindex.
PERFORM frm_show_list.
WHEN 'REF'.
PERFORM FRM_GET_DATA.
PERFORM FRM_SET_DATA.
WHEN '&IC1'.
READ TABLE it_data INDEX rs_selfield-tabindex.
IF rs_selfield-fieldname = 'MBLNR' AND rs_selfield-value <> ''.
SET PARAMETER ID 'MBN' FIELD it_data-mblnr.
SET PARAMETER ID 'MJA' FIELD it_data-mjahr.
CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN.
ELSE.
PERFORM frm_show_list.
ENDIF.
ENDCASE.
" ALV
rs_selfield-row_stable = rs_selfield-tabindex.
rs_selfield-refresh = 'X'.
ENDFORM. "user_command_alv
INCLUDE ZSDR015F01.
FORM FRM_GET_DATA.
clear it_data.
REFRESH it_data.
" , ,
if p_err eq 'X'.
clear: s_mblnr,s_mjahr,s_bldat,s_budat,s_cpudt,s_kunnr,s_flag.
REFRESH: s_mblnr,s_mjahr,s_bldat,s_budat,s_cpudt,s_kunnr,s_flag.
s_flag-sign = 'I'.
s_flag-option = 'EQ'.
s_flag-low = 'F'.
APPEND s_flag.
endif.
if p_mseg eq 'X'.
PERFORM FRM_GET_MSEG.
else.
PERFORM FRM_GET_LOG.
endif.
DESCRIBE TABLE it_data LINES lv_count.
ENDFORM.
FORM FRM_GET_LOG.
SELECT mblnr mjahr kunnr bldat budat create_date create_time usnam pos_bktxt
pos_flag errornum errormsg send_date send_time send_usnam tcode sendnum send_begin_time
mbcount maxnum rflag pos_rflag send_rdate send_rtime send_rusnam origin biztpcode biztptxt
FROM zmb_send_log
INTO CORRESPONDING FIELDS OF TABLE it_data
WHERE mblnr IN s_mblnr
AND mjahr IN s_mjahr
AND kunnr IN s_kunnr
AND bldat IN s_bldat
AND budat IN s_budat
AND create_date IN s_cpudt
AND pos_flag IN s_flag
AND USNAM in s_USNAM.
ENDFORM.
FORM FRM_GET_MSEG.
SELECT a~MBLNR a~MJAHR b~KUNNR a~BLDAT a~BUDAT a~CPUDT a~CPUTM a~USNAM b~BWART
c~pos_flag c~errornum c~errormsg c~send_date c~send_time c~send_usnam c~tcode c~sendnum c~send_begin_time
c~mbcount c~maxnum c~rflag c~pos_rflag c~send_rdate c~send_rtime c~send_rusnam c~origin c~biztpcode c~biztptxt
from mkpf as a
INNER JOIN mseg as b on a~MBLNR = b~MBLNR and a~MJAHR = b~MJAHR
INNER JOIN ZT156T as t on b~BWART = t~BWART and b~GRUND = t~GRUND
left join zmb_send_log as c on b~MBLNR = c~MBLNR and b~MJAHR = c~MJAHR and b~KUNNR = c~KUNNR
INTO CORRESPONDING FIELDS OF TABLE it_data
where a~MBLNR in s_mblnr
and a~MJAHR in s_mjahr
and b~kunnr in s_kunnr
and a~BUDAT in s_budat
and a~BLDAT in s_bldat
and a~CPUDT in s_cpudt
and a~USNAM in s_USNAM
%_HINTS ORACLE '&SUBSTITUTE VALUES&'.
SORT it_data BY MBLNR MJAHR KUNNR.
delete ADJACENT DUPLICATES FROM it_data COMPARING MBLNR MJAHR KUNNR.
ENDFORM.
FORM FRM_SET_DATA.
LOOP AT it_data.
CASE it_data-pos_flag.
WHEN 'T'.
it_data-icon = icon_led_green.
WHEN 'F'.
it_data-icon = icon_led_red.
WHEN 'S'.
it_data-icon = icon_led_green.
it_data-pos_flag = 'S'.
WHEN OTHERS.
it_data-icon = icon_led_red.
it_data-pos_flag = 'F'.
ENDCASE.
it_data-timediff = it_data-send_rtime - it_data-send_begin_time.
MODIFY it_data TRANSPORTING icon pos_flag timediff.
ENDLOOP.
ENDFORM.
FORM frm_show_alv.
DATA: wa_alv_field TYPE slis_fieldcat_alv,
wa_alv_fieldcat TYPE slis_t_fieldcat_alv,
wa_layout TYPE slis_layout_alv,
i_sort TYPE slis_t_sortinfo_alv WITH HEADER LINE.
DEFINE add_field.
wa_alv_field-fieldname = &1.
wa_alv_field-reptext_ddic = &2.
wa_alv_field-checkbox = &3. "
wa_alv_field-edit = &4. "
wa_alv_field-outputlen = &5. "
wa_alv_field-do_sum = &6.
wa_alv_field-just = &7.
append wa_alv_field to wa_alv_fieldcat.
clear wa_alv_field.
END-OF-DEFINITION.
CLEAR wa_layout.
wa_layout-edit = ''.
wa_layout-edit_mode = space.
wa_layout-zebra = 'X'.
wa_layout-colwidth_optimize = ''.
wa_layout-box_fieldname = 'SEL'.
CLEAR i_sort.
i_sort-fieldname = 'MBLNR'.
i_sort-spos = 1.
i_sort-up = 'X'.
i_sort-subtot = 'X'.
APPEND i_sort.
"add_field 'SEL' ' ' 'X' '' 4 ''.
add_field 'ICON' ' ' '' '' 4 '' 'C'.
add_field 'BIZTPCODE' ' ' '' '' 8 '' ''.
add_field 'BIZTPTXT' ' ' '' '' 8 '' ''.
add_field 'MBLNR' ' ' '' '' 12 '' ''.
add_field 'MJAHR' ' ' '' '' 8 '' ''.
add_field 'KUNNR' ' ' '' '' 8 '' ''.
add_field 'BLDAT' ' ' '' '' 12 '' ''.
add_field 'BUDAT' ' ' '' '' 12 '' ''.
add_field 'CREATE_DATE' ' ' '' '' 12 '' ''.
add_field 'CREATE_TIME' ' ' '' '' 10 '' ''.
add_field 'MBCOUNT' ' ' '' '' 10 '' ''.
add_field 'USNAM' ' ' '' '' 10 '' ''.
add_field 'POS_FLAG' ' ' '' '' 8 '' ''.
add_field 'SEND_DATE' ' ' '' '' 12 '' ''.
add_field 'SEND_TIME' ' ' '' '' 10 '' ''.
add_field 'SEND_USNAM' ' ' '' '' 10 '' ''.
add_field 'SENDNUM' ' ' '' '' 8 '' ''.
add_field 'TCODE' ' ' '' '' 10 '' ''.
add_field 'MAXNUM' ' ' '' '' 8 '' ''.
add_field 'RFLAG' ' ' '' '' 8 '' ''.
" add_field 'POS_RFLAG' ' ' '' '' 10 '' ''.
add_field 'SEND_RDATE' ' ' '' '' 10 '' ''.
add_field 'SEND_RTIME' ' ' '' '' 10 '' ''.
add_field 'SEND_RUSNAM' ' ' '' '' 10 '' ''.
add_field 'TIMEDIFF' ' ' '' '' 10 '' ''.
add_field 'ERRORNUM' ' ' '' '' 8 '' ''.
add_field 'ERRORMSG' ' ' '' '' 20 '' ''.
add_field 'ORIGIN' ' ' '' '' 10 '' ''.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = wa_alv_fieldcat
is_layout = wa_layout
i_callback_pf_status_set = 'SET_PF_STATUS'
i_callback_user_command = 'USER_COMMAND_ALV'
i_save = 'A'
it_sort = i_sort[]
TABLES
t_outtab = it_data
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. "showalv
FORM frm_process USING p_info.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = 100
text = p_info
EXCEPTIONS
OTHERS = 1.
ENDFORM. "process
FORM frm_sendmb.
DATA: BEGIN OF t_mblnr OCCURS 0,
mblnr LIKE mkpf-mblnr,
mjahr LIKE mkpf-mjahr,
END OF t_mblnr.
DATA: p_answer TYPE flag,
p_taskname(30) TYPE c,
t_mkpf LIKE TABLE OF mkpf WITH HEADER LINE,
t_mseg LIKE TABLE OF mseg WITH HEADER LINE,
wa_mkpf_send TYPE mkpf,
t_mseg_send LIKE TABLE OF mseg WITH HEADER LINE.
"
LOOP AT it_data WHERE sel EQ 'X'.
t_mblnr-mblnr = it_data-mblnr.
t_mblnr-mjahr = it_data-mjahr.
APPEND t_mblnr.
ENDLOOP.
SORT t_mblnr BY mblnr mjahr.
DELETE ADJACENT DUPLICATES FROM t_mblnr COMPARING mblnr mjahr.
IF t_mblnr[] IS INITIAL.
MESSAGE ' ' TYPE 'S'.
RETURN.
ENDIF.
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP '
EXPORTING
textline1 = ' POS ?'
titel = ' '
cancel_display = ''
IMPORTING
answer = p_answer.
IF p_answer <> 'J'.
RETURN.
ENDIF.
"
IF t_mblnr[] IS NOT INITIAL.
SELECT *
FROM mkpf
INTO TABLE t_mkpf
FOR ALL ENTRIES IN t_mblnr
WHERE mblnr = t_mblnr-mblnr
AND mjahr = t_mblnr-mjahr.
SORT t_mkpf BY mblnr mjahr.
SELECT *
FROM mseg
INTO TABLE t_mseg
FOR ALL ENTRIES IN t_mblnr
WHERE mblnr = t_mblnr-mblnr
AND mjahr = t_mblnr-mjahr.
SORT t_mseg BY mblnr mjahr.
ENDIF.
"
LOOP AT t_mblnr.
CLEAR: wa_mkpf_send,t_mseg_send,t_mseg_send[],p_taskname.
PERFORM frm_process USING ' , ......'.
READ TABLE t_mkpf INTO wa_mkpf_send WITH KEY mblnr = t_mblnr-mblnr mjahr = t_mblnr-mjahr BINARY SEARCH.
LOOP AT t_mseg WHERE mblnr = t_mblnr-mblnr AND mjahr = t_mblnr-mjahr.
CLEAR t_mseg_send.
MOVE-CORRESPONDING t_mseg TO t_mseg_send.
APPEND t_mseg_send.
ENDLOOP.
CONCATENATE wa_mkpf_send-mblnr sy-datum sy-uzeit INTO p_taskname.
"
CALL FUNCTION 'ZSD_POS_SENDMB'
STARTING NEW TASK p_taskname
EXPORTING
IS_MKPF = wa_mkpf_send
IV_TYPE = 'U'
IV_MAXNUM = '9999'
IV_TCODE = sy-tcode
TABLES
IT_MSEG = t_mseg_send.
"COMMIT WORK.
ENDLOOP.
MESSAGE ' , !' TYPE 'I'.
ENDFORM.
FORM frm_show_list.
RANGES: s_mblnr_z FOR mkpf-mblnr,
s_mjahr_z FOR mkpf-mjahr,
s_kunnr_z FOR mseg-kunnr.
s_mblnr_z-low = it_data-mblnr.
APPEND s_mblnr_z.
s_mjahr_z-low = it_data-mjahr.
APPEND s_mjahr_z.
s_kunnr_z-low = it_data-kunnr.
APPEND s_kunnr_z.
SUBMIT ZSDR016
WITH s_mblnr IN s_mblnr_z
WITH s_mjahr IN s_mjahr_z
WITH s_kunnr IN s_kunnr_z
AND RETURN.
ENDFORM.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
소샤게 CS 워크 플로우 개선 바람 관리 화면 12/16로 투고2020/02/08 구성과 설계를 기재 안녕하세요, 코로나입니다. 이번에는 업무에 가깝지만 가상 포트폴리오를 준비해 보았습니다. 신규 개발팀 백엔드 2명 프런트 x명 기획 2명 운영팀 백엔드 1명 문의 겸 기획 1명...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.