BW 转换字符空格问题
早上忙了我一早上,以前写的一个季度判断的问题,
首先是调试,不断的调试DTP。让我头晕眼花。
首先关于空格问题,我自我批评,愚蠢的定义成STRING 类型,然后相互加减出现问题。应该定义成内部的日期格式,或者数字类型。
其次找到了很多ABAP日期函数,所以一并贴出来。下面就不改了。当个教训。
http://www.sapjx.com/abap-datetime-function.html#FIMA_DATE_CREATE
loop at RESULT_PACKAGE ASSIGNING <RESULT_FIELDS> .
CLEAR <RESULT_FIELDS>-PSTNG_DATE.
<RESULT_FIELDS>-PSTNG_DATE = ''.
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.
问题:
错误一
本来应该是 20171 ,第一季度。居然明奇妙出现了 1 这个季度。
回过头来看转换里的ABAP 。
发现是 判断的问题,
if l_date = 12. -- 问题就在这里
l_year = year + 1.
endif.
调试发现应该是用L_DATE1 ,月份,而不是月日。这是个简单问题。一下发现了。改正过来。 错误一好改
错误二,就比较匪夷所思了。
发现了 ,这一句根本没有生效
CONCATENATE l_year '' INTO <RESULT_FIELDS>-CALQUARTER..
结果还是 2018
后来发现是
l_year = year + 1. l_year 有空格 2018 只是看不出来
字段 <RESULT_FIELDS>-CALQUARTER 只有五位,所以造成了这个问题。 要是改成六位 就会变成 2018 1
可以在调试里更改 成 2018 ,下面的数字就会发生变化。不一样。
更正后的代码:
loop at RESULT_PACKAGE ASSIGNING <RESULT_FIELDS> .
CLEAR <RESULT_FIELDS>-PSTNG_DATE.
<RESULT_FIELDS>-PSTNG_DATE = ''.
l_date = <RESULT_FIELDS>-PSTNG_DATE+().
l_date1 = <RESULT_FIELDS>-PSTNG_DATE+().
year = <RESULT_FIELDS>-PSTNG_DATE+(). if l_date1 = .
l_year = year + . -- 问题就在这里
CONDENSE l_year NO-GAPS. --去除空格
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.
多去换个维度思考问题。不要过于死板。总是能解决的。
BW 转换字符空格问题的更多相关文章
- Java工具类-转换字符编码
package common; /** *字符串处理公用类 */ public class DealString { /** * 转换字符编码 由“iso-8859-1”西文转换为简体中文 */ pu ...
- java日期和时间转换字符
日期和时间转换字符 字符 描述 例子 c 完整的日期和时间 Mon May 04 09:51:52 CDT 2009 F ISO 8601 格式日期 2004-02-09 D U.S. 格式日期 (月 ...
- php转换字符编码为utf-8
php转换字符编码为utf-8 function strToUtf8($str){ $encode = mb_detect_encoding($str, array("ASCII" ...
- 《BI那点儿事》数据流转换——字符映射表
特征映射转换如图展示数据流中列的特征,它的编辑界面很简单,只有一个标签界面,点击要进行映射的列,可以选择需要添加新列或需要更新的列.可以在Output Alias列中给原来的列一个别名,选择要进行的操 ...
- pojg487-3279电话号码转换(字符映射)
http://poj.grids.cn/practice/2974 注意输入中连字符可以任意添加和删除. 描述企业喜欢用容易被记住的电话号码.让电话号码容易被记住的一个办法是将它写成一个容易记住的单词 ...
- iOS NSString去除其他字符(空格回车符)
很多时候大家都需要对字符串进行处理.现在就对字符串删掉特殊字符的处理进行总结一下. 1.stringByTrimmingCharactersInSet 这个方法只能对字符串前后两个部分的特殊字符进行 ...
- [编辑器] Tab转换成空格
Notepad++: 设置 -> 首选项 -> 制表符设置 怎样设置EditPlus中Tab用空格替换http://jingyan.baidu.com/article/63f236280b ...
- 字符集转换 字符类型转换 utf-8 gb2312 url
vs默认是GB2312编码,你看到的程序源代码是,输出结果是,内部存储是, 1 如果你想改变内部存储可以用下面的这些函数 2 如果你想改变源代码的存储方式你可以用文本编辑工具修改之后重新编译 3 如果 ...
- 去掉字符空格js
1. 去掉字符串两端的空格 String.prototype.trim = function () { return this.replace(/(^\s*)|(\s*$)/g, "&quo ...
随机推荐
- 测试开发面试的Linux面试题:常用命令
Hello,大家好上次给大家介绍了vim使用方法,今天来给大家讲一讲linux系统文件命令 (1)Linux的文件系统目录配置要遵循FHS规范,规范定义的两级目录规范如下: /home ...
- [Idea]安装avtiviti插件以及 插件中文乱码
安装插件 打开IDEA,按ctrl+alt+S,打开Pluging 乱码问题 idea 安转activiti插件后,编辑流程图发现保存后中文乱码,并且idea的字符集(Settings—>Edi ...
- 【JDBC】java程序通过jdbc连接oracle数据库方法
版权声明:本文为博主原创文章(原文:blog.csdn.net/clark_xu 徐长亮的专栏).未经博主同意不得转载. https://blog.csdn.net/u011538954/articl ...
- springboot 项目跨域问题 CORS
package com.example.demo.cors; import org.springframework.context.annotation.Bean; import org.spring ...
- centos中搭建nginx环境
原文地址 安装PCRE 源码:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ cd /usr/local/src wget ftp://f ...
- iOS Application Project与OS X Application Project对于plist使用的区别
前几天因为在开源中国看到一个求源代码的问题: 模拟一个动物园系统MyZoo 1.动物园里面有三种动物:Panda,Elephant,Kangaroo 2.三种动物都有一定的数量(不止一只) 3.动物有 ...
- 系统架构师考试——程序计数器 PC, 指令寄存器IR、状态寄存器SR、通用寄存器GR
● 计算机执行程序时,在一个指令周期的过程中,为了能够从内存中读指令操作码,首先是将__(9)___的内容送到地址总线上. (9)A.程序计数器PC B.指令寄存器IR C.状态寄存器SR ...
- SpringBoot2.1.0 application.properties配置
# =================================================================== # COMMON SPRING BOOT PROPERTIE ...
- 恢复性训练day1
DP: 0/1背包一个常见的错误是没有cmax(f[i][j],f[i-1][j]) 0/1背包的拓展中有转移式的变形,以及无限数量背包,分组背包等. 可化为背包问题的一般不会太难. 数组开小,出现大 ...
- Linux 配置 SSL 证书
完整的 SSL 证书分为四个部分: CA 根证书 (root CA) 中级证书 (Intermediate Certificate) 域名证书 证书密钥 (仅由您持有) 以 COMODO Positi ...
调试发现应该是用L_DATE1 ,月份,而不是月日。这是个简单问题。一下发现了。改正过来。 错误一好改

