• 对CU50的修改(未使用)


    目的是把CU50中的选择配置拿出来,再把最后BOM的结果拿出来。2023.10.13

    一、CU50里面2个标准函数有修改:

    1. ----------LCUKOF01----函数----------------
    2. CALL FUNCTION 'CU01_DISPLAY_BOM'
    3. EXPORTING
    4. masterdata = rcuko-ukomp
    5. RESULT = rcuko-uaktk
    6. level_by_level = rcuko-dmstu
    7. all_components = rcuko-ucmpf
    8. no_masterdata = g_nomd
    9. no_result = g_nore
    10. include_header = incl1
    11. IMPORTING
    12. return_with_function = list_okcode
    13. TABLES
    14. bom_list_index = indx_clst
    15. bom_list = lt_clst.
    16. *{ INSERT S4DK913063 1
    17. DATA gs_ZCU50_LIST like ZCU50_LIST.
    18. DELETE FROM ZCU50_LIST.
    19. COMMIT WORK .
    20. LOOP AT gt_clst_for_list INTO DATA(gs400) WHERE INTENSIV = 'X' AND INSTP = '1'.
    21. gs_ZCU50_LIST-UUID = cl_uuid_factory=>create_system_uuid( )->create_uuid_c22( ).
    22. gs_ZCU50_LIST-TEXT = gs400-ZEILE.
    23. INSERT into ZCU50_LIST VALUES gs_ZCU50_LIST.
    24. CLEAR gs_ZCU50_LIST.
    25. ENDLOOP.
    26. *} INSERT
    27. -----------LCEI0F90函数--------------
    28. CALL FUNCTION 'CUTC_GET_SETTINGS'
    29. IMPORTING
    30. active = lv_ddb_trace.
    31. IF lv_ddb_trace IS INITIAL.
    32. ls_fcode-fcode = 'TRCD'.
    33. APPEND ls_fcode TO lt_fcode.
    34. ELSE.
    35. ls_fcode-fcode = 'TRCA'.
    36. APPEND ls_fcode TO lt_fcode.
    37. ENDIF.
    38. *{ INSERT S4DK913063 1
    39. DATA gs_ZVCOND_SD like ZVCOND_SD.
    40. DELETE FROM ZVCOND_SD.
    41. COMMIT WORK .
    42. gs_ZVCOND_SD-UUID = cl_uuid_factory=>create_system_uuid( )->create_uuid_c22( ).
    43. gs_ZVCOND_SD-VARCOND = GV_MATNR.
    44. INSERT into ZVCOND_SD VALUES gs_ZVCOND_SD.
    45. CLEAR gs_ZVCOND_SD.
    46. gs_ZVCOND_SD-UUID = cl_uuid_factory=>create_system_uuid( )->create_uuid_c22( ).
    47. gs_ZVCOND_SD-VARCOND = GV_WERKS.
    48. INSERT into ZVCOND_SD VALUES gs_ZVCOND_SD.
    49. CLEAR gs_ZVCOND_SD.
    50. gs_ZVCOND_SD-UUID = cl_uuid_factory=>create_system_uuid( )->create_uuid_c22( ).
    51. gs_ZVCOND_SD-VARCOND = GV_DATE.
    52. INSERT into ZVCOND_SD VALUES gs_ZVCOND_SD.
    53. CLEAR gs_ZVCOND_SD.
    54. LOOP AT GT_VCOND_SD INTO DATA(gs400).
    55. gs_ZVCOND_SD-UUID = cl_uuid_factory=>create_system_uuid( )->create_uuid_c22( ).
    56. gs_ZVCOND_SD-VARCOND = gs400-VARCOND.
    57. INSERT into ZVCOND_SD VALUES gs_ZVCOND_SD.
    58. CLEAR gs_ZVCOND_SD.
    59. ENDLOOP.
    60. *} INSERT

    二、存数据的透明表:

    三、处理程序:

    1. *&---------------------------------------------------------------------*
    2. *& Report ZPPR0016B
    3. *&---------------------------------------------------------------------*
    4. *&
    5. *&---------------------------------------------------------------------*
    6. REPORT ZPPR0016B.
    7. TABLES:vbap,stko,ZCU50_LIST.
    8. DATA ls_write TYPE zspp_bominfo.
    9. DATA ls_head TYPE zspp_bominfo.
    10. DATA lt_head TYPE TABLE OF zspp_bominfo.
    11. DATA lv_rfcdest TYPE rfcdest.
    12. DATA lt_esb_com TYPE zsca_esb_com_tab.
    13. DATA lt_bomlist TYPE TABLE OF zspp_bomlist.
    14. DATA gt_stpo TYPE TABLE OF stpox.
    15. DATA:gs_layout TYPE lvc_s_layo, "#EC NEEDED
    16. gs_glay TYPE lvc_s_glay, "#EC NEEDED
    17. gt_fieldcat TYPE lvc_t_fcat. "#EC NEEDED
    18. TYPES: BEGIN OF ty_table,
    19. matnr(40) TYPE C,
    20. END OF ty_table.
    21. DATA gt_SAP TYPE TABLE OF ty_table.
    22. DATA gt_APS TYPE TABLE OF ty_table.
    23. DATA gs_gsgs TYPE ty_table.
    24. SELECTION-SCREEN BEGIN OF BLOCK a0 WITH FRAME TITLE TEXT-001.
    25. PARAMETERS:p_datuv TYPE stko-datuv DEFAULT sy-datum. "有效起始日期
    26. SELECTION-SCREEN END OF BLOCK a0.
    27. START-OF-SELECTION.
    28. PERFORM frm_SAP_data.
    29. PERFORM frm_APS_data.
    30. PERFORM frm_xxx.
    31. FORM frm_SAP_data.
    32. DATA GT_ZCU50_LIST TYPE TABLE OF ZCU50_LIST.
    33. SELECT * FROM ZCU50_LIST INTO TABLE GT_ZCU50_LIST.
    34. LOOP AT GT_ZCU50_LIST ASSIGNING FIELD-SYMBOL().
    35. gs_gsgs-MATNR = -TEXT+8(40) .
    36. IF gs_gsgs-MATNR EQ 'F2'. CONTINUE. ENDIF.
    37. IF gs_gsgs-MATNR EQ 'F2PD'. CONTINUE. ENDIF.
    38. IF gs_gsgs-MATNR EQ 'F2BD'. CONTINUE. ENDIF.
    39. APPEND gs_gsgs to gt_SAP.
    40. CLEAR gs_gsgs.
    41. ENDLOOP.
    42. ENDFORM.
    43. FORM frm_APS_data.
    44. DATA GT_VCOND_SD TYPE TABLE OF ZVCOND_SD.
    45. SELECT * FROM ZVCOND_SD INTO TABLE GT_VCOND_SD.
    46. LOOP AT GT_VCOND_SD INTO DATA(line).
    47. "------PM--------------
    48. if cl_abap_list_utilities=>dynamic_output_length( line-VARCOND ) > 10. ls_head-ATWRT1 = line-VARCOND. ENDIF.
    49. "------CC--------------
    50. IF line-VARCOND+0(2) EQ 'CC' .
    51. ls_head-ATWRT2 = line-VARCOND.
    52. ENDIF.
    53. "------PA--------------
    54. IF line-VARCOND+0(2) EQ 'PA' .
    55. ls_head-ATWRT3 = line-VARCOND.
    56. ENDIF.
    57. "------P0--------------
    58. IF line-VARCOND+0(2) EQ 'P0' .
    59. IF ls_head-ATWRT4 is INITIAL.
    60. ls_head-ATWRT4 = line-VARCOND.
    61. ELSE.
    62. ls_head-ATWRT4 = ls_head-ATWRT4 && ';' && line-VARCOND.
    63. ENDIF.
    64. ENDIF.
    65. "------1003--------------
    66. IF line-VARCOND+0(3) EQ '100' .
    67. ls_head-werks = line-VARCOND.
    68. ENDIF.
    69. "------F2--------------
    70. IF line-VARCOND+0(2) EQ 'F2' .
    71. ls_head-matnr = line-VARCOND.
    72. ENDIF.
    73. "------20231013--------------
    74. IF line-VARCOND+0(3) EQ '202' .
    75. ls_head-badat = line-VARCOND.
    76. ENDIF.
    77. ENDLOOP.
    78. IF ls_head-matnr EQ 'F2'. ls_head-z_st = 'V'. ENDIF.
    79. IF ls_head-matnr EQ 'F2PD'. ls_head-z_st = 'P'. ENDIF.
    80. IF ls_head-matnr EQ 'F2BD'. ls_head-z_st = 'A'. ENDIF.
    81. APPEND ls_head TO lt_head .
    82. ls_write = ls_head.
    83. CLEAR ls_head.
    84. lv_rfcdest = zcl_ca_tools=>get_rfcdest( ).
    85. CALL FUNCTION 'ZSAP_PP_APS_BOMINFO_OUT' DESTINATION lv_rfcdest
    86. TABLES
    87. et_po_header = lt_head
    88. tt_esb_com = lt_esb_com
    89. tt_bomlist = lt_bomlist.
    90. ENDFORM.
    91. FORM frm_xxx.
    92. "----###############-----------
    93. WRITE:/ p_datuv && ':' && ls_head-ATWRT1 && ',' && ls_head-ATWRT2 && ',' && ls_head-ATWRT3 && ',' && ls_head-ATWRT4.
    94. DATA lv_l1 TYPE i VALUE 0.
    95. DATA lv_l2 TYPE i VALUE 0.
    96. lv_l1 = lines( lt_bomlist ).
    97. lv_l2 = lines( gt_SAP ).
    98. WRITE:/ 'APS: ' && lv_l1.
    99. WRITE:/ 'SAP: ' && lv_l2 .
    100. "----####?##?#-----------
    101. LOOP AT lt_bomlist INTO DATA(gs_2).
    102. gs_gsgs-MATNR = gs_2-MATNR.
    103. APPEND gs_gsgs to gt_APS.
    104. CLEAR gs_gsgs.
    105. ENDLOOP.
    106. SORT gt_SAP.
    107. SORT gt_APS.
    108. IF gt_SAP[] = gt_APS[].
    109. WRITE:/ 'every item same'.
    110. ELSE.
    111. WRITE:/ 'some item different'.
    112. ENDIF.
    113. CLEAR:gt_SAP[],gt_APS[],lt_bomlist[],gt_stpo[].
    114. ENDFORM.
    115. FORM frm_ALV.
    116. "#####?##
    117. TYPES: BEGIN OF ty_flight,
    118. TXT1(40) TYPE C,
    119. id TYPE i ,
    120. TXT2(40) TYPE C,
    121. TXT3(40) TYPE C,
    122. END OF ty_flight.
    123. "#####?#
    124. DATA gt_20 TYPE TABLE OF ty_flight.
    125. DATA gs_20 TYPE ty_flight.
    126. *
    127. *
    128. * LOOP AT gt_SAP INTO DATA(gs_s).
    129. *
    130. *
    131. * gs_20-TXT2 = gs_s-MATNR.
    132. * APPEND gs_20 to gt_20.
    133. * CLEAR gs_20.
    134. *
    135. *
    136. * ENDLOOP.
    137. *
    138. *
    139. *
    140. * LOOP AT gt_APS INTO DATA(gs_s).
    141. *
    142. *
    143. * gs_20-TXT3 = gs_s-MATNR.
    144. * APPEND gs_20 to gt_20.
    145. * CLEAR gs_20.
    146. *
    147. * ENDLOOP.
    148. *
    149. DATA: WS_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
    150. WS_FIELDGROUPS_TAB TYPE SLIS_T_SP_GROUP_ALV,
    151. WS_LAYOUT TYPE SLIS_LAYOUT_ALV,
    152. WS_SORTFIELDS_TAB TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE,
    153. WS_EVENTS TYPE SLIS_T_EVENT.
    154. DATA: NN TYPE I VALUE 0.
    155. DATA: TITLE TYPE LVC_TITLE.
    156. DATA: COLOR TYPE SLIS_T_SPECIALCOL_ALV WITH HEADER LINE.
    157. *
    158. DEFINE HOUT.
    159. NN = NN + 1.
    160. WS_FIELDCAT-COL_POS = NN.
    161. WS_FIELDCAT-TABNAME = 'GT_20'.
    162. WS_FIELDCAT-KEY = &1.
    163. WS_FIELDCAT-FIELDNAME = &2.
    164. WS_FIELDCAT-SELTEXT_M = &3.
    165. WS_FIELDCAT-CFIELDNAME = &4.
    166. WS_FIELDCAT-DATATYPE = &5.
    167. WS_FIELDCAT-REF_TABNAME = &6.
    168. WS_FIELDCAT-REF_FIELDNAME = &7.
    169. WS_FIELDCAT-DO_SUM = &8.
    170. WS_FIELDCAT-HOTSPOT = &9.
    171. APPEND WS_FIELDCAT.
    172. CLEAR WS_FIELDCAT.
    173. END-OF-DEFINITION.
    174. HOUT:
    175. '' 'TXT1' '## ## ## ##' '' '' '' '' '' '',
    176. '' 'TXT2' ' SAP ' '' '' '' '' '' '',
    177. '' 'TXT3' ' APS ' '' '' '' '' '' ''.
    178. WS_LAYOUT-ZEBRA = 'X'.
    179. WS_LAYOUT-GET_SELINFOS = 'X'.
    180. WS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    181. WS_LAYOUT-DETAIL_POPUP = 'X'.
    182. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    183. EXPORTING
    184. I_CALLBACK_PROGRAM = SY-REPID
    185. IS_LAYOUT = WS_LAYOUT
    186. IT_FIELDCAT = WS_FIELDCAT[]
    187. IT_SPECIAL_GROUPS = WS_FIELDGROUPS_TAB[]
    188. IT_SORT = WS_SORTFIELDS_TAB[]
    189. IT_EVENTS = WS_EVENTS[]
    190. I_GRID_TITLE = TITLE
    191. I_DEFAULT = 'X'
    192. I_SAVE = 'A'
    193. TABLES
    194. T_OUTTAB = GT_20[]
    195. EXCEPTIONS
    196. PROGRAM_ERROR = 1
    197. OTHERS = 2.
    198. ENDFORM.

  • 相关阅读:
    JAVA毕业设计129—基于Java+Springboot+thymeleaf的物业管理系统(源代码+数据库)
    用Java给您的图片瘦身之Thumbnailator技术
    PyQt5快速开发与实战 6.6 QFormLayout(表单布局) && 6.7 嵌套布局 && 6.8 QSplitter
    ChatGLM2-6B Lora 微调训练医疗问答任务
    [深度学习] 搭建行人重识别系统心得
    RecyclerView使用GridLayoutManager 设置间距一致大小
    【C++修炼之路】9. string类的模拟实现
    Linux 环境删除Conda
    基于双向 GRU 的文本分类 Python 算法实战
    数据结构——单调栈
  • 原文地址:https://blog.csdn.net/ot512csdn/article/details/133813795