ABAP 生产订单长文本增强 <销售计划 、物料独立需求 长文本带入 计划订单-生产订单 >
计划订单长文本带入生产订单
- 尝试在生产订单保存后 用 creat_text 函数 去创建长文本,发现前台不显示,查看 文本抬头底表 STXL 发现有值 ,用READ 函数 读取 能读。
DATA:tdid TYPE thead-tdid, tdspras TYPE thead-tdspras, tdname TYPE thead-tdname, tdobject TYPE thead-tdobject, t_tline LIKE TABLE OF tline WITH HEADER LINE. SELECT SINGLE PTEXT INTO lv_zz_ptext FROM plaf WHERE PLNUM = afpod-PLNUM. if sy-subrc = 0 and lv_zz_ptext ne ' '. tdid = 'KOPF'. tdspras = '1'. tdname = SY-MANDT && CAUFV-AUFNR. tdobject = 'AUFK'. t_tline-tdline = lv_zz_ptext. t_tline-tdformat = '*'. APPEND t_tline. CALL FUNCTION 'CREATE_TEXT' EXPORTING fid = tdid flanguage = tdspras fname = tdname fobject = tdobject TABLES flines = t_tline EXCEPTIONS no_init = 1 no_save = 2 OTHERS = 3. CLEAR:t_tline[],t_tline,tdobject,tdname,tdspras,tdid. endif.
UPDATE aufk SET ltext = '1' WHERE aufnr = CAUFV-AUFNR.
COMMIT WORK.
个别版本,前台不显示,查看 文本抬头底表 STXL 发现有值 ,用READ 函数 读取 能读。


检查发现 订单抬头有个长文本标识 ,调试发现 有文本赋值 1, 手工更新 LTEXT后发现前台还是 不能显示,没解决想着换个思路.
2.在前台工单界面 CO01 /02/03 长文本屏幕 260 PBO 里面增强 ,找到 FORM set_control_text ,

发现可以实现,但是考虑到 计划订单转生产订单后,PLAF 表会删除,如果创建的时候不点长文本屏幕 那还是不能获取,故使用自建表 存储。

自建表

保存 ZZPLAF 增强点 " SAP_CSW notes.

销售计划 物料的独立需求 长文本 >计划订单 >生产订单 需求。
下面 是 销售计划 物料的独立需求 长文本 >计划订单 增强点


*
*&---------------------------------------------------------------------* *& 包含 ZPPE002 *&---------------------------------------------------------------------* * PLAF-KDAUF * PLAF-KDPOS DATA: gv_tdid_head LIKE thead-tdid, gv_tdspras_head LIKE thead-tdspras, gv_tdname_head LIKE thead-tdname, gv_tdobject_head LIKE thead-tdobject. DATA: gv_tdid_item LIKE thead-tdid, gv_tdspras_item LIKE thead-tdspras, gv_tdname_item LIKE thead-tdname, gv_tdobject_item LIKE thead-tdobject. DATA: gs_lines_head TYPE tline, gt_lines_head TYPE TABLE OF tline. DATA: gs_lines_item TYPE tline, gt_lines_item TYPE TABLE OF tline. DATA: gv_ptext_h TYPE plaf-ptext, gv_ptext_i TYPE plaf-ptext. DATA:ls_pbed TYPE pbed. CLEAR:gv_tdid_head , gv_tdspras_head , gv_tdname_head , gv_tdobject_head, gv_tdid_item , gv_tdspras_item , gv_tdname_item , gv_tdobject_item. IF plaf-paart = 'KD'. "销售订单文本 gv_tdid_head = '0001'. gv_tdspras_head = '1'. gv_tdname_head = plaf-kdauf. gv_tdobject_head = 'VBBK'. gv_tdid_item = '0001'. gv_tdspras_item = '1'. gv_tdname_item = plaf-kdauf && plaf-kdpos. gv_tdobject_item = 'VBBP'. BREAK itl_abap. *** SO HEARD TEXT CALL FUNCTION 'READ_TEXT' EXPORTING client = sy-mandt id = gv_tdid_head language = gv_tdspras_head name = gv_tdname_head object = gv_tdobject_head * ARCHIVE_HANDLE = 0 * LOCAL_CAT = ' ' * IMPORTING * HEADER = * OLD_LINE_COUNTER = TABLES lines = gt_lines_head EXCEPTIONS id = 1 language = 2 name = 3 not_found = 4 object = 5 reference_check = 6 wrong_access_to_archive = 7 OTHERS = 8. LOOP AT gt_lines_head INTO gs_lines_head. gv_ptext_h = gv_ptext_h && gs_lines_head-tdline. ENDLOOP. *** SO ITEM TEXT CALL FUNCTION 'READ_TEXT' EXPORTING client = sy-mandt id = gv_tdid_item language = sy-langu name = gv_tdname_item object = gv_tdobject_item * ARCHIVE_HANDLE = 0 * LOCAL_CAT = ' ' * IMPORTING * HEADER = * OLD_LINE_COUNTER = TABLES lines = gt_lines_item EXCEPTIONS id = 1 language = 2 name = 3 not_found = 4 object = 5 reference_check = 6 wrong_access_to_archive = 7 OTHERS = 8. LOOP AT gt_lines_item INTO gs_lines_item. gv_ptext_i = gv_ptext_i && gs_lines_item-tdline. ENDLOOP. IF gv_ptext_h IS NOT INITIAL AND gv_ptext_i IS NOT INITIAL. plaf-ptext = gv_ptext_h && '/' && gv_ptext_i. ELSE. plaf-ptext = gv_ptext_h && gv_ptext_i. ENDIF. ELSEIF plaf-paart = 'LA'. SELECT SINGLE a~bdzei b~pdatu INTO CORRESPONDING FIELDS OF ls_pbed FROM pbim AS a INNER JOIN pbed AS b ON b~bdzei = a~bdzei WHERE a~matnr = plaf-matnr AND a~werks = plaf-plwrk AND b~pdatu = plaf-pedtr AND b~plnmg = plaf-gsmng. DATA:lv_name TYPE thead-tdname. lv_name = ls_pbed-bdzei && ls_pbed-pdatu. CLEAR gt_lines_head. CALL FUNCTION 'READ_TEXT' EXPORTING client = sy-mandt id = 'ET' language = sy-langu name = lv_name object = 'PBET' * ARCHIVE_HANDLE = 0 * LOCAL_CAT = ' ' * IMPORTING * HEADER = * OLD_LINE_COUNTER = TABLES lines = gt_lines_head EXCEPTIONS id = 1 language = 2 name = 3 not_found = 4 object = 5 reference_check = 6 wrong_access_to_archive = 7 OTHERS = 8. LOOP AT gt_lines_head INTO gs_lines_head. gv_ptext_h = gv_ptext_h && gs_lines_head-tdline. ENDLOOP. plaf-ptext = gv_ptext_h. ENDIF. CONDENSE plaf-ptext NO-GAPS.

浙公网安备 33010602011771号