志翔科技有限公司後勤網

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

分享 | 
 

 詢價單轉採購單單號問題

向下 
發表人內容
flying
Admin
avatar

文章數 : 207
注冊日期 : 2008-11-11

發表主題: 詢價單轉採購單單號問題   周五 11月 21, 2008 2:11 pm

客戶說:

詢價單...轉 採購單 時...流水編號問題...
要改成原有的...採購單流水編號.....
和上次...報價單轉訂單問題一樣...

解釋:
原本詢價單轉採購單產生的採購單號為年月日加流水號共8碼的編法
現要改成年月+加流水號共8碼的編法.
回頂端 向下
檢視會員個人資料 http://idon.666forum.net
flying
Admin
avatar

文章數 : 207
注冊日期 : 2008-11-11

發表主題: 回復: 詢價單轉採購單單號問題   周五 11月 21, 2008 2:17 pm

進入系統的詢價單,到其單據明細版面,查一下MIS設定窗-->功能表頁--> [將資料轉採購單] 的按鈕,內容為

dw_this.call(quo_to_predrvin()) //轉採購單
show_top(0) //重新整理整張單據內容

quo_to_predrvin()為自訂function,放在steelpipe_liangfeng1.pbl ,此函數由操作者按下 [詢價單明細] [將資料轉採購單]功能紐後所執行.主要進行
1.將詢價單表頭資料填入 採購單表頭,且幫此採購單自動編一個新的採購單號
2.將詢價單明細版面上面的資料抄錄給 採購單明細
3.將詢價單表頭回填 [轉採購單的單號]
4.存檔

不想轉採購的明細,操作者可以自行點選要轉的項目,選 [限點選],讓明細只出現被點選資料,之後再操作 [將資料轉採購單]的動作即可.
也可執行刪除,但不要存檔,再轉 採購單,之後關窗或原地選 [自主機重讀明細資料]即可.

程式碼內容如下,問題發生在下方紅色字的部分,此function呼叫new_no()系統函數執行編取單號的動作,修改其中參數即可達成客戶的要求.
編號部分如果不能順應客戶意思,就必須另外寫自訂function以完成客戶所指定的編號規則.

datastore dw_papertop,dw_paper
long li_this,li_totrow,li_insert,li_dealgd,li_startrow
string ls_papcode,mfty_no,mmonthno,mquono,mdealout,mprintprice,mdrv_no2,mfaxno
li_totrow=dw_focus.rowcount()
if li_totrow=0 then
 return 0
end if
mquono=dw_focus.getitemstring(1,"pap_code") //取此張詢價單號
//透過報價單號到報價表頭取客戶編號
select fty_no,dealin,faxno into :mfty_no,:mdealout,:mfaxno from quointop where pap_code=:mquono;
if mdealout<>"" then
 if messagebox("注意", "此詢價單已有轉過採購單~n~n確定要再轉採購單一次嗎?", Exclamation!, YesNo!, 2)=2 then
  return 0
 end if
end if
li_startrow=1
//宣告資料容器datastore物件並指向採購單的介面名稱,利用資料容器操作存檔動作
dw_paper=create datastore
dw_paper.dataobject="d_prein" //採購單表頭資料視窗
dw_paper.settransobject(sqlca)
dw_papertop=create datastore
dw_papertop.dataobject="d_predrvintop" //採購單明細資料視窗
dw_papertop.settransobject(sqlca)

ls_papcode=new_no("predrvin","pap_code","auto_year_month","pap_code")//(修改後的)改取得新的採購單單號

//ls_papcode=new_no("predrvin","pap_code","short_year_month_day","pap_code")//(修改前的)取得新的採購單單號


//先處理採購單表頭
dw_papertop.insertrow(0)
dw_papertop.setitem(1,"pap_code",ls_papcode) //採購單單號
dw_papertop.setitem(1,"fty_no",mfty_no)   //廠商名稱
dw_papertop.setitem(1,"quopap",mquono)  //此詢價單號(這樣採購單就可看到原來的詢價單)
dw_papertop.setitem(1,"faxno",mfaxno)   //對方單號
dw_papertop.setitem(1,"out_date",today())  //採購單日期
dw_papertop.setitem(1,"printnum",0) //印單數
dw_papertop.setitem(1,"todbet","0") //結案碼
if dw_papertop.update()=1 then //採購單表頭存檔成功
 for li_this=1 to li_totrow //將報價明細逐一填入採購單datastore物件
  li_insert=dw_paper.insertrow(0)
  dw_paper.setitem(li_insert,"pap_code",ls_papcode) //採購單單號
  dw_paper.setitem(li_insert,"gd_no",dw_focus.getitemstring(li_this,"gd_no")) //品號
  dw_paper.setitem(li_insert,"summary",dw_focus.getitemstring(li_this,"summary")) //備註
  dw_paper.setitem(li_insert,"seq",mid(string(li_this+1000),2)) //明細資料的序號
  dw_paper.setitem(li_insert,"sortuse",li_this) //明細資料的排列碼
  dw_paper.setitem(li_insert,"style",dw_focus.getitemstring(li_this,"style")) //規格
  dw_paper.setitem(li_insert,"num",dw_focus.getitemnumber(li_this,"num")) //數量
  dw_paper.setitem(li_insert,"price",dw_focus.getitemnumber(li_this,"price")) //單價
  dw_paper.setitem(li_insert,"width",dw_focus.getitemnumber(li_this,"width")) //鋼管支數
  dw_paper.setitem(li_insert,"length",dw_focus.getitemnumber(li_this,"length")) //鋼管長度
  dw_paper.setitem(li_insert,"dealnum",0) //採購已轉進貨單數,預設=0
  dw_paper.setitem(li_insert,"moddate",today()) //修改日
  dw_paper.setitem(li_insert,"opman",gs_username) //操作者名稱
  dw_paper.setitem(li_insert,"out_time",String(Now(), "hhmm")) //資料建立時間
 next
 dw_paper.update() //採購單明細存檔
 update quointop set dealin='1' where pap_code=:mquono; //通知詢價單該單已轉採購(dealin="1")
else
 messagebox("單號:"+ls_papcode,"採購表頭存檔失敗~n~n"+sqlca.sqlerrtext)
end if

destroy dw_paper; //刪除datastore物件
destroy dw_papertop;

return 1
回頂端 向下
檢視會員個人資料 http://idon.666forum.net
 
詢價單轉採購單單號問題
回頂端 
1頁(共1頁)

這個論壇的權限:無法 在這個版面回復文章
志翔科技有限公司後勤網 :: 歷史紀錄區 :: steelpipe-
前往: