DATA: L_CSEQNO TYPE I. "当前日志所属数据序号
LOOP AT T_LOG.
IF T_LOG-SEQNO NE SPACE.
L_CSEQNO = T_LOG-SEQNO. "获取当前日志信息所属数据序号
ENDIF.
IF ( T_LOG-MSGID = 'VK' AND T_LOG-MSGNR = '023' ) OR
( T_LOG-MSGID = '06' AND T_LOG-MSGNR = '335' ).
* 如果有MSGID = 'VK' 且 MSGNR = '023',则表示,该数据保存成功
READ TABLE <DYN_TABLE> INTO <DYN_WA> INDEX L_CSEQNO.
IF SY-SUBRC = 0.
ASSIGN COMPONENT 'ROWCOLOR' OF STRUCTURE <DYN_WA> TO <DYN_FIELD>.
<DYN_FIELD> = 'C200'.
MODIFY <DYN_TABLE> FROM <DYN_WA> INDEX L_CSEQNO.
ENDIF.
ENDIF.
ENDLOOP.
FORM SUB_PROCESS_LOG .
DATA: L_CSEQNO TYPE I. "当前日志所属数据序号
DATA: L_ERRNO TYPE I,
L_TOTNO TYPE I,
L_SUCNO TYPE I.
L_ERRNO = 0.
L_TOTNO = 0.
L_SUCNO = 0.
LOOP AT <DYN_TABLE> INTO <DYN_WA>.
L_TOTNO = L_TOTNO + 1.
DATA: L_CTABIX LIKE SY-TABIX.
L_CTABIX = SY-TABIX.
ASSIGN COMPONENT 'ROWCOLOR' OF STRUCTURE <DYN_WA> TO <DYN_FIELD>.
IF <DYN_FIELD> <> 'C200'.
<DYN_FIELD> = 'C610'.
L_ERRNO = L_ERRNO + 1.
ELSE.
L_SUCNO = L_SUCNO + 1.
<DYN_FIELD> = ''.
ENDIF.
MODIFY <DYN_TABLE> FROM <DYN_WA> INDEX L_CTABIX.
ENDLOOP.
DATA: L_MSG(100) TYPE C.
IF L_TOTNO <> L_SUCNO.
DATA: L_TOTNOC(10) TYPE C VALUE 0.
DATA: L_ERRNOC(10) TYPE C VALUE 0.
L_TOTNOC = L_TOTNO.
L_ERRNOC = L_ERRNO.
CONCATENATE '共处理数据' L_TOTNOC '条,' '其中失败' L_ERRNOC '条,请查看日志。' INTO L_MSG.
ELSE.
L_MSG = '操作已成功。'.
ENDIF.
MESSAGE L_MSG TYPE 'I'.
ENDFORM.
*BDC 相关定义
DATA: BEGIN OF bdcdata OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA: END OF bdcdata.
DATA: BEGIN OF t_log OCCURS 0.
INCLUDE STRUCTURE bdcmsgcoll.
DATA: keytext(100) TYPE c.
DATA: seqno TYPE i.
DATA: END OF t_log.
FORM sub_show_log .
CLEAR t_loginfo.
REFRESH t_loginfo.
LOOP AT t_log.
IF t_log-seqno <> 0.
t_loginfo-seqno = t_log-seqno.
ELSE.
DATA: x_msgin LIKE msg_log,
x_msgout LIKE msg_text.
CLEAR: x_msgin,x_msgout.
x_msgin-msgid = t_log-msgid.
x_msgin-msgno = t_log-msgnr.
x_msgin-msgty = t_log-msgtyp.
x_msgin-msgv1 = t_log-msgv1.
x_msgin-msgv2 = t_log-msgv2.
x_msgin-msgv3 = t_log-msgv3.
x_msgin-msgv4 = t_log-msgv4.
CALL FUNCTION 'MESSAGE_TEXTS_READ'
EXPORTING
msg_log_imp = x_msgin
IMPORTING
msg_text_exp = x_msgout.
t_loginfo-logtx = x_msgout-msgtx.
APPEND t_loginfo.
CLEAR: t_loginfo-logtx.
ENDIF.
ENDLOOP.
CALL SCREEN 200 STARTING AT 5 5.
ENDFORM. " sub_show_log
MODULE TC_LOGINFO_CHANGE_TC_ATTR OUTPUT.
DESCRIBE TABLE T_LOGINFO LINES TC_LOGINFO-lines.
ENDMODULE.
MODULE TC_LOGINFO_GET_LINES OUTPUT.
G_TC_LOGINFO_LINES = SY-LOOPC.
ENDMODULE.

856

被折叠的 条评论
为什么被折叠?



