用户查看的是当时的物料折让,那你必然要给物料加个时间,才好区分。总是以现在最新的物料状态查看历史数据会出现问题。当时这个物料是折让的,现在不折让了。数据会有问题。加个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. [置顶] 我的Android进阶之旅------>Android解决异常: startRecording() called on an uninitialized AudioRecord.

    今天使用AudioRecord进行录音操作时候,报了下面的异常. E/AndroidRuntime(22775): java.lang.IllegalStateException: startReco ...

  2. ApexSQL Recover 恢复一个被drop的表的数据

    没有备份的情况下恢复一个被drop的表的数据 ApexSQL Recover 恢复一个被drop的表的数据 转自:https://solutioncenter.apexsql.com/zh/%E6%B ...

  3. celery的安装和使用

    celery是python开发的分布式任务调度模块,接口简单,开发容易,五分钟就写出一个异步发送邮件的服务,celery本身不含消息服务,它使用第三方消息服务来传递任务,目前,celery支持的消息服 ...

  4. iOS 统计项目代码行数

    最近去面试 对面的"他" 问我其中一个问题 是 "你的项目代码量是多少?" 当时的确有点蒙圈, 我可以从整个项目打包的角度考虑项目大小,我还真没想过到底我的项目 ...

  5. c# 单例模式(Single);单例模式的5种写法

    单例模式(Singleton Pattern): 在平时的开发中,可能会用到单例模式,许多java的笔试题中也会叫笔试者写出单例模式的那几种写法并且分析.那么下面就来轻轻地探讨一下,最简单的设计模式, ...

  6. 移植opencv2.4.9到android过程记录

    http://blog.csdn.net/brightming/article/details/50606463 在移植到arm开发板的时候已经说过,OpenCV已经为各平台准备了一套cmake交叉编 ...

  7. Delphi中ComPort通信中的数据处理

    源: Delphi中ComPort通信中的数据处理

  8. Windos Server 2008 NFS 服务安装使用

    系统环境:Windos 2008 R2 x64位 安装服务:NFS 文件服务 我的电脑-->右击管理-->功能-->添加功能 选择网络文件系统服务工具 安装服务 添加角色 下一步 选 ...

  9. ACM训练小结-2018年6月23日

    今天题目情况如下:    D题:SG函数相关.    相关知识忘光...已复习.    E题:丧心病狂的模拟题目.    F题:树分块+容斥.    想到了树上莫队,但是糟糕的是不会O(1)/O(lo ...

  10. codeforces上某题

    一道codeforces上的题目. 题目大意: 定义有k个不同的字符的字符串为好字符串.现在给出一个字符串,求解对该字符串的每个前缀Si至少是多少个好字符串的连接,若不能由好字符串连接而成则输出-1. ...