| 志翔科技有限公司後勤網 後勤等待處理訊息站,請各位成員努力消除待工區 |
| | 新增成批置換資料函數,供功能表呼叫用dw_tabx.modify_batch_evaluate(colname,mevaluatestring,condition) | |
| | 發表人 | 內容 |
---|
flying Admin
文章數 : 207 注冊日期 : 2008-11-11
| 主題: 新增成批置換資料函數,供功能表呼叫用dw_tabx.modify_batch_evaluate(colname,mevaluatestring,condition) 周一 11月 17, 2008 2:55 pm | |
| 下列指令為供MIS設定窗的 [功能表]頁的功能表子項填寫用. dw_tabx.modify_batch_evaluate(colname,mevaluatestring,condition)
說明: 將指定欄位colname,以欄位運算式mevaluatestring,針對版面上每筆資料在符合條件condition下,置換資料.不符合條件的,其指定欄位colname的內容不會被置換. mevaluatestring除了欄位運算式外,可以是SQL select 子句.
例如 dw_sub1.modify_batch_evaluate(price,price + dw_up.extraprice,item<>"" and tqty<>0) 要被置換值的欄位:price 值的公式:price + dw_up.extraprice,原單價price 加上 dw_up 表頭區的額外加價 extraprice, 執行條件:item<>"" and tqty<>0 ,品號非空白且數量>0者
例二: dw_sub1.modify_batch_evaluate(surcharge,select surcharge from icitem,surcharge,itclss where item=dw_sub1.item and itmclss=icitem.iarclss and icitem.grade=surcharge.grade and itclss.iccat=surcharge.iarclss and yymm=dw_up.ttdate,item<>"" and tqty<>0)
原始的需求用意一樣是要置換單價欄位price,但置換值為SQL子句,且置換目標為surcharge欄位 SQL子句解釋 : 根據表頭的年月yymm值,與表身的品號,到資料庫找出surcharge.
實際上操作需求是用來改變單價price的,但此SQL只會傳回單一欄位值,根據此傳回的surcharge填到版面的目標欄位surcharge,而不是直接填到price,所以必須再透過 [欄位互動].設定運算式surcharge+price, 填到真正的目標欄位price,如此便可達到用來將一種 [單價額外費用surcharge].加在price上的用意.
此例不可將mevaluatestring輸入成 price + select surcharge from icitem,surcharge,itclss where item=dw_sub1.item and itmclss=icitem.iarclss and icitem.grade=surcharge.grade and itclss.iccat=surcharge.iarclss and yymm=dw_up.ttdate 看起來是希望price與SQL子句回傳值直接相加,當成一個運算式用,但這樣系統卻會回報錯誤.
flying 在 周二 11月 18, 2008 11:33 pm 作了第 1 次修改 | |
| | | flying Admin
文章數 : 207 注冊日期 : 2008-11-11
| 主題: 回復: 新增成批置換資料函數,供功能表呼叫用dw_tabx.modify_batch_evaluate(colname,mevaluatestring,condition) 周一 11月 17, 2008 10:04 pm | |
| dw_tabx.modify_batch_evaluate(colname,mevaluatestring,condition) 與 dw_tabx.modify_batch(colname)雖都是成批置換資料,但用法有所不同.
解釋: modify_batch(colname)是針對指定欄位colname,開啟臨時問運算式的視窗,此視窗可由操作人員輸入運算式,運算式因為開放臨時輸入,具備彈性的功能,但運算式並非每個使用單位都可隨意輸入,比較需要MIS或懂資料庫欄位的人員操作,不然運算式輸入錯誤,系統可能就會因錯誤而跳開.系統因此原因跳開一樣不會被諒解,而會被操作員回報當機,並說些負面的話,但其實是自己運算式輸入錯誤而不自知. 此功能也不能加執行條件,且運算式不支援SQL子句.
dw_tabx.modify_batch_evaluate(colname,mevaluatestring,condition) 則設定封裝在功能表子項,不會問操作者問句,只會依MIS意思默默進行成批置換資料的動作.
不過相同的是,這兩指令都只是置換版面資料,並不會主動代為存檔. | |
| | | | 新增成批置換資料函數,供功能表呼叫用dw_tabx.modify_batch_evaluate(colname,mevaluatestring,condition) | |
|
| |
|