志翔科技有限公司後勤網

後勤等待處理訊息站,請各位成員努力消除待工區
 
首頁首頁  會員註冊會員註冊  登入登入  

分享 | 
 

 新增成批置換資料函數,供功能表呼叫用dw_tabx.modify_batch_evaluate(colname,mevaluatestring,condition)

向下 
發表人內容
flying
Admin
avatar

文章數 : 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 次修改
回頂端 向下
檢視會員個人資料 http://idon.666forum.net
flying
Admin
avatar

文章數 : 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意思默默進行成批置換資料的動作.

不過相同的是,這兩指令都只是置換版面資料,並不會主動代為存檔.
回頂端 向下
檢視會員個人資料 http://idon.666forum.net
 
新增成批置換資料函數,供功能表呼叫用dw_tabx.modify_batch_evaluate(colname,mevaluatestring,condition)
回頂端 
1頁(共1頁)

這個論壇的權限:無法 在這個版面回復文章
志翔科技有限公司後勤網 :: 系統主題 :: 系統架構-
前往: