業務需要,成績一欄裡,有數值有文字。文字固定。
匯入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...