BW 轉換字元空格問題

2022-01-25 14:11:59 字數 3031 閱讀 9207

早上忙了我一早上,以前寫的乙個季度判斷的問題,

首先是除錯,不斷的除錯dtp。讓我頭暈眼花。 

首先關於空格問題,我自我批評,愚蠢的定義成string 型別,然後相互加減出現問題。應該定義成內部的日期格式,或者數字型別。

其次找到了很多abap日期函式,所以一併貼出來。下面就不改了。當個教訓。

loop at result_package assigning .

clear

-pstng_date.

-pstng_date = '

20171225'.

l_date = -pstng_date+4(4

). l_date1 = -pstng_date+4(2

). year = -pstng_date+0(4

). if l_date = 12

. --錯誤一

l_year = year + 1. --錯誤二

endif.

if'0321

'<= l_date and l_date <= '

0620'.

concatenate year '2'

into

-calquarter.

elseif

'0621

'<= l_date and l_date <= '

0920'.

concatenate year '3'

into

-calquarter..

elseif

'0921

'<= l_date and l_date <= '

1220'.

concatenate year '4'

into

-calquarter..

elseif l_date <= '

0320'.

concatenate year '1'

into

-calquarter..

else

.

concatenate l_year '1'

into

-calquarter..

endif.

問題:錯誤一本來應該是 20171 ,第一季度。居然明奇妙出現了 1 這個季度。

回過頭來看轉換裡的abap 。

發現是 判斷的問題,

ifl_date= 12. 

-- 問題就在這裡

除錯發現應該是用l_date1 ,月份,而不是月日。這是個簡單問題。一下發現了。改正過來。 錯誤一好改

錯誤二,就比較匪夷所思了。

發現了 ,這一句根本沒有生效

concatenate l_year  '1'

into

-calquarter..

結果還是 2018

後來發現是

l_year = year + 1.    l_year有空格2018  只是看不出來 

字段 -calquarter 只有五位,所以造成了這個問題。 要是改成六位 就會變成 2018 1

可以在除錯裡更改 成 2018 ,下面的數字就會發生變化。不一樣。

更正後的**:
loop at result_package assigning .

clear

-pstng_date.

-pstng_date = '

20171225'.

l_date = -pstng_date+4(4

). l_date1 = -pstng_date+4(2

). year = -pstng_date+0(4

). if l_date1 = 12

. l_year = year + 1

. -- 問題就在這裡

condense l_year no-gaps.

--去除空格

endif.

if'0321

'<= l_date and l_date <= '

0620'.

concatenate year '2'

into

-calquarter.

elseif

'0621

'<= l_date and l_date <= '

0920'.

concatenate year '3'

into

-calquarter..

elseif

'0921

'<= l_date and l_date <= '

1220'.

concatenate year '4'

into

-calquarter..

elseif l_date <= '

0320'.

concatenate year '1'

into

-calquarter..

else

.

concatenate l_year '1'

into

-calquarter..

endif.

多去換個維度思考問題。不要過於死板。總是能解決的。

vc 字元轉換問題

兩個數相加,存放到第三個中 原本 int num1,num2,num3 char ch1 10 ch2 10 ch3 10 getdlgitem idc edit1 getwindowtextw ch1,10 getdlgitem idc edit2 getwindowtextw ch2,10 nu...

字元編碼轉換問題

字元編碼轉換 public class transferstreamdemo2 fr.close test 用轉換流指定編碼去讀 與平台的編碼無關 fileinputstream 指定編碼 inputstreamreader in,utf8 public void readtextdecoding2...

vim tab轉換為空格

1.設定tab的位置 set tabstop 4 2.輸入tab時自動將其轉化為空格 set expandtab 如果此時需要輸入真正的tab,則輸入ctrl v,tab,在windows下是ctrl q,tab 3.將已存在的tab都轉化為空格 retab 4.設為預設配置 142 製表符為4統一...