123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534 |
- $PBExportHeader$w_add_mtrlware.srw
- forward
- global type w_add_mtrlware from w_publ_base
- end type
- type cb_addware from uo_imflatbutton within w_add_mtrlware
- end type
- type dw_1 from datawindow within w_add_mtrlware
- end type
- end forward
- global type w_add_mtrlware from w_publ_base
- integer width = 2080
- integer height = 1616
- string title = "增加库存记录"
- boolean minbox = false
- windowtype windowtype = response!
- event ue_f8 ( )
- event ue_f9 ( )
- event ue_allowedit ( )
- cb_addware cb_addware
- dw_1 dw_1
- end type
- global w_add_mtrlware w_add_mtrlware
- type variables
- long ins_warepdbid
- long ins_storageid
- datetime ins_waredate
- s_mtrlware_noalloc_array INS_RT_STRU
- end variables
- event ue_f8();//用于选择明细内容,被F8[默认]\dw_1.doubleclicked调用
- Long child_row
- Long li_statusflag,li_woodcodeflag,li_pcodeflag
- child_row = dw_1.GetRow()
- IF Not IsValid(W_mtrldef_edit) THEN
- s_edit_index_tran s_ch_tran //传递参数使用
- s_ch_tran.if_retrieve_all = False //是否一次RETRIEVE所有行
- s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
- s_ch_tran.arg_pkid = 0 //目标定位PKID (备用)
- s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
- s_ch_tran.if_select_all = True
- s_ch_tran.b_long = -1
- s_ch_tran.c_long = ins_storageid
-
- Long chc = 1,ls_j
- dw_1.AcceptText()
- IF dw_1.GetRow() > 0 THEN s_ch_tran.arg_string_code = Trim(dw_1.Object.u_mtrldef_mtrlcode[dw_1.GetRow()])
-
-
- OpenWithParm(W_mtrldef_edit,s_ch_tran)
-
- s_mtrldef_array S_INSCUST
- s_mtrldef_array arg_s_mtrldef
- S_INSCUST = Message.PowerObjectParm
- FOR ls_j = 1 To UpperBound(S_INSCUST.mtrlid)
- IF S_INSCUST.mtrlid[ls_j] > 0 THEN
- dw_1.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.mtrlcode[ls_j]
- dw_1.Object.u_mtrldef_unit[child_row] = S_INSCUST.unit[ls_j]
- dw_1.Object.u_warepdb_mtrlid[child_row] = S_INSCUST.mtrlid[ls_j]
- dw_1.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.mtrlname[ls_j]
- dw_1.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.mtrlmode[ls_j]
-
- IF f_find_mtrl_by_id(S_INSCUST.mtrlid[ls_j],arg_s_mtrldef) = 1 THEN
- li_statusflag = arg_s_mtrldef.statusflag[1]
- li_pcodeflag = arg_s_mtrldef.pcodeflag[1]
- li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1]
- END IF
-
- dw_1.Object.u_mtrldef_statusflag[child_row] = li_statusflag
- dw_1.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag
- dw_1.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag
- END IF
- NEXT
- dw_1.SetFocus()
- This.TriggerEvent('ue_allowedit')
- END IF
- end event
- event ue_f9();
- Long uc_row
- uc_row = dw_1.GetRow()
- dw_1.AcceptText()
- IF Not IsValid(W_cust_edit) THEN
- s_edit_index_tran s_ch_tran //传递参数使用
- s_ch_tran.if_retrieve_all = False //是否一次RETRIEVE所有行
- s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
- s_ch_tran.arg_pkid = 0 //目标定位PKID (备用)
- //查询列(物料编码)部分内容,用于初步筛选
- s_ch_tran.arg_string_code = Upper(Trim(dw_1.Object.u_cust_cuscode[dw_1.GetRow()]))
-
- OpenWithParm(W_cust_edit,s_ch_tran) //调用
-
- s_custom S_INSCUST
- S_INSCUST = Message.PowerObjectParm //接受返回结构
-
- IF S_INSCUST.cusid > 0 THEN //正常返回值则可以取以下值
- dw_1.SetRedraw(False)
- dw_1.Object.u_warepdb_sptid[uc_row] = S_INSCUST.cusid
- dw_1.Object.u_cust_name[uc_row] = S_INSCUST.Name
- dw_1.Object.u_cust_cuscode[uc_row] = S_INSCUST.cuscode
- dw_1.SetRedraw(True)
-
- END IF
- END IF
- end event
- event ue_allowedit();Long Columns
- Int i
- String ls_modify_str
- Long ll_row
- Long ll_value
- Long ll_statusflag,ll_woodcodeflag,ll_pcodeflag
- String ls_status,ls_woodcode,ls_pcode
- String ls_data_type
- ll_row = dw_1.GetRow()
- IF ll_row <= 0 THEN RETURN
- Columns = Long(dw_1.Describe("DataWindow.Column.Count"))
- FOR i = 1 To Columns
- ls_modify_str = dw_1.Describe("#" + String(i) + ".name")
- ls_modify_str = Lower(ls_modify_str)
-
- IF i = 1 THEN //第1个字段,约定物料ID
- ls_data_type = dw_1.Describe(ls_modify_str+".ColType")
- IF ls_data_type = "long" THEN
- ll_value = dw_1.GetItemNumber(ll_row,ls_modify_str)
- END IF
- END IF
-
- IF Pos(ls_modify_str,'statusflag') > 0 THEN
- ls_data_type = dw_1.Describe(ls_modify_str+".ColType")
- IF ls_data_type = "long" THEN
- ll_statusflag = dw_1.GetItemNumber(ll_row,ls_modify_str)
- END IF
- END IF
-
- IF Pos(ls_modify_str,'woodcodeflag') > 0 THEN
- ls_data_type = dw_1.Describe(ls_modify_str+".ColType")
- IF ls_data_type = "long" THEN
- ll_woodcodeflag = dw_1.GetItemNumber(ll_row,ls_modify_str)
- END IF
- END IF
-
- IF Pos(ls_modify_str,'pcodeflag') > 0 THEN
- ls_data_type = dw_1.Describe(ls_modify_str+".ColType")
- IF ls_data_type = "long" THEN
- ll_pcodeflag = dw_1.GetItemNumber(ll_row,ls_modify_str)
- END IF
- END IF
-
- IF Pos(ls_modify_str,'status') > 0 And Pos(ls_modify_str,'statusflag') = 0 And Pos(ls_modify_str,'statustype') = 0 THEN
- IF Len(ls_modify_str) = Len('status') Or Pos(ls_modify_str,'_status') > 0 THEN
- IF Not (Pos(ls_modify_str,'u_saletask_status') > 0 Or &
- Pos(ls_modify_str,'u_buytask_status') > 0 Or &
- Pos(ls_modify_str,'u_order_ml_status') > 0 Or &
- Pos(ls_modify_str,'u_order_wfjg_status') > 0 Or &
- Pos(ls_modify_str,'u_rs_empinfo_status') > 0 ) THEN
- ls_status = ls_modify_str
- END IF
- END IF
- END IF
-
- IF Pos(ls_modify_str,'woodcode') > 0 And Pos(ls_modify_str,'woodcodeflag') = 0 And Pos(ls_modify_str,'woodcodetype') = 0 THEN
- IF Len(ls_modify_str) = Len('woodcode') Or Pos(ls_modify_str,'_woodcode') > 0 THEN
- ls_woodcode = ls_modify_str
- END IF
- END IF
-
- IF Pos(ls_modify_str,'pcode') > 0 And Pos(ls_modify_str,'pcodeflag') = 0 And Pos(ls_modify_str,'pcodetype') = 0 THEN
- IF Len(ls_modify_str) = Len('pcode') Or Pos(ls_modify_str,'_pcode') > 0 THEN
- ls_pcode = ls_modify_str
- END IF
- END IF
-
- NEXT
- IF ls_status <> '' THEN
- IF ll_statusflag <> 0 Or ll_value = 0 THEN
- dw_1.Modify(ls_status+".dddw.allowedit = no")
- ELSE
- dw_1.Modify(ls_status+".dddw.allowedit = yes")
- END IF
- END IF
- IF ls_woodcode <> '' THEN
- IF ll_woodcodeflag <> 0 Or ll_value = 0 THEN
- dw_1.Modify(ls_woodcode+".dddw.allowedit = no")
- ELSE
- dw_1.Modify(ls_woodcode+".dddw.allowedit = yes")
- END IF
- END IF
- IF ls_pcode <> '' THEN
- IF ll_pcodeflag <> 0 Or ll_value = 0 THEN
- dw_1.Modify(ls_pcode+".dddw.allowedit = no")
- ELSE
- dw_1.Modify(ls_pcode+".dddw.allowedit = yes")
- END IF
- END IF
- end event
- on w_add_mtrlware.create
- int iCurrent
- call super::create
- this.cb_addware=create cb_addware
- this.dw_1=create dw_1
- iCurrent=UpperBound(this.Control)
- this.Control[iCurrent+1]=this.cb_addware
- this.Control[iCurrent+2]=this.dw_1
- end on
- on w_add_mtrlware.destroy
- call super::destroy
- destroy(this.cb_addware)
- destroy(this.dw_1)
- end on
- event open;call super::open;s_edit_index_tran s_tran //传递参数使用
- s_tran = message.powerobjectparm
- if not isnull(s_tran) then
- // ins_warepdbid=s_tran.d_long
- ins_storageid=s_tran.c_long
- // ins_waredate=s_tran.arr_datetime[1]
- end if
- long ls_row
- dw_1.settransobject(sqlca)
- dw_1.retrieve( )
- ls_row=dw_1.insertrow(0)
- dw_1.object.u_warepdb_storageid[ls_row]=ins_storageid
- end event
- event close;call super::close;CLOSEWITHRETURN(THIS,INS_RT_STRU)
- end event
- type cb_func from w_publ_base`cb_func within w_add_mtrlware
- boolean visible = false
- integer x = 123
- integer y = 1388
- end type
- type cb_exit from w_publ_base`cb_exit within w_add_mtrlware
- integer x = 1682
- integer y = 1384
- end type
- type cb_addware from uo_imflatbutton within w_add_mtrlware
- integer x = 1371
- integer y = 1384
- integer width = 311
- integer height = 96
- integer taborder = 130
- boolean bringtotop = true
- end type
- event clicked;call super::clicked;Long i,rowcnt,rslt = 1
- Long ls_mtrlwareid,ls_mtrlid,ls_storageid,ls_dxflag
- String ls_mtrlcode
- String ls_plancode
- String ls_status,ls_woodcode,ls_pcode
- Decimal ls_qty,ls_cost,ls_addqty
- Long ls_cusid
- String arg_msg
- dw_1.accepttext( )
- i = dw_1.GetRow()
- ls_storageid = dw_1.Object.u_warepdb_storageid[i]
- ls_mtrlwareid = dw_1.Object.u_warepdb_mtrlwareid[i]
- ls_mtrlid = dw_1.Object.u_warepdb_mtrlid[i]
- ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[i]
- ls_plancode = dw_1.Object.u_warepdb_plancode[i]
- //ls_dxflag = dw_1.Object.u_warepdb_dxflag[i]
- ls_cusid = dw_1.Object.u_warepdb_sptid[i]
- ls_status = dw_1.Object.u_warepdb_status[i]
- ls_woodcode = dw_1.Object.u_warepdb_woodcode[i]
- ls_pcode = dw_1.Object.u_warepdb_pcode[i]
- ls_qty = dw_1.Object.u_warepdb_factqty[i]
- ls_addqty = dw_1.Object.u_warepdb_factaddqty[i]
- ls_cost = dw_1.Object.u_warepdb_cost[i]
- IF f_insert_0_mtrlware(ls_mtrlwareid,ls_mtrlid,ls_mtrlcode,ls_storageid,ls_cusid,ls_status,ls_woodcode,ls_pcode,ls_plancode,ls_cost,arg_msg) = 0 THEN
- rslt = 0
- GOTO ext
- else
- dw_1.Object.u_warepdb_mtrlwareid[i] = ls_mtrlwareid
- END IF
- INS_RT_STRU.mtrlwareid[1] = ls_mtrlwareid
- INS_RT_STRU.mtrlid[1] = ls_mtrlid
- INS_RT_STRU.plancode[1] = ls_plancode
- //INS_RT_STRU.pcode[1] = ls_pcode
- INS_RT_STRU.noallocqty[1] = ls_qty
- INS_RT_STRU.allocqty[1] = ls_addqty
- INS_RT_STRU.status[1] = ls_status
- INS_RT_STRU.woodcode[1] = ls_woodcode
- INS_RT_STRU.pcode[1] = ls_pcode
- INS_RT_STRU.u_mtrldef_mtrlname[1] = dw_1.Object.u_mtrldef_mtrlname[i]
- INS_RT_STRU.u_mtrldef_mtrlcode[1] = dw_1.Object.u_mtrldef_mtrlcode[i]
- INS_RT_STRU.u_mtrldef_unit[1] = dw_1.Object.u_mtrldef_unit[i]
- INS_RT_STRU.cost[1] = ls_cost
- INS_RT_STRU.sptid[1] = ls_cusid
- INS_RT_STRU.sptcode[1] = dw_1.Object.u_cust_cuscode[i]
- INS_RT_STRU.sptname[1] = dw_1.Object.u_cust_name[i]
- ext:
- IF rslt = 0 THEN
- MessageBox('错误',arg_msg,stopsign!,OK!)
- END IF
- CLOSE(PARENT)
- end event
- type dw_1 from datawindow within w_add_mtrlware
- event key pbm_dwnkey
- event ue_dwndropdown pbm_dwndropdown
- integer x = 50
- integer y = 40
- integer width = 1993
- integer height = 1300
- integer taborder = 10
- boolean bringtotop = true
- string title = "none"
- string dataobject = "dw_add_mtrlware"
- boolean livescroll = true
- borderstyle borderstyle = stylelowered!
- end type
- event key;String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode,ls_prdpackcode
- Long ls_mtrlid
- Decimal ls_planprice,ls_packqty
- Long li_statusflag,li_woodcodeflag,li_pcodeflag
- Long child_row
- Long ls_null
- SetNull(ls_null)
- If (KeyDown(KeyEnter!) Or KeyDown(KeyTab!)) And Not KeyDown(KeyControl!) And Not KeyDown(KeyShift!) THEN
- IF This.GetColumnName() = 'u_mtrldef_mtrlcode' THEN
- This.AcceptText()
- child_row = This.GetRow()
-
- ls_mtrlcode = This.Object.u_mtrldef_mtrlcode[child_row]
-
- SELECT u_mtrldef.mtrlid,
- u_mtrldef.mtrlname,
- u_mtrldef.unit,
- u_mtrldef.planprice,
- u_mtrldef.mtrlmode,
- u_mtrldef.prdpackcode,
- u_mtrldef.packqty,
- u_mtrldef.statusflag,
- u_mtrldef.woodcodeflag,
- u_mtrldef.pcodeflag
- INTO :ls_mtrlid,:ls_mtrlname,:ls_unit,:ls_planprice,
- :ls_mtrlmode,:ls_prdpackcode,:ls_packqty,:li_statusflag,:li_woodcodeflag,:li_pcodeflag
- FROM u_mtrldef
- Where ( u_mtrldef.mtrlcode = :ls_mtrlcode);
-
- IF sqlca.SQLCode = 100 THEN
- Parent.TriggerEvent('ue_f8')
- RETURN
- END IF
-
- This.Object.u_warepdb_mtrlid[child_row] = ls_mtrlid
- This.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
- This.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
- This.Object.u_mtrldef_unit[child_row] = ls_unit
- This.Object.u_mtrldef_statusflag[child_row] = li_statusflag
- This.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag
- This.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag
-
- Parent.TriggerEvent('ue_allowedit')
- IF Key = KeyEnter! THEN
- keybd_event ( 9, 0, 0 , 0 ) // 按下tab
- keybd_event ( 9, 0, 2, 0 ) // 释放tab
- RETURN 1
- END IF
- ELSEIF dw_1.GetColumnName ( ) = 'u_cust_cuscode' And Key = KeyEnter! THEN
- String ls_code,ls_name,ls_find_code
- Long ls_cusid
- Long cnt = 0
- Boolean if_find = False
-
- dw_1.AcceptText()
- ls_code = Upper(Trim(dw_1.Object.u_cust_cuscode[dw_1.GetRow()]))
- SELECT u_cust.cusid,
- u_cust.name,
- u_cust.cuscode
- INTO :ls_cusid,:ls_name,:ls_code
- FROM u_cust
- Where ( cuscode = :ls_code Or Name = :ls_code );
- IF sqlca.SQLCode <> 0 THEN
- IF Pos(Trim(ls_code),'%') = 0 THEN
- ls_find_code = '%'+ Trim(ls_code) + '%'
- ELSE
- ls_find_code = Trim(ls_code)
- END IF
-
- SELECT count(*) INTO :cnt
- FROM u_cust
- Where ( cuscode Like :ls_find_code Or Name Like :ls_find_code );
- IF sqlca.SQLCode <> 0 THEN
- Parent.TriggerEvent('ue_f9')
- RETURN 1
- END IF
- IF cnt <> 1 THEN
- Parent.TriggerEvent('ue_f9')
- RETURN 1
- ELSE
- SELECT u_cust.cusid,
- u_cust.cuscode,
- u_cust.name
- INTO :ls_cusid,:ls_code,:ls_name
- FROM u_cust
- Where ( cuscode Like :ls_find_code Or Name Like :ls_find_code );
- IF sqlca.SQLCode <> 0 THEN
-
- Parent.TriggerEvent('ue_f9')
- RETURN 1
- ELSE
- if_find = True
- END IF
- END IF
- ELSE
- if_find = True
- END IF
-
- IF if_find THEN
- dw_1.SetRedraw(False)
- dw_1.Object.u_warepdb_sptid[dw_1.GetRow()] = ls_cusid
- dw_1.Object.u_cust_cuscode[dw_1.GetRow()] = ls_code
- dw_1.Object.u_cust_name[dw_1.GetRow()] = ls_name
- dw_1.SetRedraw(True)
- dw_1.SetColumn("indate")
- RETURN 1
- END IF
- ELSE
- IF Key = KeyEnter! THEN
- keybd_event ( 9, 0, 0 , 0 ) // 按下tab
- keybd_event ( 9, 0, 2, 0 ) // 释放tab
- RETURN 1
- END IF
-
- END IF
- END IF
- end event
- event ue_dwndropdown;//IF NOT dw_edit_mode THEN RETURN
- String ls_col_pz,ls_col_mtrlid
- String ls_pz_ch
- String ls_col_value
- String ls_data_type
- Long ll_row,ll_mtrlid
- s_pzwin_open arg_s_win
- ll_row = THIS.GetRow()
- IF ll_row > 0 THEN
- ls_col_mtrlid = THIS.Describe("#1.Name")
-
- IF NOT Pos(Lower(ls_col_mtrlid),'mtrlid') > 0 THEN RETURN
-
- ll_mtrlid = THIS.GetItemNumber(ll_row,ls_col_mtrlid)
-
- ls_col_pz = THIS.GetColumnName( )
-
- ls_data_type = this.Describe(ls_col_pz+".ColType")
- IF Pos(Lower(ls_data_type),"char") > 0 THEN
- ls_col_value = THIS.GetItemString(ll_row,ls_col_pz)
- END IF
-
- arg_s_win.arg_x = THIS.X + THIS.PointerX() + PARENT.X
- arg_s_win.arg_y = THIS.Y + THIS.PointerY() + PARENT.Y
-
- arg_s_win.arg_col = ls_col_pz
- arg_s_win.arg_mtrlid = ll_mtrlid
- arg_s_win.arg_col_value = ls_col_value
-
- ls_pz_ch = f_mtrl_pz(arg_s_win)
-
- IF ls_pz_ch = '' THEN RETURN
-
- THIS.SetItem(ll_row,ls_col_pz,ls_pz_ch)
- END IF
- end event
- event doubleclicked;choose case dwo.name
- case 'u_mtrldef_mtrlcode'
- parent.triggerevent('ue_f8')
- case 'u_cust_cuscode'
- parent.triggerevent('ue_f9')
- end choose
- end event
- event clicked;CHOOSE CASE dwo.Name
- CASE 'b_mtrl'
- PARENT.TriggerEvent('ue_f8')
- CASE 'b_cust'
- PARENT.TriggerEvent('ue_f9')
- END CHOOSE
- end event
- event constructor;f_title_change(this)
- end event
|