數值中文分離計算

2022-01-25 15:53:48 字數 1570 閱讀 2925

業務需要,成績一欄裡,有數值有文字。文字固定。

匯入sap 時,我就遇到了困難,要是關鍵指標。這個文字就錄入錯誤。要是字元型的。那麼怎麼計算了。資訊物件都不好建

按月匯入,所以服務店與時間共同構成key。這樣才不會在dso覆蓋。

解決方法:字串匯入,上傳到dso時分離出數值在新的資訊物件zcj,原來的就在zcj1。這樣兩列。

這樣用原來的列做過濾,剩下的用zcj來做計算就好。問題解決。

過程:在資料來源時其實可以不建資訊物件。設定乙個char型別就好 。資訊物件模板其實可以為空。不一定非要填寫。

建好dso,建立轉換:

我一開始想法錯誤了。我把zcj弄成純數值   ,順便以為zcj1 以為也要弄成純文字型的。其實不必,它原來就是不考核,帶一些數值沒關係。它只是記錄,不參與計算。順便過濾。都不用操作。

開始以為要徹底把一件東西分開。其實不用,只要從中原來裡分離出數值就好。因為是多出來一列。同一條資料。明白了吧。

那這樣就直接在zcj裡寫例程就好

這樣用乙個字串轉數值函式就可以把數值帶出來,字串變成0。形成新列

data: out type _ty_s_tg_1-/bic/zcj.    *定義乙個接受函式的值   (這個重要)

call

function

'zunits_string_convert

' *字元轉換的函式

exporting

units_string = source_fields-zcj1 *輸入的值

dcpfm = '

x' *型別

*mlln = 'm'

*tsnd = 't'

importing

units =out * 輸出

exceptions

invalid_type = 1

others = 2 *判斷型別

.if sy-subrc = 0

. *等於0 ,表示執行成功

result =out. *輸出數值

*implement suitable error handling here

elseif sy-subrc = 1

. * 失敗型別,表示文字不考核。零

result = 0

.elseif sy-subrc = 2

. * 其他的原因,返回一下。

raise exception type cx_rsrout_abort.

endif.

完成

linux 數值計算

root fedora14 lxg a 1 root fedora14 lxg b 3 root fedora14 lxg echo a b 4 root fedora14 lxg echo a b 4 root fedora14 lxg echo a b 4 root fedora14 lxg e...

js數值計算

var nndjh new number ndjhs val var nbyxs new number cols 2 firstchild.value var nyxszb nbyxs nndjh obj.value nyxszb.tofixed 4 100 將值轉換成數值 除計算取4位小數,再 1...

Shell 數值計算

一 整數計算 shell中 let expr能進行整數運算。這個方法很方便。很容易使用,推薦使用 的用法 表示式 示例 root localhost shell protest echo 1 2 3 root localhost shell protest echo 1 2 2 root local...