使用ABAP指针来计算账龄
来源:互联网 发布:vr开发用什么编程语言 编辑:程序博客网 时间:2024/05/17 07:44
DATA:
LW_RESULT_PACKAGE TYPE _ty_s_TG_1.DATA:
LV_FDNM01(12) TYPE C VALUE '/BIC/ZAMTDAY',
LV_DAYS(5) TYPE N,
LV_FDNM99(20) TYPE C.
FIELD-SYMBOLS:
<LFD> TYPE ANY.
* BREAK-POINT.
*** 20160620 计提比例配置表
DATA: LT_ZIFID084 TYPE STANDARD TABLE OF /BIC/AZIFID08400 WITH
NON-UNIQUE DEFAULT KEY.
SELECT * INTO TABLE LT_ZIFID084 FROM /BIC/AZIFID08400.
SORT LT_ZIFID084 BY /BIC/ZSYB /BIC/ZQDLX /BIC/ZSYBQDLX /BIC/ZCLASSM
/BIC/ZDAYB /BIC/ZDAYE.
LOOP AT RESULT_PACKAGE ASSIGNING <RESULT_FIELDS>.
LV_DAYS = CEIL( <RESULT_FIELDS>-/BIC/ZZAVAGE / 30 ).
【如果为50天,计算结果为2】
IF LV_DAYS EQ 0.
LV_FDNM99+0(12) = LV_FDNM01.
LV_FDNM99+12(2) = '01'.
ELSEIF LV_DAYS GT 0.
IF <RESULT_FIELDS>-/BIC/ZZAVAGE GT 720.
【如果大于720天,则为25】
LV_FDNM99+0(12) = LV_FDNM01.LV_FDNM99+12(2) = '25'.
ELSE.
LV_FDNM99+0(12) = LV_FDNM01.
LV_FDNM99+12(2) = LV_DAYS+3(2).
【LV_FDNM99】=ZAMTDAY02
ENDIF.
ENDIF.
IF LV_FDNM99 IS NOT INITIAL.
MOVE-CORRESPONDING <RESULT_FIELDS> TO LW_RESULT_PACKAGE.
将<RESULT_FIELDS>的结果赋值给内表。
ASSIGN COMPONENT LV_FDNM99 OF STRUCTURE LW_RESULT_PACKAGE
TO <LFD>.
将<LFD>指向内表的ZAMTDAY02
<LFD> = LW_RESULT_PACKAGE-/BIC/ZZJXJ_SUM.
ENDIF.
<LFD> = 经销价合计, 同时内表中ZAMTDAY02 = <LFD>.
MOVE-CORRESPONDING LW_RESULT_PACKAGE TO <RESULT_FIELDS>.
将内表给到结果集
ENDIF.
* 计算计提
<RESULT_FIELDS>-/BIC/ZJTAMOUNT = <RESULT_FIELDS>-/BIC/ZZJXJ_SUM *
<RESULT_FIELDS>-/BIC/ZRATE.
* 判断积压
CALL FUNCTION 'ZGETJYAMT'
EXPORTING
I_ZQDLX = <RESULT_FIELDS>-/BIC/ZQDLX
I_DIVISION = <RESULT_FIELDS>-DIVISION
I_ZZTGWLSX = <RESULT_FIELDS>-/BIC/ZZTGWLSX
I_ZAMOUNT = <RESULT_FIELDS>-/BIC/ZZJXJ_SUM
I_ZZAVAGE = <RESULT_FIELDS>-/BIC/ZZAVAGE
I_ZSYB = <RESULT_FIELDS>-/BIC/ZSYB
I_ZSYBQDLX = <RESULT_FIELDS>-/BIC/ZSYBQDLX
I_ZCLASSM = <RESULT_FIELDS>-/BIC/ZCLASSM
IMPORTING
E_ZJYAMOUNT = <RESULT_FIELDS>-/BIC/ZJYAMOUNT
TABLES
ZIFID084 = LT_ZIFID084.
ENDLOOP.
FUNCTION ZGETJYAMT.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(I_DIVISION) TYPE /BI0/OIDIVISION
*" VALUE(I_ZZAVAGE) TYPE /BIC/OIZZAVAGE
*" VALUE(I_ZQDLX) TYPE /BIC/OIZQDLX
*" VALUE(I_ZAMOUNT) TYPE /BIC/OIZJYAMOUNT
*" VALUE(I_ZZTGWLSX) TYPE /BIC/OIZZTGWLSX OPTIONAL
*" VALUE(I_ZSYB) TYPE /BIC/OIZSYB OPTIONAL
*" VALUE(I_ZSYBQDLX) TYPE /BIC/OIZSYBQDLX OPTIONAL
*" VALUE(I_ZCLASSM) TYPE /BIC/OIZCLASSM OPTIONAL
*" EXPORTING
*" VALUE(E_ZJYAMOUNT) TYPE /BIC/OIZJYAMOUNT
*" TABLES
*" ZIFID084 STRUCTURE /BIC/AZIFID08400 OPTIONAL
*"----------------------------------------------------------------------
IF I_ZQDLX = '1'."加盟
IF I_ZZAVAGE > 270. "以下品牌按270天算积压
IF I_DIVISION = '11' OR I_DIVISION = '51' OR "20160509 51-智能家俱同罗莱
I_DIVISION = '12' OR I_DIVISION = '52' OR "20170118增加内野品牌
I_DIVISION = '15' OR
I_DIVISION = '16' OR
I_DIVISION = '17' OR
I_DIVISION = '19' OR
I_DIVISION = '20' OR I_DIVISION = '43' OR
I_DIVISION = '27' OR
I_DIVISION = '28'.
E_ZJYAMOUNT = I_ZAMOUNT.
ENDIF.
ENDIF.
IF I_ZZAVAGE > 360. "以下品牌按360天算积压 高端
IF I_DIVISION = '13' OR I_DIVISION = '14' OR
I_DIVISION = '21' OR I_DIVISION = '24' OR I_DIVISION = '31' OR
I_DIVISION = '32' OR I_DIVISION = '36' OR I_DIVISION = '39' OR I_DIVISION = '41' OR I_DIVISION = '54' OR
I_DIVISION = '45' OR I_DIVISION = '48' OR I_DIVISION = '49' OR I_DIVISION = '25' . "20150721 新增48品牌 "lz 添加41品牌20150814
E_ZJYAMOUNT = I_ZAMOUNT.
ENDIF.
ENDIF.
ELSEIF I_ZQDLX = '2' OR I_ZQDLX = '8'. "直营 AND 软装 20160601
IF I_ZZAVAGE > 180.
IF I_DIVISION = '11' OR I_DIVISION = '51' OR "20160509 51-智能家俱同罗莱
I_DIVISION = '12' OR I_DIVISION = '52' OR "20170118增加内野品牌
I_DIVISION = '15' OR
I_DIVISION = '16' OR
I_DIVISION = '17' OR
I_DIVISION = '19' OR
I_DIVISION = '20' OR I_DIVISION = '43' OR
I_DIVISION = '27' OR
I_DIVISION = '28'.
E_ZJYAMOUNT = I_ZAMOUNT.
ENDIF.
ENDIF.
IF I_ZZAVAGE > 240.
IF I_DIVISION = '13' OR
I_DIVISION = '14' OR
I_DIVISION = '21' OR
I_DIVISION = '24' OR
I_DIVISION = '31' OR
I_DIVISION = '32' OR
I_DIVISION = '36' OR
I_DIVISION = '39' OR I_DIVISION = '41' OR I_DIVISION = '54' OR "高端
I_DIVISION = '45' OR
I_DIVISION = '49' OR I_DIVISION = '48' OR "20150721 新增48品牌 "LZ添加41品牌 20150814
I_DIVISION = '25'. " 25 36 品牌已经取消
E_ZJYAMOUNT = I_ZAMOUNT.
ENDIF.
ENDIF.
ELSEIF I_ZQDLX = '3'. "电商
IF I_ZZAVAGE > 270.
E_ZJYAMOUNT = I_ZAMOUNT.
ENDIF.
ELSEIF I_ZQDLX = '4'. "团购 14团购项目(团购物料属性是1、3、5、7)无论加盟仓还是直营仓
IF I_ZZTGWLSX = '01' OR
I_ZZTGWLSX = '03' OR
I_ZZTGWLSX = '05' OR
I_ZZTGWLSX = '07'.
IF I_ZZAVAGE > 360.
IF I_DIVISION = '11' OR I_DIVISION = '51' OR "20160509 51-智能家俱同罗莱
I_DIVISION = '12' OR I_DIVISION = '52' OR "20170118增加内野品牌
I_DIVISION = '15' OR
I_DIVISION = '16' OR
I_DIVISION = '17' OR
I_DIVISION = '19' OR
I_DIVISION = '20' OR I_DIVISION = '43' OR
I_DIVISION = '27' OR
I_DIVISION = '28' .
E_ZJYAMOUNT = I_ZAMOUNT.
ENDIF.
ENDIF.
IF I_ZZAVAGE > 540.
IF I_DIVISION = '13' OR
I_DIVISION = '14' OR
I_DIVISION = '21' OR
I_DIVISION = '24' OR
I_DIVISION = '31' OR
I_DIVISION = '32' OR
I_DIVISION = '36' OR
I_DIVISION = '39' OR I_DIVISION = '41' OR I_DIVISION = '54' OR "高端
I_DIVISION = '45' OR I_DIVISION = '48' OR "20150721 新增48品牌 "lz 添加部门4120150814
I_DIVISION = '49' OR
I_DIVISION = '25'.
E_ZJYAMOUNT = I_ZAMOUNT.
ENDIF.
ENDIF.
ELSEIF I_ZZTGWLSX = '02' OR "14团购订单,如果团购物料属性是2、4、8无论加盟仓还是直营仓
I_ZZTGWLSX = '04' OR
I_ZZTGWLSX = '08'.
IF I_ZZAVAGE > 30.
E_ZJYAMOUNT = I_ZAMOUNT.
ENDIF.
ENDIF.
ENDIF.
*** 20160620 取配置表中积压金额
DATA: LS_ZIFID084 TYPE /BIC/AZIFID08400.
LOOP AT ZIFID084 INTO LS_ZIFID084 WHERE /BIC/ZSYB = I_ZSYB AND /BIC/ZQDLX = I_ZQDLX AND /BIC/ZSYBQDLX = I_ZSYBQDLX AND /BIC/ZCLASSM = I_ZCLASSM.
IF I_ZZAVAGE > LS_ZIFID084-/BIC/ZDZTS.
E_ZJYAMOUNT = I_ZAMOUNT.
ENDIF.
EXIT.
ENDLOOP.
ENDFUNCTION.
- 使用ABAP指针来计算账龄
- 计算账龄代码
- ABAP 内表指针使用
- sap abap 指针的使用
- ABAP 内表指针使用
- abap 指针使用的一个小例子
- ABAP-指针
- ABAP指针
- ABAP指针
- ABAP 指针
- ABAP指针
- ABAP指针
- ABAP指针
- ABAP 使用DYNP_VALUES_READ来获取屏幕字段值
- ABAP 使用DYNP_VALUES_READ来获取屏幕字段值
- 关于ABAP指针
- ABAP中的指针
- ABAP指针(转)
- 简单的编程试水c++ 2-27
- MySQL备忘之查询篇
- Windows 7 如何锁定键盘
- 统计学习方法——感知机模型
- 垃圾收集器与内存分配策略
- 使用ABAP指针来计算账龄
- python3 爬虫学习——2
- Codeforces Round #302 (Div. 2) D
- 经典视觉跟踪算法TLD的剖析与展示
- 基于hadoop2.7.3搭建多机环境(YARN+HA)
- HDU2602 Bone Collector(DP)
- 虚拟机性能监控与故障处理工具
- c++第二次实验-7完数输出
- MySQL-Rank Scores