用户查看的是当时的物料折让,那你必然要给物料加个时间,才好区分。总是以现在最新的物料状态查看历史数据会出现问题。当时这个物料是折让的,现在不折让了。数据会有问题。加个DSO。做一个时间记录。读取系统时间,上数的时候做为判断。3月份上数就是取3月份。当时的物料状态

  在结束例程里写。字段赋予常量方可生效。

  感觉写的十分混乱来梳理一下

1 这是一个判断季度的语句。而且全是过程,基本没有对象

*取物料上数的系统时间的月份判断季度
loop at RESULT_PACKAGE ASSIGNING <RESULT_FIELDS> .
l_date = sy-datum+4(4)..
l_date1 = sy-datum+4(2).
year = sy-datum+(). if l_date = .
l_year = year + .
endif.
IF '' <= l_date AND l_date <= ''.
CONCATENATE year '' INTO <RESULT_FIELDS>-CALQUARTER.
ELSEIF '' <= l_date AND l_date <= ''.
CONCATENATE year '' INTO <RESULT_FIELDS>-CALQUARTER..
ELSEIF '' <= l_date AND l_date <= ''.
CONCATENATE year '' INTO <RESULT_FIELDS>-CALQUARTER..
ELSEIF l_date <= ''.
CONCATENATE year '' INTO <RESULT_FIELDS>-CALQUARTER..
ELSE.
CONCATENATE l_year '' INTO <RESULT_FIELDS>-CALQUARTER..
ENDIF.
endloop.

销售上数, 判断销售季度。,取是否折让字段,

这ABAP写不太出来,需要多实践。

2  读取字符是否折让重新分配

*读取需要字段从表/BIC/AZCZJTO2600 。分配至内表 IT_ZCZJTO26
* INTO CORRESPONDING FIELDS OF TABLE 自动匹配相应的字段
SELECT MATERIAL CALQUARTER /BIC/ZSFZR FROM /BIC/AZCZJTO2600
INTO CORRESPONDING FIELDS OF TABLE IT_ZCZJTO26 FOR ALL ENTRIES IN
RESULT_PACKAGE
WHERE MATERIAL = RESULT_PACKAGE-/BIC/ZMATERIAL AND CALQUARTER =
RESULT_PACKAGE-CALQUARTER.
*循环将内表里IT_ZCZJTO26 分配给工作区 WA_ZCZJTO26 。做了分配
LOOP AT RESULT_PACKAGE ASSIGNING <RESULT_FIELDS> .
READ TABLE IT_ZCZJTO26 INTO WA_ZCZJTO26
WITH KEY MATERIAL = <RESULT_FIELDS>-/BIC/ZMATERIAL CALQUARTER =
<RESULT_FIELDS>-CALQUARTER.
*执行成功 ,结果是否折让等于工作区 WA_ZCZJTO26-/BIC/ZSFZR.,是/BIC/AZCZJTO2600 里的字段。
IF sy-subrc = .
<RESULT_FIELDS>-/BIC/ZSFZR = WA_ZCZJTO26-/BIC/ZSFZR.
ENDIF.
ENDLOOP.

3 读取字符,服务店代码。 由于两个值不一样,前面有很多前导零。调用alpha添加零--数值会添加,文字不会。

data: g_/BIC/ZSAPGKDM type /BIC/PZ0FWDDM-/BIC/ZSAPGKDM.
loop at RESULT_PACKAGE ASSIGNING <RESULT_FIELDS> .*读取服务店代码,由于两个值不一样,前面有很多前导零。调用alpha添加零,数值会添加,文字不会
*多了一段这个,写的其实很乱。
clear g_/BIC/ZSAPGKDM.
g_/BIC/ZSAPGKDM = <RESULT_FIELDS>-/BIC/ZCUSTOMER.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = g_/BIC/ZSAPGKDM
IMPORTING
OUTPUT = g_/BIC/ZSAPGKDM.
*取数赋值,这么写方便很多。简洁很多。
SELECT SINGLE /BIC/Z0FWDDM FROM /BIC/PZ0FWDDM
INTO <RESULT_FIELDS>-/BIC/Z0FWDDM
WHERE /BIC/ZSAPGKDM = g_/BIC/ZSAPGKDM.
endloop.

比较2 与3 ,3 会更简便很多。 但是2 方式更严谨一点。

最终的代码:

  

*定义一个操作字段类型
data: l_date type String,
year type String,
l_year type string,
l_date1 type String. *定义一个内表 IT_ZCZJTO26 ,工作区 WA_ZCZJTO26
DATA:IT_ZCZJTO26 TYPE STANDARD TABLE OF /BIC/AZCZJTO2600,
WA_ZCZJTO26 TYPE /BIC/AZCZJTO2600. data: g_/BIC/ZSAPGKDM type /BIC/PZ0FWDDM-/BIC/ZSAPGKDM. *循环这个RESULT_PACKAGE,分配<RESULT_FIELDS>,判断季度
loop at RESULT_PACKAGE ASSIGNING <RESULT_FIELDS> . l_date = <RESULT_FIELDS>-PSTNG_DATE+().
l_date1 = <RESULT_FIELDS>-PSTNG_DATE+().
year = <RESULT_FIELDS>-PSTNG_DATE+(). if l_date = .
l_year = year + .
endif.
IF '' <= l_date AND l_date <= ''.
CONCATENATE year '' INTO <RESULT_FIELDS>-CALQUARTER.
ELSEIF '' <= l_date AND l_date <= ''.
CONCATENATE year '' INTO <RESULT_FIELDS>-CALQUARTER..
ELSEIF '' <= l_date AND l_date <= ''.
CONCATENATE year '' INTO <RESULT_FIELDS>-CALQUARTER..
ELSEIF l_date <= ''.
CONCATENATE year '' INTO <RESULT_FIELDS>-CALQUARTER..
ELSE.
CONCATENATE l_year '' INTO <RESULT_FIELDS>-CALQUARTER..
ENDIF. *读取服务店代码
clear g_/BIC/ZSAPGKDM.
g_/BIC/ZSAPGKDM = <RESULT_FIELDS>-/BIC/ZCUSTOMER.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = g_/BIC/ZSAPGKDM
IMPORTING
OUTPUT = g_/BIC/ZSAPGKDM. SELECT SINGLE /BIC/Z0FWDDM FROM /BIC/PZ0FWDDM
INTO <RESULT_FIELDS>-/BIC/Z0FWDDM
WHERE /BIC/ZSAPGKDM = g_/BIC/ZSAPGKDM.
endloop. *读取需要字段从表/BIC/AZCZJTO2600 。分配至内表 IT_ZCZJTO26
* INTO CORRESPONDING FIELDS OF TABLE 自动匹配相应的字段
SELECT MATERIAL CALQUARTER /BIC/ZSFZR FROM /BIC/AZCZJTO2600
INTO CORRESPONDING FIELDS OF TABLE IT_ZCZJTO26 FOR ALL ENTRIES IN
RESULT_PACKAGE
WHERE MATERIAL = RESULT_PACKAGE-/BIC/ZMATERIAL AND CALQUARTER =
RESULT_PACKAGE-CALQUARTER. *循环将内表里IT_ZCZJTO26 分配给工作区 WA_ZCZJTO26 。做了分配
LOOP AT RESULT_PACKAGE ASSIGNING <RESULT_FIELDS> .
READ TABLE IT_ZCZJTO26 INTO WA_ZCZJTO26
WITH KEY MATERIAL = <RESULT_FIELDS>-/BIC/ZMATERIAL CALQUARTER =
<RESULT_FIELDS>-CALQUARTER.
*执行成功 ,结果是否折让等于工作区 WA_ZCZJTO26-/BIC/ZSFZR.,是/BIC/AZCZJTO2600 里的字段。
IF sy-subrc = .
<RESULT_FIELDS>-/BIC/ZSFZR = WA_ZCZJTO26-/BIC/ZSFZR.
ENDIF.
ENDLOOP.

BW里转换简单常用ABAP的更多相关文章

  1. Win64 驱动内核编程-8.内核里的其他常用

    内核里的其他常用 1.遍历链表.内核里有很多数据结构,但它们并不是孤立的,内核使用双向链表把它们像糖 葫芦一样给串了起来.所以遍历双向链表能获得很多重要的内核数据.举个简单的例子,驱 动对象 Driv ...

  2. Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)

    <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)> <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)> 目的:指导项 ...

  3. Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)

    <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)> <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)> 目的:指导项 ...

  4. WPF绘制简单常用的Path

    写代码出身的我们经常需要使用一些简单 但是不是规则图形的Path 但限于美工功底有限 不知道怎么去画 下面我告诉大家一些简单的小技巧 用代码来画Path 个人还是比较喜欢用代码 因为数值控制的更精细 ...

  5. WPF绘制简单常用的Path(转)

    写代码出身的我们经常需要使用一些简单 但是不是规则图形的Path 但限于美工功底有限 不知道怎么去画 下面我告诉大家一些简单的小技巧 用代码来画Path 个人还是比较喜欢用代码 因为数值控制的更精细 ...

  6. JS里默认和常用转换

    * { font-family: PingFang, Monaco } JS里的六大简单数据类型 string 字符类型 number 数字类型 boolean 布尔类型 symbol ES6语法新增 ...

  7. python 基础-----数字,字符串,if while 循环 数据类型的转换简单介绍

    一.第一个python小程序 首先我们要知道python创立的初衷是:Python崇尚优美.清晰.简单. 所以python比起其他的语言需要的工作量少了一半都不止,比如和现在一直霸占语言排行榜  榜首 ...

  8. 在IntelliJ IDEA里创建简单的基于Maven的SpringMVC项目

    后来发现了一种更加方便的创建方式,即第一步不选择Create from archetype,创建完毕后打开Project Structure-Modules,然后添加Web,但是注意添加的Web里面的 ...

  9. 微信录音文件上传到服务器以及amr转化成MP3格式,linux上转换简单方法

    微信公众号音频接口开发 根据业务需求,我们可能需要将微信录音保存到服务器,而通过微信上传语音接口上传到微信服务器的语音文件的有效期只有3天,所以需要将文件下载到我们自己的服务器. 上传语音接口 wx. ...

随机推荐

  1. jQuery中删除节点方法remove()、detach()、empty()分析

    jQuery中提供了三种删除节点的方法:remove().detach().empty(),本文详细分析这三种方法. 最容易区分的是empty(),该方法严格上属于“清空节点”,即删除其子节点,自身并 ...

  2. java NIO 模型(一)

    1. 阻塞I/O通信模型 1.性能:一连接一线程模型导致服务端的并发接入数和系统吞吐量受到极大限制 2.可靠性:由于IO操作采用同步阻塞模式,当网络拥塞或者逻辑处理缓慢会导致IO线程被挂住,阻塞时间无 ...

  3. Pycharm中SQL语句提示SQL Dialect is Not Configured

    解决办法: 在File---->Setting--->Languages & Frameworks--->SQL Dialects中,选择对应的数据库,如MySQL,之后点击 ...

  4. 《Python 数据分析》笔记——pandas

    Pandas pandas是一个流行的开源Python项目,其名称取panel data(面板数据)与Python data analysis(Python 数据分析)之意. pandas有两个重要的 ...

  5. vim之可视化

    参考文档:http://blog.csdn.net/ii1245712564/article/details/46960387 先梳理关键知识,方便查阅 v(小v):进入可视化 V(大V):进入可视行 ...

  6. Python 4 函数的参数,内置函数,装饰器,生成器,迭代器,

    一.函数的参数: 1.位置参数:调用函数时根据函数定义的参数位置来传递参数. 2.关键字参数:用于函数调用,通过“键-值”形式加以指定.可以让函数更加清晰.容易使用,同时也清除了参数的顺序需求. 3. ...

  7. iOS 几种常用的 crash log 崩溃信息调试方法

    前言:crash log 对 定位崩溃问题 ,并且不容易复现,尤其是及时对appstore 上正在运营的 app 的迭代改进来说 非常重要. 1 crash两种情况 1.1 测试环境下 追踪bug 1 ...

  8. js对象属性方法大总结(收集)

    数组(Array):系列元素的有序集合: 详细演示请看:[js入门系列演示·数组 ] http://www.cnblogs.com/thcjp/archive/2006/08/04/467761.ht ...

  9. 【leetcode刷题笔记】Wildcard Matching

    Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any single character. ...

  10. tcp底层连接过程(c语言)

    在用了多种上位机开发环境,包括mfc.Qt.C#之后,发现它们的API都是对底层协议的(可以说是C语言)的封装,所以了解了底层协议,任意换上位机开发环境都是没问题的. 1.服务器创建套接字socket ...