w_fx_finish.srw 30 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123
  1. $PBExportHeader$w_fx_finish.srw
  2. forward
  3. global type w_fx_finish from w_publ_base_style
  4. end type
  5. type cb_refresh from uo_imflatbutton within w_fx_finish
  6. end type
  7. type cb_new from uo_imflatbutton within w_fx_finish
  8. end type
  9. type cb_delete from uo_imflatbutton within w_fx_finish
  10. end type
  11. type cb_audit from uo_imflatbutton within w_fx_finish
  12. end type
  13. type cb_cancle_audit from uo_imflatbutton within w_fx_finish
  14. end type
  15. type cb_print from uo_imflatbutton within w_fx_finish
  16. end type
  17. type ddlb_status from dropdownlistbox within w_fx_finish
  18. end type
  19. type st_2 from statictext within w_fx_finish
  20. end type
  21. type em_datea from editmask within w_fx_finish
  22. end type
  23. type em_datez from editmask within w_fx_finish
  24. end type
  25. type st_3 from statictext within w_fx_finish
  26. end type
  27. type dw_fx_finish_free from datawindow within w_fx_finish
  28. end type
  29. type cb_add_mx from commandbutton within w_fx_finish
  30. end type
  31. type cb_delete_mx from commandbutton within w_fx_finish
  32. end type
  33. type cb_modify from uo_imflatbutton within w_fx_finish
  34. end type
  35. type dw_fx_finish from u_dw_rbtnfilter within w_fx_finish
  36. end type
  37. type dw_fx_finish_mx from u_dw_rbtnfilter within w_fx_finish
  38. end type
  39. end forward
  40. global type w_fx_finish from w_publ_base_style
  41. integer width = 4608
  42. integer height = 2880
  43. string title = "外协完工单"
  44. boolean maxbox = true
  45. event ue_print_finishmx ( )
  46. cb_refresh cb_refresh
  47. cb_new cb_new
  48. cb_delete cb_delete
  49. cb_audit cb_audit
  50. cb_cancle_audit cb_cancle_audit
  51. cb_print cb_print
  52. ddlb_status ddlb_status
  53. st_2 st_2
  54. em_datea em_datea
  55. em_datez em_datez
  56. st_3 st_3
  57. dw_fx_finish_free dw_fx_finish_free
  58. cb_add_mx cb_add_mx
  59. cb_delete_mx cb_delete_mx
  60. cb_modify cb_modify
  61. dw_fx_finish dw_fx_finish
  62. dw_fx_finish_mx dw_fx_finish_mx
  63. end type
  64. global w_fx_finish w_fx_finish
  65. type variables
  66. end variables
  67. forward prototypes
  68. public subroutine wf_btn_enabled ()
  69. public function integer wf_change_taborder (integer arg_taborder)
  70. public function integer wf_cus_select ()
  71. public subroutine wf_retrieve_finish ()
  72. public subroutine wf_retrieve_finish_mx (long arg_finishid)
  73. public function integer wf_send_finish (ref string arg_msg)
  74. end prototypes
  75. event ue_print_finishmx();long ll_row
  76. ll_row = dw_fx_finish.GetRow()
  77. if ll_row <= 0 then
  78. MessageBox('提示', '请先选择要打印的单据')
  79. return
  80. end if
  81. string ls_finishcode, ls_cusname, ls_sptname
  82. ls_finishcode = dw_fx_finish.Object.fxfinishcode[ll_row]
  83. ls_cusname = dw_fx_finish.Object.cusname[ll_row]
  84. ls_sptname = dw_fx_finish.Object.sptname[ll_row]
  85. datastore ds_report
  86. ds_report = create datastore
  87. ds_report.dataobject = 'dw_print_fx_finish_data'
  88. long mx_row, i
  89. for i = 1 to dw_fx_finish_mx.rowcount()
  90. mx_row = ds_report.InsertRow(0)
  91. ds_report.Object.cusname[mx_row] = ls_cusname //客户名称
  92. ds_report.Object.sptname[mx_row] = trim(ls_sptname) //供应商名称
  93. ds_report.Object.fxfinishcode[mx_row] = ls_finishcode
  94. ds_report.Object.fx_finish_mx_printid[mx_row] = dw_fx_finish_mx.Object.fx_finish_mx_printid[i]
  95. ds_report.Object.fx_sc_task_erptaskcode[mx_row] = dw_fx_finish_mx.Object.fx_sc_task_erptaskcode[i]
  96. ds_report.Object.fx_sc_task_procode[mx_row] = dw_fx_finish_mx.Object.fx_sc_task_procode[i]
  97. ds_report.Object.fx_sc_task_proname[mx_row] = dw_fx_finish_mx.Object.fx_sc_task_proname[i]
  98. ds_report.Object.fx_finish_mx_qty[mx_row] = dw_fx_finish_mx.Object.fx_finish_mx_qty[i]
  99. ds_report.Object.fx_finish_mx_mxdscrp[mx_row] = dw_fx_finish_mx.Object.fx_finish_mx_mxdscrp[i]
  100. ds_report.Object.recqty[mx_row] = ''
  101. next
  102. S_print_MSG LS_PRMSG
  103. LS_PRMSG.obj_dwNAME='dw_print_fx_finish'
  104. LS_PRMSG.SHARE_DW=ds_report
  105. LS_PRMSG.TAG_TEXT='外协完工单'
  106. LS_PRMSG.SETUP_FLAG=0
  107. LS_PRMSG.PAGECH_FLAG=1
  108. Openwithparm(w_publ_preview,LS_PRMSG)
  109. end event
  110. public subroutine wf_btn_enabled ();if dw_edit_mode OR if_modify_mode then
  111. cb_refresh.enabled = false
  112. cb_new.text = '保存'
  113. cb_new.normalpicname = "save.bmp"
  114. cb_modify.text = '放弃'
  115. cb_modify.normalpicname = "undo.bmp"
  116. cb_delete.enabled = false
  117. cb_audit.enabled = false
  118. cb_cancle_audit.enabled = false
  119. cb_print.enabled = false
  120. cb_add_mx.enabled = true
  121. cb_delete_mx.enabled = true
  122. else
  123. cb_refresh.enabled = true
  124. cb_new.text = '新建'
  125. cb_new.normalpicname = "new.bmp"
  126. cb_modify.text = '修改'
  127. cb_modify.normalpicname = "open.bmp"
  128. cb_delete.enabled = true
  129. cb_audit.enabled = true
  130. cb_cancle_audit.enabled = true
  131. cb_print.enabled = true
  132. cb_add_mx.enabled = false
  133. cb_delete_mx.enabled = false
  134. end if
  135. cb_new.of_init_draw()
  136. cb_new.of_paint()
  137. cb_new.TriggerEvent('ue_textchange')
  138. cb_modify.of_init_draw()
  139. cb_modify.of_paint()
  140. cb_modify.TriggerEvent('ue_textchange')
  141. end subroutine
  142. public function integer wf_change_taborder (integer arg_taborder);IF arg_taborder = 0 THEN
  143. dw_fx_finish_mx.SetTaborder('fx_finish_mx_qty', 0)
  144. dw_fx_finish_mx.SetTaborder('fx_finish_mx_mxdscrp', 0)
  145. ELSE
  146. dw_fx_finish_mx.SetTaborder('fx_finish_mx_qty', 20)
  147. dw_fx_finish_mx.SetTaborder('fx_finish_mx_mxdscrp', 30)
  148. END IF
  149. return 1
  150. end function
  151. public function integer wf_cus_select ();IF NOT dw_edit_mode THEN RETURN 0
  152. long ori_cuscomid, new_cuscomid, row
  153. row = dw_fx_finish_free.GetRow()
  154. ori_cuscomid = dw_fx_finish_free.Object.cuscomid[row]
  155. IF ori_cuscomid > 0 THEN
  156. IF dw_fx_finish_mx.RowCount() > 0 THEN
  157. MessageBox('','修改客户前需要先清除派工明细')
  158. RETURN 0
  159. END IF
  160. END IF
  161. s_fx_company s_tran, s_ret
  162. OpenWithParm(w_cus_ch_fx, s_tran)
  163. s_ret = Message.PowerObjectParm
  164. IF not IsNull(s_ret) then
  165. IF (s_ret.ifselect) then
  166. new_cuscomid = s_ret.comid[1]
  167. IF (ori_cuscomid <> new_cuscomid) then
  168. dw_fx_finish_mx.Reset() // 重选客户,清空明细
  169. END IF
  170. dw_fx_finish_free.Object.cuscomid[row] = new_cuscomid
  171. dw_fx_finish_free.Object.cusname[row] = s_ret.comname[1]
  172. dw_fx_finish_free.AcceptText()
  173. RETURN 1
  174. END IF
  175. END IF
  176. RETURN 0
  177. end function
  178. public subroutine wf_retrieve_finish ();long status
  179. string ls_status
  180. ls_status = Trim(ddlb_status.Text)
  181. IF ls_status = '待接收' THEN
  182. status = 0
  183. ELSEIF ls_status = '在进行' THEN
  184. status = 1
  185. ELSEIF ls_status = '已完成' THEN
  186. status = 2
  187. ELSE
  188. status = -1
  189. END IF
  190. datetime dateA, dateZ
  191. dateA = DateTime(Date(em_dateA.Text), Time(0))
  192. dateZ = DateTime(Date(em_dateZ.Text), Time('23:59:59'))
  193. string arg_msg
  194. oleobject request,response,FxFinishes,item
  195. request = FXAppCom.CreatePbDictionary()
  196. request.SetString('token', app_token_fx)
  197. request.SetInt('status', status)
  198. request.SetDateTime('begindate', dateA)
  199. request.SetDateTime('enddate', dateZ)
  200. response = FXAppCom.DoExecute('GetFxFinish', request)
  201. arg_msg = response.GetString('ErrMsg')
  202. if (arg_msg <> '') then
  203. messagebox('提示', '获取发货单列表失败,原因:' + arg_msg)
  204. return
  205. end if
  206. dw_fx_finish.Reset()
  207. dw_fx_finish_mx.Reset()
  208. dw_fx_finish.SetRedraw(false)
  209. FxFinishes = response.GetArrOfPBDictionary('FxFinishes')
  210. long i,row
  211. for i = 1 to FxFinishes.Count
  212. item = FxFinishes.GetItem(i - 1)
  213. row = dw_fx_finish.InsertRow(0)
  214. dw_fx_finish.SetItem(row, 'fxfinishid', item.GetInt('fxfinishid'))
  215. dw_fx_finish.SetItem(row, 'fxfinishcode', item.GetString('fxfinishcode'))
  216. dw_fx_finish.SetItem(row, 'cuscomid', item.GetInt('cuscomid'))
  217. dw_fx_finish.SetItem(row, 'sptcomid', item.GetInt('sptcomid'))
  218. dw_fx_finish.SetItem(row, 'status', item.GetInt('status'))
  219. dw_fx_finish.SetItem(row, 'statusstr', item.GetString('statusstr'))
  220. dw_fx_finish.SetItem(row, 'opemp', item.GetString('opemp'))
  221. dw_fx_finish.SetItem(row, 'opdate', item.GetDatetime('opdate'))
  222. dw_fx_finish.SetItem(row, 'modemp', item.GetString('modemp'))
  223. dw_fx_finish.SetItem(row, 'moddate', item.GetDatetime('moddate'))
  224. dw_fx_finish.SetItem(row, 'cusname', item.GetString('cusname'))
  225. dw_fx_finish.SetItem(row, 'auditemp', item.GetString('auditemp'))
  226. dw_fx_finish.SetItem(row, 'auditdate', item.GetDatetime('auditdate'))
  227. dw_fx_finish.SetItem(row, 'accomplishemp', item.GetString('accomplishemp'))
  228. dw_fx_finish.SetItem(row, 'accomplishdate', item.GetDatetime('accomplishdate'))
  229. dw_fx_finish.SetItem(row, 'sptname', item.GetString('sptname'))
  230. next
  231. dw_fx_finish.SetRedraw(true)
  232. if (dw_fx_finish.RowCount() > 0) then
  233. dw_fx_finish.SelectRow(0, false)
  234. dw_fx_finish.SelectRow(1, true)
  235. dw_fx_finish.SetRow(1)
  236. dw_fx_finish.post event RowFocusChanged(1)
  237. ELSE
  238. dw_fx_finish_free.Reset()
  239. dw_fx_finish_free.InsertRow(0)
  240. end if
  241. end subroutine
  242. public subroutine wf_retrieve_finish_mx (long arg_finishid);if isnull(arg_finishid) or arg_finishid <= 0 then
  243. return
  244. end if
  245. string arg_msg
  246. oleobject request, response
  247. oleobject list, item
  248. request = FXAppCom.CreatePbDictionary()
  249. request.SetString('token', app_token_fx)
  250. request.SetInt('fxfinishid', arg_finishid)
  251. response = FXAppCom.DoExecute('GetFxFinishMxByFinishid', request)
  252. arg_msg = response.GetString('ErrMsg')
  253. if (arg_msg <> '') then
  254. MessageBox('提示', '获取完工明细失败:' + arg_msg)
  255. return
  256. end if
  257. list = response.GetPBArray('FxFinishMxes')
  258. dw_fx_finish_mx.Reset()
  259. dw_fx_finish_mx.SetRedraw(false)
  260. long i,row
  261. for i = 1 to list.Count
  262. item = list.GetPBDictionary(i - 1)
  263. row = dw_fx_finish_mx.InsertRow(0)
  264. dw_fx_finish_mx.SetItem(row, 'fxtaskid', item.GetInt('fxtaskid'))
  265. dw_fx_finish_mx.SetItem(row, 'fx_finish_mx_fxfinishid', item.GetInt('fxfinishid'))
  266. dw_fx_finish_mx.SetItem(row, 'fx_finish_mx_printid', item.GetInt('printid'))
  267. dw_fx_finish_mx.SetItem(row, 'iffg', item.GetInt('iffg'))
  268. dw_fx_finish_mx.SetItem(row, 'fx_sc_task_procode', item.GetString('procode'))
  269. dw_fx_finish_mx.SetItem(row, 'fx_sc_task_proname', item.GetString('proname'))
  270. dw_fx_finish_mx.SetItem(row, 'taskqty', item.GetDouble('taskqty'))
  271. dw_fx_finish_mx.SetItem(row, 'fx_finish_mx_qty', item.GetDouble('qty'))
  272. dw_fx_finish_mx.SetItem(row, 'fx_finish_mx_comqty', item.GetDouble('comqty'))
  273. dw_fx_finish_mx.SetItem(row, 'fx_finish_mx_backqty', item.GetDouble('backqty'))
  274. dw_fx_finish_mx.SetItem(row, 'fx_finish_mx_mxdscrp', item.GetString('mxdscrp'))
  275. dw_fx_finish_mx.SetItem(row, 'fx_sc_task_mtrlcode', item.GetString('mtrlcode'))
  276. dw_fx_finish_mx.SetItem(row, 'fx_sc_task_mtrlname', item.GetString('mtrlname'))
  277. dw_fx_finish_mx.SetItem(row, 'fx_sc_task_mtrlmode', item.GetString('mtrlmode'))
  278. dw_fx_finish_mx.SetItem(row, 'fx_sc_task_unit', item.GetString('unit'))
  279. dw_fx_finish_mx.SetItem(row, 'fx_sc_task_erptaskcode', item.GetString('erptaskcode'))
  280. next
  281. dw_fx_finish_mx.SetRedraw(true)
  282. end subroutine
  283. public function integer wf_send_finish (ref string arg_msg);int rslt = 1
  284. if (dw_fx_finish_mx.RowCount() <= 0) then
  285. rslt = 0
  286. arg_msg = '没有完工明细'
  287. goto ext
  288. end if
  289. long ll_getrow, ll_finishid
  290. ll_getrow = dw_fx_finish_free.GetRow()
  291. dw_fx_finish_free.AcceptText()
  292. if if_modify_mode then
  293. ll_finishid = dw_fx_finish_free.Object.fxfinishid[ll_getrow]
  294. else
  295. ll_finishid = 0
  296. end if
  297. IF ISNULL(dw_fx_finish_free.Object.cuscomid[ll_getrow]) OR dw_fx_finish_free.Object.cuscomid[ll_getrow] = 0 THEN
  298. rslt = 0
  299. arg_msg = '请选择客户!'
  300. goto ext
  301. END IF
  302. dw_fx_finish_free.AcceptText()
  303. dw_fx_finish_mx.AcceptText()
  304. oleobject item, outware, mxs
  305. outware = FXAppCom.CreatePbDictionary()
  306. outware.SetInt('fxfinishid', ll_finishid)
  307. outware.SetInt('cuscomid', dw_fx_finish_free.Object.cuscomid[ll_getrow])
  308. mxs = FXAppCom.CreArrOfPbDictionary()
  309. long i, cnt = 0
  310. DateTime ld_now
  311. ld_now = DateTime(Today(),Now())
  312. for i = 1 to dw_fx_finish_mx.RowCount()
  313. if (dw_fx_finish_mx.Object.fx_finish_mx_qty[i] <= 0) then continue
  314. cnt ++
  315. item = FXAppCom.CreatePbDictionary()
  316. item.SetInt('fxtaskid', dw_fx_finish_mx.Object.fxtaskid[i])
  317. item.SetString('erptaskcode', dw_fx_finish_mx.Object.fx_sc_task_erptaskcode[i])
  318. item.SetDouble('qty', dw_fx_finish_mx.Object.fx_finish_mx_qty[i])
  319. item.SetString('mxdscrp', dw_fx_finish_mx.Object.fx_finish_mx_mxdscrp[i])
  320. mxs.Add(item)
  321. next
  322. if (cnt <= 0) then
  323. rslt = 0
  324. arg_msg = '没有发货数大于0的明细'
  325. goto ext
  326. end if
  327. oleobject request,response
  328. request = FXAppCom.CreatePbDictionary()
  329. request.SetString('token', app_token_fx)
  330. request.SetObject('FxFinish', outware)
  331. request.SetObject('FxFinishMxes', mxs)
  332. response = FXAppCom.DoExecute('NewFxFinish', request)
  333. arg_msg = response.GetString('ErrMsg')
  334. if (arg_msg <> '') then
  335. rslt = 0
  336. goto ext
  337. end if
  338. ext:
  339. return rslt
  340. end function
  341. on w_fx_finish.create
  342. int iCurrent
  343. call super::create
  344. this.cb_refresh=create cb_refresh
  345. this.cb_new=create cb_new
  346. this.cb_delete=create cb_delete
  347. this.cb_audit=create cb_audit
  348. this.cb_cancle_audit=create cb_cancle_audit
  349. this.cb_print=create cb_print
  350. this.ddlb_status=create ddlb_status
  351. this.st_2=create st_2
  352. this.em_datea=create em_datea
  353. this.em_datez=create em_datez
  354. this.st_3=create st_3
  355. this.dw_fx_finish_free=create dw_fx_finish_free
  356. this.cb_add_mx=create cb_add_mx
  357. this.cb_delete_mx=create cb_delete_mx
  358. this.cb_modify=create cb_modify
  359. this.dw_fx_finish=create dw_fx_finish
  360. this.dw_fx_finish_mx=create dw_fx_finish_mx
  361. iCurrent=UpperBound(this.Control)
  362. this.Control[iCurrent+1]=this.cb_refresh
  363. this.Control[iCurrent+2]=this.cb_new
  364. this.Control[iCurrent+3]=this.cb_delete
  365. this.Control[iCurrent+4]=this.cb_audit
  366. this.Control[iCurrent+5]=this.cb_cancle_audit
  367. this.Control[iCurrent+6]=this.cb_print
  368. this.Control[iCurrent+7]=this.ddlb_status
  369. this.Control[iCurrent+8]=this.st_2
  370. this.Control[iCurrent+9]=this.em_datea
  371. this.Control[iCurrent+10]=this.em_datez
  372. this.Control[iCurrent+11]=this.st_3
  373. this.Control[iCurrent+12]=this.dw_fx_finish_free
  374. this.Control[iCurrent+13]=this.cb_add_mx
  375. this.Control[iCurrent+14]=this.cb_delete_mx
  376. this.Control[iCurrent+15]=this.cb_modify
  377. this.Control[iCurrent+16]=this.dw_fx_finish
  378. this.Control[iCurrent+17]=this.dw_fx_finish_mx
  379. end on
  380. on w_fx_finish.destroy
  381. call super::destroy
  382. destroy(this.cb_refresh)
  383. destroy(this.cb_new)
  384. destroy(this.cb_delete)
  385. destroy(this.cb_audit)
  386. destroy(this.cb_cancle_audit)
  387. destroy(this.cb_print)
  388. destroy(this.ddlb_status)
  389. destroy(this.st_2)
  390. destroy(this.em_datea)
  391. destroy(this.em_datez)
  392. destroy(this.st_3)
  393. destroy(this.dw_fx_finish_free)
  394. destroy(this.cb_add_mx)
  395. destroy(this.cb_delete_mx)
  396. destroy(this.cb_modify)
  397. destroy(this.dw_fx_finish)
  398. destroy(this.dw_fx_finish_mx)
  399. end on
  400. event resize;call super::resize;int li_free_width,li_free_height
  401. li_free_width = 1426 //dw_fx_outwar_free宽度
  402. li_free_height = 1048 //dw_fx_finish_free高度
  403. //dw_fx_finish_free
  404. dw_fx_finish_free.width = li_free_width
  405. dw_fx_finish_free.height = li_free_height
  406. //dw_fx_finish
  407. dw_fx_finish.x = li_free_width + 30
  408. dw_fx_finish.y = dw_fx_finish_free.y
  409. dw_fx_finish.width = this.workspacewidth() - li_free_width
  410. dw_fx_finish.height = dw_fx_finish_free.height
  411. //cb_add_mx, cb_delete_mx
  412. cb_add_mx.x = 40
  413. cb_add_mx.y = dw_fx_finish_free.y + li_free_height + 20
  414. cb_delete_mx.x = cb_add_mx.width + 30
  415. cb_delete_mx.y = cb_add_mx.y
  416. //dw_fx_finish_mx
  417. dw_fx_finish_mx.y = cb_add_mx.y + cb_add_mx.height + 30
  418. dw_fx_finish_mx.width = this.workspacewidth()
  419. dw_fx_finish_mx.height = this.workspaceheight() - cb_add_mx.y - cb_add_mx.height - 30
  420. end event
  421. event open;call super::open;wf_movetocenter()
  422. dw_fx_finish_free.insertrow(0)
  423. ddlb_status.SelectItem(4)
  424. em_dateA.Text = String(RelativeDate(Today(), - 30))
  425. em_dateZ.Text = String(Today())
  426. wf_retrieve_finish()
  427. end event
  428. type cb_func from w_publ_base_style`cb_func within w_fx_finish
  429. boolean visible = false
  430. integer x = 1618
  431. end type
  432. type cb_exit from w_publ_base_style`cb_exit within w_fx_finish
  433. integer x = 1170
  434. end type
  435. event cb_exit::clicked;if dw_edit_mode or if_modify_mode then
  436. IF MessageBox('提示','是否放弃新建/修改,并退出?',Question! ,OKCancel! , 1 ) = 2 THEN
  437. return
  438. END IF
  439. end if
  440. close(parent)
  441. end event
  442. type ln_bar from w_publ_base_style`ln_bar within w_fx_finish
  443. end type
  444. type ln_bar2 from w_publ_base_style`ln_bar2 within w_fx_finish
  445. end type
  446. type r_bar from w_publ_base_style`r_bar within w_fx_finish
  447. integer x = 2135
  448. end type
  449. type cb_refresh from uo_imflatbutton within w_fx_finish
  450. integer width = 151
  451. integer height = 164
  452. integer taborder = 10
  453. boolean bringtotop = true
  454. string text = "刷新"
  455. string normalpicname = "refresh.bmp"
  456. integer picsize = 16
  457. toolbaralignment pic_align = alignattop!
  458. boolean border = false
  459. end type
  460. event clicked;call super::clicked;wf_retrieve_finish()
  461. end event
  462. type cb_new from uo_imflatbutton within w_fx_finish
  463. integer x = 155
  464. integer width = 165
  465. integer height = 164
  466. integer taborder = 10
  467. boolean bringtotop = true
  468. string text = "新建"
  469. string normalpicname = "new.bmp"
  470. integer picsize = 16
  471. toolbaralignment pic_align = alignattop!
  472. boolean border = false
  473. end type
  474. event clicked;call super::clicked;long rslt = 1
  475. string arg_msg
  476. if dw_edit_mode then // 新建/修改保存
  477. if wf_send_finish(ref arg_msg) = 0 then
  478. messagebox('提示', '保存失败,原因:' + arg_msg)
  479. rslt = 0
  480. goto ext
  481. end if
  482. wf_change_taborder(0)
  483. Messagebox('提示', '保存成功')
  484. wf_retrieve_finish()
  485. else
  486. long li_row
  487. dw_fx_finish.reset()
  488. li_row = dw_fx_finish.insertrow(0)
  489. dw_fx_finish_mx.reset()
  490. dw_fx_finish_free.Reset()
  491. dw_fx_finish.RowsCopy(li_row, li_row, Primary!, dw_fx_finish_free, 1, Primary!)
  492. wf_change_taborder(1)
  493. end if
  494. ext:
  495. if rslt = 1 then
  496. dw_edit_mode = Not dw_edit_mode
  497. if_modify_mode = false
  498. wf_btn_enabled()
  499. end if
  500. end event
  501. type cb_delete from uo_imflatbutton within w_fx_finish
  502. integer x = 494
  503. integer width = 165
  504. integer height = 164
  505. integer taborder = 10
  506. boolean bringtotop = true
  507. string text = "删除"
  508. string normalpicname = "delete.bmp"
  509. integer picsize = 16
  510. toolbaralignment pic_align = alignattop!
  511. boolean border = false
  512. end type
  513. event clicked;call super::clicked;long ll_row, ll_status,ll_finishid
  514. ll_row = dw_fx_finish.GetRow()
  515. IF ll_row <= 0 THEN
  516. messagebox('提示', '请选择当前行,不能删除!')
  517. RETURN
  518. end if
  519. ll_status = dw_fx_finish.Object.status[ll_row]
  520. ll_finishid = dw_fx_finish.Object.fxfinishid[ll_row]
  521. if ll_status <> 0 then
  522. messagebox('提示', '不是待审核单据,不能删除!')
  523. return
  524. end if
  525. IF MessageBox ("IF","是否确定要删除当前选中的外协完工单吗",Question!,YesNo! ) = 2 THEN RETURN
  526. oleobject request,response
  527. request = FXAppCom.CreatePbDictionary()
  528. request.SetString('token', app_token_fx)
  529. request.SetInt('dotype', 0) //删除
  530. request.SetInt('fxfinishid', ll_finishid)
  531. string arg_msg
  532. response = FXAppCom.DoExecute('ChangeFxFinisStatus', request)
  533. arg_msg = response.GetString('ErrMsg')
  534. if (arg_msg <> '') then
  535. messagebox('提示', '删除失败,' + arg_msg)
  536. else
  537. messagebox('提示', '删除成功!')
  538. wf_retrieve_finish()
  539. end if
  540. end event
  541. type cb_audit from uo_imflatbutton within w_fx_finish
  542. integer x = 663
  543. integer width = 165
  544. integer height = 164
  545. integer taborder = 10
  546. boolean bringtotop = true
  547. string text = "审核"
  548. string normalpicname = "audit.bmp"
  549. integer picsize = 16
  550. toolbaralignment pic_align = alignattop!
  551. boolean border = false
  552. end type
  553. event clicked;call super::clicked;long ll_row, ll_status, ll_finishid
  554. ll_row = dw_fx_finish.GetRow()
  555. IF ll_row <= 0 THEN
  556. messagebox('提示', '请选择当前行,不能审核!')
  557. return
  558. end if
  559. ll_status = dw_fx_finish.Object.status[ll_row]
  560. ll_finishid = dw_fx_finish.Object.fxfinishid[ll_row]
  561. if ll_status <> 0 then
  562. messagebox('提示', '不是待审核单据,不能审核!')
  563. return
  564. end if
  565. IF MessageBox ("IF","是否确定要审核当前选中的外协完工单吗",Question!,YesNo! ) = 2 THEN RETURN
  566. oleobject request,response
  567. request = FXAppCom.CreatePbDictionary()
  568. request.SetString('token', app_token_fx)
  569. request.SetInt('dotype', 1) //审核
  570. request.SetInt('fxfinishid', ll_finishid)
  571. string arg_msg
  572. response = FXAppCom.DoExecute('ChangeFxFinisStatus', request)
  573. arg_msg = response.GetString('ErrMsg')
  574. if (arg_msg <> '') then
  575. messagebox('提示', '审核失败,' + arg_msg)
  576. return
  577. else
  578. messagebox('提示', '审核成功!')
  579. wf_retrieve_finish()
  580. return
  581. end if
  582. end event
  583. type cb_cancle_audit from uo_imflatbutton within w_fx_finish
  584. integer x = 832
  585. integer width = 165
  586. integer height = 164
  587. integer taborder = 20
  588. boolean bringtotop = true
  589. string text = "撤审"
  590. string normalpicname = "caudit.bmp"
  591. integer picsize = 16
  592. toolbaralignment pic_align = alignattop!
  593. boolean border = false
  594. end type
  595. event clicked;call super::clicked;long ll_row, ll_status, ll_finishid
  596. ll_row = dw_fx_finish.GetRow()
  597. IF ll_row <= 0 THEN
  598. messagebox('提示', '请选择当前行,不能撤审!')
  599. return
  600. end if
  601. ll_status = dw_fx_finish.Object.status[ll_row]
  602. ll_finishid = dw_fx_finish.Object.fxfinishid[ll_row]
  603. if ll_status <> 1 then
  604. messagebox('提示', '不是已审核单据,不能撤审!')
  605. return
  606. end if
  607. IF MessageBox ("IF","是否确定要撤审当前选中的外协完工单吗",Question!,YesNo! ) = 2 THEN RETURN
  608. oleobject request,response
  609. request = FXAppCom.CreatePbDictionary()
  610. request.SetString('token', app_token_fx)
  611. request.SetInt('dotype', 2) //删除
  612. request.SetInt('fxfinishid', ll_finishid)
  613. string arg_msg
  614. response = FXAppCom.DoExecute('ChangeFxFinisStatus', request)
  615. arg_msg = response.GetString('ErrMsg')
  616. if (arg_msg <> '') then
  617. messagebox('提示', '撤审失败,' + arg_msg)
  618. else
  619. messagebox('提示', '撤审成功!')
  620. wf_retrieve_finish()
  621. end if
  622. end event
  623. type cb_print from uo_imflatbutton within w_fx_finish
  624. integer x = 1001
  625. integer width = 165
  626. integer height = 164
  627. integer taborder = 20
  628. boolean bringtotop = true
  629. string text = "打印"
  630. string normalpicname = "print.bmp"
  631. integer picsize = 16
  632. toolbaralignment pic_align = alignattop!
  633. boolean border = false
  634. end type
  635. event clicked;call super::clicked;if (dw_edit_mode) then return
  636. long ll_row, ll_status
  637. ll_row = dw_fx_finish.GetRow()
  638. IF ll_row <= 0 THEN
  639. messagebox('提示', '请选择当前行,不能打印!')
  640. end if
  641. ll_status = dw_fx_finish.Object.status[ll_row]
  642. if ll_status = 0 then
  643. messagebox('提示', '待审核单据,不能打印!')
  644. return
  645. end if
  646. Parent.TriggerEvent('ue_print_finishmx')
  647. end event
  648. type ddlb_status from dropdownlistbox within w_fx_finish
  649. integer x = 41
  650. integer y = 192
  651. integer width = 306
  652. integer height = 496
  653. integer taborder = 80
  654. boolean bringtotop = true
  655. integer textsize = -9
  656. integer weight = 400
  657. fontcharset fontcharset = gb2312charset!
  658. fontpitch fontpitch = variable!
  659. string facename = "宋体"
  660. long textcolor = 33554432
  661. boolean sorted = false
  662. boolean vscrollbar = true
  663. string item[] = {"待审","在途","已完成","全部"}
  664. borderstyle borderstyle = stylelowered!
  665. end type
  666. type st_2 from statictext within w_fx_finish
  667. integer x = 366
  668. integer y = 204
  669. integer width = 288
  670. integer height = 60
  671. boolean bringtotop = true
  672. integer textsize = -9
  673. integer weight = 400
  674. fontcharset fontcharset = gb2312charset!
  675. fontpitch fontpitch = variable!
  676. string facename = "宋体"
  677. long textcolor = 33554432
  678. long backcolor = 16777215
  679. string text = "发货日期从"
  680. alignment alignment = center!
  681. boolean focusrectangle = false
  682. end type
  683. type em_datea from editmask within w_fx_finish
  684. integer x = 681
  685. integer y = 192
  686. integer width = 389
  687. integer height = 84
  688. integer taborder = 90
  689. boolean bringtotop = true
  690. integer textsize = -9
  691. integer weight = 400
  692. fontcharset fontcharset = gb2312charset!
  693. fontpitch fontpitch = variable!
  694. string facename = "宋体"
  695. long textcolor = 33554432
  696. string text = "0000-00-00"
  697. borderstyle borderstyle = stylelowered!
  698. maskdatatype maskdatatype = datemask!
  699. string mask = "yyyy-mm-dd"
  700. boolean spin = true
  701. end type
  702. type em_datez from editmask within w_fx_finish
  703. integer x = 1175
  704. integer y = 192
  705. integer width = 389
  706. integer height = 84
  707. integer taborder = 100
  708. boolean bringtotop = true
  709. integer textsize = -9
  710. integer weight = 400
  711. fontcharset fontcharset = gb2312charset!
  712. fontpitch fontpitch = variable!
  713. string facename = "宋体"
  714. long textcolor = 33554432
  715. string text = "0000-00-00"
  716. borderstyle borderstyle = stylelowered!
  717. maskdatatype maskdatatype = datemask!
  718. string mask = "yyyy-mm-dd"
  719. boolean spin = true
  720. end type
  721. type st_3 from statictext within w_fx_finish
  722. integer x = 1070
  723. integer y = 208
  724. integer width = 96
  725. integer height = 48
  726. boolean bringtotop = true
  727. integer textsize = -9
  728. integer weight = 400
  729. fontcharset fontcharset = gb2312charset!
  730. fontpitch fontpitch = variable!
  731. string facename = "宋体"
  732. long textcolor = 33554432
  733. long backcolor = 16777215
  734. string text = "到"
  735. alignment alignment = center!
  736. boolean focusrectangle = false
  737. end type
  738. type dw_fx_finish_free from datawindow within w_fx_finish
  739. integer x = 37
  740. integer y = 288
  741. integer width = 1426
  742. integer height = 1048
  743. integer taborder = 30
  744. boolean bringtotop = true
  745. string title = "none"
  746. string dataobject = "dw_fx_finish_free"
  747. boolean livescroll = true
  748. borderstyle borderstyle = stylelowered!
  749. end type
  750. event doubleclicked;if (not dw_edit_mode) then return
  751. if (row <= 0) then return
  752. if dwo.Type = 'column' and dwo.Name = 'cusname' then
  753. wf_cus_select()
  754. end if
  755. end event
  756. type cb_add_mx from commandbutton within w_fx_finish
  757. integer x = 32
  758. integer y = 1356
  759. integer width = 306
  760. integer height = 84
  761. integer taborder = 30
  762. boolean bringtotop = true
  763. integer textsize = -9
  764. integer weight = 400
  765. fontcharset fontcharset = gb2312charset!
  766. fontpitch fontpitch = variable!
  767. string facename = "宋体"
  768. boolean enabled = false
  769. string text = "增明细"
  770. end type
  771. event clicked;Long currow, cuscomid
  772. currow = dw_fx_finish_free.GetRow()
  773. cuscomid = dw_fx_finish_free.Object.cuscomid[currow]
  774. IF IsNull(cuscomid) OR cuscomid = 0 THEN
  775. MessageBox('','请先选择发货客户')
  776. IF wf_cus_select() = 0 THEN RETURN
  777. cuscomid = dw_fx_finish_free.Object.cuscomid[currow]
  778. END IF
  779. datastore arg_ds
  780. arg_ds = create datastore
  781. arg_ds.DataObject = 'dw_fx_sctask_sel'
  782. OpenWithParm(w_fx_sctask_sel, cuscomid)
  783. arg_ds = Message.PowerObjectParm
  784. IF IsValid(arg_ds) THEN
  785. dw_fx_finish_mx.SetRedraw(false)
  786. long row, i
  787. string ls_findstr
  788. Datetime ld_now
  789. ld_now = DateTime(Today(),Now())
  790. for i = arg_ds.RowCount() TO 1 STEP -1
  791. //DONE:已选择过滤
  792. ls_findstr = 'fxtaskid=' + string(arg_ds.Object.fxtaskid[i])
  793. IF dw_fx_finish_mx.Find(ls_findstr,1,dw_fx_finish_mx.RowCount()) > 0 THEN
  794. continue
  795. END IF
  796. row = dw_fx_finish_mx.InsertRow(0)
  797. dw_fx_finish_mx.Object.fxtaskid[row] = arg_ds.Object.fxtaskid[i]
  798. dw_fx_finish_mx.Object.iffg[row] = arg_ds.Object.fx_sc_task_billtype[i]
  799. dw_fx_finish_mx.Object.fx_sc_task_procode[row] = arg_ds.Object.fx_sc_task_procode[i]
  800. dw_fx_finish_mx.Object.fx_sc_task_proname[row] = arg_ds.Object.fx_sc_task_proname[i]
  801. dw_fx_finish_mx.Object.taskqty[row] = arg_ds.Object.fx_sc_task_qty[i]
  802. dw_fx_finish_mx.Object.fx_finish_mx_qty[row] = arg_ds.Object.unfqty[i]
  803. dw_fx_finish_mx.Object.fx_sc_task_mtrlcode[row] = arg_ds.Object.fx_sc_task_mtrlcode[i]
  804. dw_fx_finish_mx.Object.fx_sc_task_mtrlname[row] = arg_ds.Object.fx_sc_task_mtrlname[i]
  805. dw_fx_finish_mx.Object.fx_sc_task_mtrlmode[row] = arg_ds.Object.fx_sc_task_mtrlmode[i]
  806. dw_fx_finish_mx.Object.fx_sc_task_unit[row] = arg_ds.Object.fx_sc_task_unit[i]
  807. dw_fx_finish_mx.Object.fx_sc_task_erptaskcode[row] = arg_ds.Object.fx_sc_task_erptaskcode[i]
  808. next
  809. dw_fx_finish_mx.SetRedraw(true)
  810. END IF
  811. end event
  812. type cb_delete_mx from commandbutton within w_fx_finish
  813. integer x = 347
  814. integer y = 1356
  815. integer width = 306
  816. integer height = 84
  817. integer taborder = 40
  818. boolean bringtotop = true
  819. integer textsize = -9
  820. integer weight = 400
  821. fontcharset fontcharset = gb2312charset!
  822. fontpitch fontpitch = variable!
  823. string facename = "宋体"
  824. boolean enabled = false
  825. string text = "删明细"
  826. end type
  827. event clicked;if dw_fx_finish_mx.RowCount() <= 0 then
  828. Messagebox('提示', '请先添加明细!')
  829. return
  830. end if
  831. long i, index
  832. index = 0
  833. FOR i = dw_fx_finish_mx.RowCount() TO 1 STEP -1
  834. IF dw_fx_finish_mx.Object.ch[i] = 1 THEN
  835. index++
  836. dw_fx_finish_mx.DeleteRow(0)
  837. END IF
  838. NEXT
  839. IF index = 0 THEN
  840. MessageBox('提示', '请先勾选要删除的发货明细!')
  841. END IF
  842. end event
  843. type cb_modify from uo_imflatbutton within w_fx_finish
  844. integer x = 325
  845. integer width = 165
  846. integer height = 164
  847. integer taborder = 20
  848. boolean bringtotop = true
  849. string text = "修改"
  850. string normalpicname = "open.bmp"
  851. integer picsize = 16
  852. toolbaralignment pic_align = alignattop!
  853. boolean border = false
  854. end type
  855. event clicked;call super::clicked;if dw_edit_mode then
  856. if MessageBox('提示','是否放弃新建/修改操作?',Question! ,OKCancel! , 1 ) = 1 then
  857. wf_change_taborder(0)
  858. dw_edit_mode = false
  859. if_modify_mode = false
  860. wf_btn_enabled()
  861. wf_retrieve_finish()
  862. end if
  863. else
  864. long ll_row, ll_status
  865. ll_row = dw_fx_finish.GetRow()
  866. IF ll_row <= 0 THEN
  867. messagebox('提示', '请选择当前行,不能修改!')
  868. end if
  869. ll_status = dw_fx_finish.Object.status[ll_row]
  870. if ll_status <> 0 then
  871. messagebox('提示', '不是待审核单据,不能修改!')
  872. return
  873. end if
  874. wf_change_taborder(1)
  875. dw_edit_mode = true
  876. if_modify_mode = true
  877. wf_btn_enabled()
  878. end if
  879. end event
  880. type dw_fx_finish from u_dw_rbtnfilter within w_fx_finish
  881. integer x = 1472
  882. integer y = 272
  883. integer width = 2409
  884. integer height = 1064
  885. integer taborder = 20
  886. boolean bringtotop = true
  887. boolean titlebar = true
  888. string title = "外协完工单"
  889. string dataobject = "dw_fx_finish"
  890. boolean controlmenu = true
  891. boolean maxbox = true
  892. boolean hscrollbar = true
  893. boolean vscrollbar = true
  894. boolean resizable = true
  895. boolean border = false
  896. boolean hsplitscroll = true
  897. borderstyle borderstyle = styleshadowbox!
  898. boolean rbutton_filter_use = true
  899. boolean rbutton_setposition_use = true
  900. boolean titleclick_sort_use = true
  901. boolean autosave_setlayout_use = false
  902. boolean autosave_columnvisible_use = false
  903. end type
  904. event rowfocuschanged;call super::rowfocuschanged;if dw_edit_mode then return
  905. if IsNull(currentrow) then
  906. IF THIS.rowcount() > 0 then
  907. THIS.SelectRow(0,FALSE)
  908. THIS.SelectRow(1,TRUE)
  909. THIS.setrow(1)
  910. currentrow =1
  911. end if
  912. end if
  913. if IsNull(currentrow) then return
  914. if (currentrow <= 0) then return
  915. this.SelectRow(0, false)
  916. this.SelectRow(currentrow, true)
  917. dw_fx_finish_free.Reset( )
  918. this.RowsCopy(currentrow, currentrow, Primary!, dw_fx_finish_free, 1, Primary!)
  919. long ll_finishid
  920. ll_finishid = this.Object.fxfinishid[currentrow]
  921. wf_retrieve_finish_mx(ll_finishid)
  922. end event
  923. type dw_fx_finish_mx from u_dw_rbtnfilter within w_fx_finish
  924. integer x = 27
  925. integer y = 1452
  926. integer width = 3845
  927. integer height = 948
  928. integer taborder = 20
  929. boolean bringtotop = true
  930. string dataobject = "dw_fx_finishmx"
  931. boolean hscrollbar = true
  932. boolean vscrollbar = true
  933. boolean hsplitscroll = true
  934. boolean rbutton_filter_use = true
  935. boolean rbutton_setposition_use = true
  936. boolean titleclick_sort_use = true
  937. end type
  938. event clicked;call super::clicked;if (row > 0) then
  939. this.SelectRow(0, false)
  940. this.SelectRow(row, true)
  941. end if
  942. end event