AT NEW/AT END用法(无脑教学版)
使用前必须将内表结构按照分组字段定义顺序
AT NEW OF
本DEMO 按照物料组 工程 RECP分组
TYPES: BEGIN OF ty_basic, matkl TYPE matkl, "物料组 werks TYPE werks_d, "工厂 recp TYPE zrecp, "Recp pr TYPE i, "PR znum TYPE i , "序号 matnr TYPE matnr, "物料编码 END OF ty_basic.
SORT lt_basic BY matkl werks recp .
使用指针LOOP 一般用来判断内表里根据某几个字段分组处理
这里DEMO是如果物料组 工厂 RECP有一个变化 则PR号加1
LOOP AT lt_basic ASSIGNING <fs_basic>. IF <fs_basic>-flag = 'X'. CONTINUE. ELSE. AT NEW recp."按照RECP前的字段分组 如果有一个发生变化 则进AT NEW里面的逻辑 lv_pr = lv_pr + 1. CLEAR:gv_price. ENDAT. gv_price = gv_price + <fs_basic>-price. IF gv_price >= p_plimit. lv_pr = lv_pr + 1. CLEAR:gv_price. gv_price = <fs_basic>-price. ENDIF. lws_merge-matnr = <fs_basic>-matnr. lws_merge-werks = <fs_basic>-werks. lws_merge-price = <fs_basic>-price. lws_merge-pr = lv_pr. lws_merge-matkl = <fs_basic>-matkl. lws_merge-recp = <fs_basic>-recp. lws_merge-znum = <fs_basic>-znum. lws_merge-maktx = <fs_basic>-maktx. APPEND lws_merge TO lts_merge. CLEAR:lws_merge. <fs_basic>-flag = 'X'. ENDIF. ENDLOOP.
案例需求 每个公司单独做下载 以及单个公司超过多少行做下载的判断
AT END OF
一般用在处理多个行项目创建单据使用 常用EXCEL上传凭证行数据创建会计凭证
相同序号的行项目建在同一个凭证上就可以根据需要AT NEW 序号 在最后一行 调用BAPI
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏