我門公司就是使用鼎新的WorkFlow ERP,關於百年序(鼎新內部如此稱呼)的問題,有詢問過鼎新的客服,甚至參加教育訓練也有問過講師,經客服的回答,發現會是一個大工程,如果 貴公司已經上線或是使用多年,因為所有單據都要用新名稱,也就是舊單據都無法使用3字元的百年序,因為舊單據的百年序無法修改。因此我門公司勢必要開會討論如何處理。
請參考
http://dscwferp.blog.ithome.com.tw/post/3156/63261
我已寫好程式
針對原舊單據, 把那些欄位資料找出來透過SQL語法更改在其前面加個 0 !
這樣是行得通了!
此程式已應用在10家客戶上了
所以沒問題的!
程式困難點在"把那些欄位資料找出來"!
除了每個單據的單號外 還有"前置單據" "參考單據" 等 關連的
都要找出來
這就是困難點!
加油喔!
請問您是鼎新顧問公司的內部人員嗎??還是外面的軟體公司!!提供的服務是免費還是收費??
是外面的軟體公司!
提供的服務 是 簽約客戶免費!
沒簽約另外報價!
有興趣msn聯繫!
所謂的簽約,是指和你們公司簽約??還是和鼎新簽約??
另外可以順便給一下MSN嗎? ^-^
謝謝~~ dscwferp
有在dcmsclub 看到同您名稱的dscwferp 所提供UPDATE 單據前頭加個"0" 的SQL語法,
問題是單據欄位長度是char(11), 要UPDATE成在原單據加個"0", 這樣子不就是變成12碼,
超出單據欄位長度定義的char(11).... ?
這樣要如何判斷與截掉單據單號中間部份那個 "0"... ??
Looking Ahead on Request
「Wish you all the best」 Thanks a lot !!
就是蠻認同 dscwferp 所言...
如果選 民國100/1/1 開新單別 改成年碼的話, 那之後 就不能 補之前單據!!
比如 民國99年的帳要結, 開新的應付單 就無法用 2碼年碼來開單了!
困擾比較多!所以建議 追朔既往 將以前單據都改掉比較好!
也就所以希望能一併把原二碼產生單據,改成099 or 098...等
Looking Ahead on Request
「Wish you all the best」 Thanks a lot !!
超出 char(11) 就要討論如何判斷與截掉單據單號中間部份那個 "0"
單號是有編碼原則
編碼原則 改成符合未來就好啊!
討論出來就可以做到!
自己依公司數據資料實際使用狀況, 找出第五位數為 "0", 去掉該位數產生Update語法
UPDATE TEST..ACPTA
SET TA002 = '0' + LEFT(TA002,4) + SUBSTRING(TA002,6,LEN(TA002)-5)
WHERE((LEFT(TA002, 1) = '9') or (LEFT(TA002, 1) = '8'))
測試 ok 原為 99070000011 更新後顯示 09907000011
恭喜!
改很簡單
但找出要改哪些欄位 就很麻煩了!
加油喔!
雖然你已經解決,但是我有相同的問題(單據號碼)再請教你
UPDATE TEST..ACPTA
SET TA002 = '0' + LEFT(TA002,4) + SUBSTRING(TA002,6,LEN(TA002)-5)
WHERE((LEFT(TA002, 1) = '9') or (LEFT(TA002, 1) = '8'))
你上面的語法是你門公司的情況,但是我門公司的狀況不一樣,以下是我們公司的單據(領料單與退料單)由於分二家公司,單號設定不同,可以請教與法該如何寫!!
Y540-00990801001 L540-990801001 領料單
Y560-990801001 L560-990801001 退料單
由於Y540已經15碼該如何去頭,另外可以個別針對單別做加0的動作嗎!請不吝指教>-<
dogolas提到:
<...(恕不刪)
AsIf::L540-990801001 領料單(年月日+序號) 9碼
ToBe::L540-09908010001 領料單(年月日+序號) 11碼
UPDATE TEST..ACPTA
SET TA002 = '0' + LEFT(TA002,6) + '0' + SUBSTRING(TA002,7,LEN(TA002)-6)
WHERE((LEFT(TA002, 1) = '9') or (LEFT(TA002, 1) = '8')) AND (TA01='L540' OR TA01='Y560' OR TA01='L560')
AsIf::L540-990801001 領料單(年月日+序號) 9碼
ToBe::L540-09908010001 領料單(年月日+序號) 10碼
UPDATE TEST..ACPTA
SET TA002 = '0' + TA002
WHERE((LEFT(TA002, 1) = '9') or (LEFT(TA002, 1) = '8')) AND (TA01='L540' OR TA01='Y560' OR TA01='L560')
超出 char(11) 就要討論如何判斷與截掉單據單號中間部份那個 "0"
單號是有編碼原則
編碼原則 改成符合未來就好啊!
討論出來就可以做到!
AsIf::Y540-00990801001 領料單(00+年月日+序號) 11碼
ToBe::Y540-0990801001 領料單(00+年月日+序號) 11碼
(不用改)