用户查看的是当时的物料折让,那你必然要给物料加个时间,才好区分。总是以现在最新的物料状态查看历史数据会出现问题。当时这个物料是折让的,现在不折让了。数据会有问题。加个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. Linux中的正则表达式

    *               前一个字符匹配0次或任意次.               匹配除了换行符外任意一个字符^              匹配行首$              匹配行尾[] ...

  2. ubuntu安装deb文件

    install the deb-package, e.g. using the Terminal command$ sudo apt install <path-to-smartgit-deb- ...

  3. JavaScript你所不知道的困惑(3)

    版权声明:本文出自水寒的原创文章.未经博主同意不得转载. https://blog.csdn.net/lxq_xsyu/article/details/25600011 困惑一: window.col ...

  4. STL之空间配置器

    在前面很多随笔里都有提到new对象是先分配内存然后初始化对象,主要是对operator new和placement new的使用 在SGI STL中内存的分配和初始化是分开的,分配内存是使用类模板,模 ...

  5. F110的几个功能

    1.F-59, 没有找到函数, 使用BDC BAPI_ACC_DOCUMENT_POST 必须创建有借贷2 line 的凭证,需求要参考原始的SA类型凭证, 创建一个单条的 科目 = 供应商 的凭证, ...

  6. 中文价格识别为数字 java代码

    运行效果: public class VoicePriceRecognition { private final static String NOT_HAS_PRICE_CONTENT="n ...

  7. extern "C" 有关问题

    之前帮老板编译一个库的代码,遇到了一些问题,后来发现问题出现在extern "C"语法上. 1. C/C++语法extern 关键字 extern是C/C++语言中表明函数和全局变 ...

  8. Loadrunder脚本篇——web_submit_data实现提交post请求

    概述 web_link()和web_url()函数都是页面访问型函数,实现HTTP请求中的GET方法,如果需要实现POST方法,可使用web_submit_form或web_submit_data() ...

  9. five application :Labeling features

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  10. java FileUtils 文件工具类

    package com.sicdt.library.core.utils; import java.io.BufferedInputStream; import java.io.File; impor ...