w_buytask_fx.srw 39 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324
  1. $PBExportHeader$w_buytask_fx.srw
  2. $PBExportComments$分销系统窗体(采购订单)
  3. forward
  4. global type w_buytask_fx from w_publ_base_style
  5. end type
  6. type cb_retrieve from uo_imflatbutton within w_buytask_fx
  7. end type
  8. type cb_neworsave from uo_imflatbutton within w_buytask_fx
  9. end type
  10. type cb_editorundo from uo_imflatbutton within w_buytask_fx
  11. end type
  12. type cb_del from uo_imflatbutton within w_buytask_fx
  13. end type
  14. type em_pagesize from editmask within w_buytask_fx
  15. end type
  16. type cb_toppage from uo_imflatbutton within w_buytask_fx
  17. end type
  18. type st_1 from statictext within w_buytask_fx
  19. end type
  20. type ddlb_status from dropdownlistbox within w_buytask_fx
  21. end type
  22. type st_2 from statictext within w_buytask_fx
  23. end type
  24. type em_datea from editmask within w_buytask_fx
  25. end type
  26. type st_3 from statictext within w_buytask_fx
  27. end type
  28. type em_datez from editmask within w_buytask_fx
  29. end type
  30. type cb_page_ch from uo_imflatbutton within w_buytask_fx
  31. end type
  32. type st_4 from statictext within w_buytask_fx
  33. end type
  34. type sle_likestr from u_sleedit within w_buytask_fx
  35. end type
  36. type dw_buytask from datawindow within w_buytask_fx
  37. end type
  38. type dw_buytask_list from u_dw_rbtnfilter within w_buytask_fx
  39. end type
  40. type tab_1 from tab within w_buytask_fx
  41. end type
  42. type tabpage_1 from userobject within tab_1
  43. end type
  44. type cb_delmx from commandbutton within tabpage_1
  45. end type
  46. type cb_addmx from commandbutton within tabpage_1
  47. end type
  48. type dw_buytaskmx from u_dw_rbtnfilter within tabpage_1
  49. end type
  50. type tabpage_1 from userobject within tab_1
  51. cb_delmx cb_delmx
  52. cb_addmx cb_addmx
  53. dw_buytaskmx dw_buytaskmx
  54. end type
  55. type tab_1 from tab within w_buytask_fx
  56. tabpage_1 tabpage_1
  57. end type
  58. type cb_send from uo_imflatbutton within w_buytask_fx
  59. end type
  60. end forward
  61. global type w_buytask_fx from w_publ_base_style
  62. integer width = 4119
  63. integer height = 2660
  64. string title = "采购订单"
  65. boolean maxbox = true
  66. boolean resizable = true
  67. long backcolor = 16777215
  68. string icon = "graphics\chain_link_128px.ico"
  69. event ue_page_next ( )
  70. event ue_page_before ( )
  71. event ue_page_end ( )
  72. cb_retrieve cb_retrieve
  73. cb_neworsave cb_neworsave
  74. cb_editorundo cb_editorundo
  75. cb_del cb_del
  76. em_pagesize em_pagesize
  77. cb_toppage cb_toppage
  78. st_1 st_1
  79. ddlb_status ddlb_status
  80. st_2 st_2
  81. em_datea em_datea
  82. st_3 st_3
  83. em_datez em_datez
  84. cb_page_ch cb_page_ch
  85. st_4 st_4
  86. sle_likestr sle_likestr
  87. dw_buytask dw_buytask
  88. dw_buytask_list dw_buytask_list
  89. tab_1 tab_1
  90. cb_send cb_send
  91. end type
  92. global w_buytask_fx w_buytask_fx
  93. type variables
  94. boolean if_edit_mode = false
  95. long ins_cur_pageNum = 1 // 用于记录当前页码
  96. long ins_totalPages = 1 // 用于记录总页数
  97. datawindow dw_buytaskmx
  98. uo_fx_pz uo_pz // 协同配置UO
  99. end variables
  100. forward prototypes
  101. public subroutine wf_face_btn ()
  102. public function integer wf_retrieve_saletask ()
  103. public function integer wf_retrieve_saletaskmx (readonly long arg_taskid)
  104. public subroutine wf_taborder ()
  105. public subroutine wf_add_saletask ()
  106. public function integer wf_save_saletask (ref string arg_msg)
  107. public function long wf_del_saletask (readonly long arg_taskid)
  108. end prototypes
  109. event ue_page_next();if (ins_cur_pageNum + 1 > ins_totalPages) then
  110. MessageBox('提示', '已到最后一页')
  111. return
  112. end if
  113. ins_cur_pageNum ++
  114. wf_retrieve_saletask( )
  115. end event
  116. event ue_page_before();if (ins_cur_pageNum = 1) then
  117. MessageBox('提示', '已经是第一页')
  118. return
  119. end if
  120. ins_cur_pageNum --
  121. wf_retrieve_saletask( )
  122. end event
  123. event ue_page_end();if (ins_cur_pageNum = ins_totalPages) then
  124. MessageBox('提示', '已到最后一页')
  125. return
  126. end if
  127. ins_cur_pageNum = ins_totalPages
  128. wf_retrieve_saletask( )
  129. end event
  130. public subroutine wf_face_btn ();if if_edit_mode then // 修改状态
  131. cb_retrieve.Enabled = false
  132. cb_neworsave.Enabled = true // 保存
  133. cb_neworsave.Text = '保存&S'
  134. cb_neworsave.normalpicname = 'Save.bmp'
  135. //cb_editorundo.Enabled = true // 撤销
  136. cb_editorundo.Text = '放弃&E'
  137. cb_editorundo.normalpicname = 'Undo.bmp'
  138. cb_del.Enabled = false
  139. cb_send.Enabled = false
  140. cb_exit.Enabled = false
  141. em_pagesize.Enabled = false
  142. cb_toppage.Enabled = false
  143. cb_page_ch.Enabled = false
  144. ddlb_status.Enabled = false
  145. em_datea.Enabled = false
  146. em_datez.Enabled = false
  147. tab_1.tabpage_1.cb_addmx.Enabled = true // 增明细
  148. tab_1.tabpage_1.cb_delmx.Enabled = true // 删明细
  149. else // 浏览状态
  150. cb_retrieve.Enabled = true
  151. cb_neworsave.Enabled = true
  152. cb_neworsave.Text = '新建&S'
  153. cb_neworsave.normalpicname = 'new.bmp'
  154. //cb_editorundo.Enabled = true
  155. cb_editorundo.Text = '修改&E'
  156. cb_editorundo.normalpicname = 'open.bmp'
  157. //cb_del.Enabled = true
  158. cb_exit.Enabled = true
  159. em_pagesize.Enabled = true
  160. cb_toppage.Enabled = true
  161. cb_page_ch.Enabled = true
  162. ddlb_status.Enabled = true
  163. em_datea.Enabled = true
  164. em_datez.Enabled = true
  165. tab_1.tabpage_1.cb_addmx.Enabled = false
  166. tab_1.tabpage_1.cb_delmx.Enabled = false
  167. end if
  168. cb_neworsave.of_init_draw()
  169. cb_neworsave.of_paint()
  170. cb_neworsave.TriggerEvent('ue_textchange')
  171. cb_editorundo.of_init_draw()
  172. cb_editorundo.of_paint()
  173. cb_editorundo.TriggerEvent('ue_textchange')
  174. end subroutine
  175. public function integer wf_retrieve_saletask ();int rslt = 1
  176. string arg_msg
  177. long pageSize
  178. pageSize = Integer(em_pagesize.Text)
  179. if (pageSize <= 0) then
  180. rslt = 0
  181. arg_msg = '每页显示行数必须大于0'
  182. em_pagesize.SetFocus( )
  183. em_pagesize.SelectText(1, Len(em_pagesize.Text))
  184. goto ext
  185. end if
  186. long pageNum
  187. pageNum = ins_cur_pageNum
  188. long status
  189. long ll_pos
  190. ll_pos = Pos(ddlb_status.Text, '[')
  191. if (ll_pos <= 0) then
  192. status = -1
  193. else
  194. status = Long(Mid(ddlb_status.Text, ll_pos + 1, Len(ddlb_status.Text) - ll_pos - 1))
  195. end if
  196. datetime dateA, dateZ
  197. dateA = DateTime(Date(em_dateA.Text), Time(0))
  198. dateZ = DateTime(Date(em_dateZ.Text), Time('23:59:59'))
  199. string likeStr
  200. likeStr = Trim(sle_likestr.Text)
  201. oleobject rsp
  202. rsp = FXAppCom.GetBuytask(app_token_fx, pageSize, pageNum, status, String(dateA), String(dateZ), likeStr, ref arg_msg)
  203. if (arg_msg <> '') then
  204. rslt = 0
  205. goto ext
  206. end if
  207. dw_buytask_list.Reset( )
  208. dw_buytask.Reset( )
  209. dw_buytaskmx.Reset( )
  210. dw_buytask_list.SetRedraw(false)
  211. long i, row
  212. ins_totalPages = rsp.GetInt('totalpages')
  213. oleobject list, item
  214. list = rsp.GetArrOfPBDictionary('list')
  215. for i = 1 to list.Count
  216. item = list.GetItem(i - 1)
  217. row = dw_buytask_list.InsertRow(0)
  218. long taskidd
  219. taskidd = item.GetInt('taskid')
  220. dw_buytask_list.Object.taskid[row] = item.GetInt('taskid') // 订单ID int
  221. dw_buytask_list.Object.tid[row] = item.GetString('tid') // 云端订单编号 varchar(50)
  222. dw_buytask_list.Object.taskdate[row] = item.GetDateTime('taskdate') // 下单日期 datetime
  223. dw_buytask_list.Object.sptcomid[row] = item.GetInt('sptcomid') // 卖方企业ID int
  224. dw_buytask_list.Object.cuscomid[row] = item.GetInt('cuscomid') // 买方企业ID int
  225. dw_buytask_list.Object.cus_rep[row] = item.GetString('cus_rep') // 收货人 varchar(30)
  226. dw_buytask_list.Object.cus_tele[row] = item.GetString('cus_tele') // 联系电话 varchar(100)
  227. dw_buytask_list.Object.cus_address[row] = item.GetString('cus_address') // 收货地址 varchar(255)
  228. dw_buytask_list.Object.freight[row] = item.GetString('freight') // 货运部 varchar(50)
  229. dw_buytask_list.Object.freight_tele[row] = item.GetString('freight_tele') // 货运部电话 varchar(50)
  230. dw_buytask_list.Object.opemp[row] = item.GetString('opemp') // 建立人 varchar(255)
  231. dw_buytask_list.Object.opdate[row] = item.GetDateTime('opdate') // 建立时间 datetime
  232. dw_buytask_list.Object.modemp[row] = item.GetString('modemp') // 修改人 varchar(255)
  233. if (not IsNull(item.GetDateTime('moddate'))) then
  234. dw_buytask_list.Object.moddate[row] = item.GetDateTime('moddate') // 修改时间 datetime
  235. end if
  236. dw_buytask_list.Object.buyer_name[row] = item.GetString('buyer_name') // 客户名称 varchar(30)
  237. dw_buytask_list.Object.buyer_tele[row] = item.GetString('buyer_tele') // 客户电话 varchar(100)
  238. if (not IsNull(item.GetDateTime('requiredate'))) then
  239. dw_buytask_list.Object.requiredate[row] = item.GetDateTime('requiredate') // 要求交期 datetime
  240. end if
  241. dw_buytask_list.Object.temp1[row] = item.GetString('temp1') // 备注 dscrp varchar(255)
  242. dw_buytask_list.Object.temp2[row] = item.GetString('temp2') // 生产备注 dscrp2 varchar(255)
  243. dw_buytask_list.Object.temp3[row] = item.GetString('temp3') // 辅助备注 dscrp3 varchar(255)
  244. dw_buytask_list.Object.temp4[row] = item.GetString('temp4') // 自定义4 varchar(255)
  245. dw_buytask_list.Object.temp5[row] = item.GetString('temp5') // 自定义5 varchar(255)
  246. dw_buytask_list.Object.temp6[row] = item.GetString('temp6') // 自定义6 varchar(255)
  247. dw_buytask_list.Object.price_emp[row] = item.GetString('price_emp') // 报价人 varchar(255)
  248. if (not IsNull(item.GetDateTime('replyrqdate'))) then
  249. dw_buytask_list.Object.replyrqdate[row] = item.GetDateTime('replyrqdate') // 回复交期 datetime
  250. end if
  251. dw_buytask_list.Object.replydscrp[row] = item.GetString('replydscrp') // 审核意见 varchar(255)
  252. if (not IsNull(item.GetDateTime('replydate'))) then
  253. dw_buytask_list.Object.replydate[row] = item.GetDateTime('replydate') // 回复时间 datetime
  254. end if
  255. dw_buytask_list.Object.confirmemp[row] = item.GetString('confirmemp') // 下单人 varchar(255)
  256. if (not IsNull(item.GetDateTime('confirmdate'))) then
  257. dw_buytask_list.Object.confirmdate[row] = item.GetDateTime('confirmdate') // 下单时间 datetime
  258. end if
  259. dw_buytask_list.Object.status[row] = item.GetInt('status') // 订单状态 tinyint
  260. dw_buytask_list.Object.taskcode[row] = item.GetString('taskcode') // ERP订单编号 varchar(30)
  261. dw_buytask_list.Object.outwarecode[row] = item.GetString('outwarecode') // ERP发货单编号 varchar(30)
  262. dw_buytask_list.Object.fstatus[row] = item.GetInt('fstatus') // 工厂进度 int
  263. dw_buytask_list.Object.myrelcode[row] = item.GetString('relcode')
  264. dw_buytask_list.Object.sptname[row] = item.GetString('comname')
  265. next
  266. dw_buytask_list.SetRedraw(true)
  267. ext:
  268. if (rslt = 1) then
  269. if (dw_buytask_list.RowCount() > 0) then
  270. dw_buytask_list.SelectRow(0, false)
  271. dw_buytask_list.SelectRow(1, true)
  272. dw_buytask_list.SetRow(1)
  273. dw_buytask_list.Trigger Event RowFocusChanged(1)
  274. end if
  275. else
  276. MessageBox('提示', arg_msg)
  277. end if
  278. return rslt
  279. end function
  280. public function integer wf_retrieve_saletaskmx (readonly long arg_taskid);int rslt = 1
  281. if (IsNull(arg_taskid)) then return 0
  282. string arg_msg = ''
  283. oleobject list
  284. list = FXAppCom.GetBuytaskmx(app_token_fx, arg_taskid, ref arg_msg)
  285. if (arg_msg <> '') then
  286. rslt = 0
  287. MessageBox('提示', '获取订单明细有误:' + arg_msg)
  288. goto ext
  289. end if
  290. dw_buytaskmx.SetRedraw(false)
  291. dw_buytaskmx.Reset( )
  292. long i
  293. oleobject item
  294. for i = 1 to list.Count
  295. item = list.GetItem(i - 1)
  296. dw_buytaskmx.Object.taskid[i] = item.GetInt('taskid')
  297. dw_buytaskmx.Object.printid[i] = item.GetInt('printid')
  298. dw_buytaskmx.Object.mxcode[i] = item.GetString('mxcode')
  299. dw_buytaskmx.Object.fxmtrlid[i] = item.GetInt('fxmtrlid')
  300. dw_buytaskmx.Object.mtrlid[i] = item.GetInt('mtrlid')
  301. dw_buytaskmx.Object.mtrlcode[i] = item.GetString('mtrlcode')
  302. dw_buytaskmx.Object.mtrlname[i] = item.GetString('mtrlname')
  303. dw_buytaskmx.Object.status[i] = item.GetString('status')
  304. dw_buytaskmx.Object.woodcode[i] = item.GetString('woodcode')
  305. dw_buytaskmx.Object.pcode[i] = item.GetString('pcode')
  306. dw_buytaskmx.Object.qty[i] = item.GetDouble('qty')
  307. dw_buytaskmx.Object.cus_receiveqty[i] = item.GetDouble('cus_receiveqty')
  308. dw_buytaskmx.Object.price[i] = item.GetDouble('price')
  309. dw_buytaskmx.Object.mxdscrp[i] = item.GetString('mxdscrp')
  310. dw_buytaskmx.Object.mxdscrp2[i] = item.GetString('mxdscrp2')
  311. dw_buytaskmx.Object.mtrlcuscode[i] = item.GetString('mtrlcuscode')
  312. next
  313. dw_buytaskmx.SetRedraw(true)
  314. ext:
  315. return rslt
  316. end function
  317. public subroutine wf_taborder ();if if_edit_mode then
  318. dw_buytask.SetTabOrder('requiredate', 10)
  319. dw_buytask.SetTabOrder('cus_rep', 20)
  320. dw_buytask.SetTabOrder('cus_tele', 30)
  321. dw_buytask.SetTabOrder('cus_address', 40)
  322. dw_buytask.SetTabOrder('freight', 50)
  323. dw_buytask.SetTabOrder('freight_tele', 60)
  324. dw_buytask.SetTabOrder('buyer_name', 70)
  325. dw_buytask.SetTabOrder('buyer_tele', 80)
  326. dw_buytask.SetTabOrder('temp1', 90)
  327. dw_buytask.SetTabOrder('temp2', 100)
  328. dw_buytask.SetTabOrder('temp3', 110)
  329. dw_buytaskmx.SetTabOrder('qty', 10)
  330. dw_buytaskmx.SetTabOrder('price', 10)
  331. dw_buytaskmx.SetTabOrder('mxdscrp', 10)
  332. dw_buytaskmx.SetTabOrder('mxdscrp2', 10)
  333. dw_buytaskmx.SetTabOrder('mtrlcuscode', 10)
  334. else
  335. dw_buytask.SetTabOrder('requiredate', 0)
  336. dw_buytask.SetTabOrder('cus_rep', 0)
  337. dw_buytask.SetTabOrder('cus_tele', 0)
  338. dw_buytask.SetTabOrder('cus_address', 0)
  339. dw_buytask.SetTabOrder('freight', 0)
  340. dw_buytask.SetTabOrder('freight_tele', 0)
  341. dw_buytask.SetTabOrder('buyer_name', 0)
  342. dw_buytask.SetTabOrder('buyer_tele', 0)
  343. dw_buytask.SetTabOrder('temp1', 0)
  344. dw_buytask.SetTabOrder('temp2', 0)
  345. dw_buytask.SetTabOrder('temp3', 0)
  346. dw_buytaskmx.SetTabOrder('qty', 0)
  347. dw_buytaskmx.SetTabOrder('price', 0)
  348. dw_buytaskmx.SetTabOrder('mxdscrp', 0)
  349. dw_buytaskmx.SetTabOrder('mxdscrp2', 0)
  350. dw_buytaskmx.SetTabOrder('mtrlcuscode', 0)
  351. end if
  352. end subroutine
  353. public subroutine wf_add_saletask ();long row
  354. dw_buytask_list.SelectRow(0, false)
  355. row = dw_buytask_list.InsertRow(0)
  356. //dw_buytask_list.Trigger Event RowFocusChanged(row)
  357. dw_buytask.Reset( )
  358. dw_buytaskmx.Reset( )
  359. long row_main
  360. row_main = dw_buytask.InsertRow(0)
  361. dw_buytask.Object.taskid[row_main] = 0
  362. dw_buytask.Object.tid[row_main] = ''
  363. dw_buytask.Object.taskdate[row_main] = Today()
  364. dw_buytask.Object.sptcomid[row_main] = 0
  365. dw_buytask.Object.cuscomid[row_main] = 0
  366. dw_buytask.Object.cus_rep[row_main] = app_username
  367. dw_buytask.Object.cus_tele[row_main] = app_tele
  368. dw_buytask.Object.cus_address[row_main] = app_address
  369. dw_buytask.Object.freight[row_main] = app_freight
  370. dw_buytask.Object.freight_tele[row_main] = app_freight_tele
  371. dw_buytask.Object.opemp[row_main] = app_username
  372. dw_buytask.Object.opdate[row_main] = Datetime(Today(), Now())
  373. dw_buytask.Object.modemp[row_main] = ''
  374. //dw_buytask.Object.moddate[row_main] = null
  375. dw_buytask.Object.buyer_name[row_main] = app_comname
  376. dw_buytask.Object.buyer_tele[row_main] = app_comtele
  377. dw_buytask.Object.requiredate[row_main] = Today()
  378. dw_buytask.Object.temp1[row_main] = ''
  379. dw_buytask.Object.temp2[row_main] = ''
  380. dw_buytask.Object.temp3[row_main] = ''
  381. dw_buytask.Object.temp4[row_main] = ''
  382. dw_buytask.Object.temp5[row_main] = ''
  383. dw_buytask.Object.temp6[row_main] = ''
  384. dw_buytask.Object.price_emp[row_main] = ''
  385. //dw_buytask.Object.replyrqdate[row_main] = ''
  386. dw_buytask.Object.replydscrp[row_main] = ''
  387. //dw_buytask.Object.replydate[row_main] = ''
  388. dw_buytask.Object.confirmemp[row_main] = app_username
  389. dw_buytask.Object.confirmdate[row_main] = Datetime(Today(), Now())
  390. dw_buytask.Object.status[row_main] = 0
  391. dw_buytask.Object.taskcode[row_main] = ''
  392. dw_buytask.Object.outwarecode[row_main] = ''
  393. dw_buytask.Object.fstatus[row_main] = 0
  394. dw_buytask.Object.myrelcode[row_main] = app_myrelcode
  395. cb_editorundo.Enabled = true
  396. end subroutine
  397. public function integer wf_save_saletask (ref string arg_msg);int rslt = 1
  398. rslt = dw_buytask.AcceptText()
  399. rslt = dw_buytaskmx.AcceptText()
  400. // 检查
  401. long row_main
  402. row_main = dw_buytask.GetRow( )
  403. if (row_main <= 0) then
  404. rslt = 0
  405. arg_msg = '没有新建订单'
  406. goto ext
  407. end if
  408. long mxCnt
  409. mxCnt = dw_buytaskmx.RowCount()
  410. if (mxCnt <= 0) then
  411. rslt = 0
  412. arg_msg = '没有订单明细内容'
  413. goto ext
  414. end if
  415. if (Trim(dw_buytask.Object.cus_rep[row_main]) = '') then
  416. rslt = 0
  417. arg_msg = '请填写收货人'
  418. goto ext
  419. end if
  420. long i
  421. for i = 1 to mxCnt
  422. if (dw_buytaskmx.Object.qty[i] <= 0) or (dw_buytaskmx.Object.price[i] <= 0) then
  423. rslt = 0
  424. arg_msg += '订单明细第' + string(i) + '行,数量 或 单价<=0,请检查~r~n'
  425. end if
  426. next
  427. if (rslt = 0) then goto ext
  428. // 检查通过,对明细的printid进行赋值
  429. for i = 1 to mxCnt
  430. dw_buytaskmx.Object.printid[i] = i
  431. next
  432. // 保存
  433. oleobject task
  434. task = FXAppCom.CreatePbDictionary()
  435. task.SetInt('taskid', dw_buytask.Object.taskid[row_main]) //订单ID int
  436. task.SetString('tid', dw_buytask.Object.tid[row_main]) //云端订单编号 varchar(50)
  437. task.SetDateTime('taskdate', dw_buytask.Object.taskdate[row_main]) //下单日期 datetime
  438. task.SetInt('sptcomid', dw_buytask.Object.sptcomid[row_main]) //卖方企业ID int
  439. task.SetInt('cuscomid', dw_buytask.Object.cuscomid[row_main]) //买方企业ID int
  440. task.SetString('cus_rep', dw_buytask.Object.cus_rep[row_main]) //收货人 varchar(30)
  441. task.SetString('cus_tele', dw_buytask.Object.cus_tele[row_main]) //联系电话 varchar(100)
  442. task.SetString('cus_address', dw_buytask.Object.cus_address[row_main]) //收货地址 varchar(255)
  443. task.SetString('freight', dw_buytask.Object.freight[row_main]) //货运部 varchar(50)
  444. task.SetString('freight_tele', dw_buytask.Object.freight_tele[row_main]) //货运部电话 varchar(50)
  445. task.SetString('opemp', dw_buytask.Object.opemp[row_main]) //建立人 varchar(255)
  446. task.SetDateTime('opdate', dw_buytask.Object.opdate[row_main]) //建立时间 datetime
  447. task.SetString('modemp', dw_buytask.Object.modemp[row_main]) //修改人 varchar(255)
  448. task.SetDateTime('moddate', dw_buytask.Object.moddate[row_main]) //修改时间 datetime
  449. task.SetString('buyer_name', dw_buytask.Object.buyer_name[row_main]) //客户名称 varchar(30)
  450. task.SetString('buyer_tele', dw_buytask.Object.buyer_tele[row_main]) //客户电话 varchar(100)
  451. task.SetDateTime('requiredate', dw_buytask.Object.requiredate[row_main]) //要求交期 datetime
  452. task.SetString('temp1', dw_buytask.Object.temp1[row_main]) //备注 dscrp varchar(255)
  453. task.SetString('temp2', dw_buytask.Object.temp2[row_main]) //生产备注 dscrp2 varchar(255)
  454. task.SetString('temp3', dw_buytask.Object.temp3[row_main]) //辅助备注 dscrp3 varchar(255)
  455. task.SetString('temp4', dw_buytask.Object.temp4[row_main]) //自定义4 varchar(255)
  456. task.SetString('temp5', dw_buytask.Object.temp5[row_main]) //自定义5 varchar(255)
  457. task.SetString('temp6', dw_buytask.Object.temp6[row_main]) //自定义6 varchar(255)
  458. task.SetString('price_emp', dw_buytask.Object.price_emp[row_main]) //报价人 varchar(255)
  459. task.SetDateTime('replyrqdate', dw_buytask.Object.replyrqdate[row_main]) //回复交期 datetime
  460. task.SetString('replydscrp', dw_buytask.Object.replydscrp[row_main]) //审核意见 varchar(255)
  461. task.SetDateTime('replydate', dw_buytask.Object.replydate[row_main]) //回复时间 datetime
  462. task.SetString('confirmemp', dw_buytask.Object.confirmemp[row_main]) //下单人 varchar(255)
  463. task.SetDateTime('confirmdate', dw_buytask.Object.confirmdate[row_main]) //下单时间 datetime
  464. task.SetInt('status', dw_buytask.Object.status[row_main]) //订单状态 tinyint
  465. task.SetString('taskcode', dw_buytask.Object.taskcode[row_main]) //ERP订单编号 varchar(30)
  466. task.SetString('outwarecode', dw_buytask.Object.outwarecode[row_main]) //ERP发货单编号 varchar(30)
  467. task.SetInt('fstatus', dw_buytask.Object.fstatus[row_main]) //工厂进度 int
  468. oleobject taskmxs, taskmx
  469. taskmxs = FXAppCom.CreArrOfPbDictionary()
  470. for i = 1 to mxCnt
  471. taskmx = FXAppCom.CreatePbDictionary()
  472. taskmx.SetInt('taskid', dw_buytask.Object.taskid[row_main]) //订单ID int
  473. taskmx.SetInt('printid', dw_buytaskmx.Object.printid[i]) //附件ID int
  474. taskmx.SetString('mxcode', dw_buytaskmx.Object.mxcode[i]) //XS150703001_01 varchar(50)
  475. taskmx.SetInt('fxmtrlid', dw_buytaskmx.Object.fxmtrlid[i]) //平台唯一物料ID int
  476. taskmx.SetInt('mtrlid', dw_buytaskmx.Object.mtrlid[i]) //卖方物料ID int
  477. taskmx.SetString('mtrlcode', dw_buytaskmx.Object.mtrlcode[i]) //卖方物料编码 varchar(255)
  478. taskmx.SetString('mtrlname', dw_buytaskmx.Object.mtrlname[i]) //卖方物料名称 varchar(255)
  479. taskmx.SetString('status', dw_buytaskmx.Object.status[i]) //卖方物料配置 varchar(255)
  480. taskmx.SetString('woodcode', dw_buytaskmx.Object.woodcode[i]) //卖方物料配置1 varchar(255)
  481. taskmx.SetString('pcode', dw_buytaskmx.Object.pcode[i]) //卖方物料配置2 varchar(255)
  482. taskmx.SetDouble('qty', dw_buytaskmx.Object.qty[i]) //数量 decimal(18,5)
  483. taskmx.SetDouble('price', dw_buytaskmx.Object.price[i]) //单价 decimal(18,5)
  484. taskmx.SetInt('cus_mtrlid', 0) //买方物料ID int dw_buytaskmx.Object.cus_mtrlid[i]
  485. taskmx.SetString('cus_mtrlcode', '') //买方物料编码 varchar(255) dw_buytaskmx.Object.cus_mtrlcode[i]
  486. taskmx.SetString('cus_mtrlname', '') //买方物料名称 varchar(255) dw_buytaskmx.Object.cus_mtrlname[i]
  487. taskmx.SetString('cus_status', '') //买方物料配置 varchar(255) dw_buytaskmx.Object.cus_status[i]
  488. taskmx.SetString('cus_woodcode', '') //买方物料配置1 varchar(255) dw_buytaskmx.Object.cus_woodcode[i]
  489. taskmx.SetString('cus_pcode', '') //买方物料配置2 varchar(255) dw_buytaskmx.Object.cus_pcode[i]
  490. taskmx.SetString('mxdscrp', dw_buytaskmx.Object.mxdscrp[i]) //明细备注 varchar(255)
  491. taskmx.SetString('mxdscrp2', dw_buytaskmx.Object.mxdscrp2[i]) //明细备注2 varchar(255)
  492. taskmx.SetString('mtrlcuscode', dw_buytaskmx.Object.mtrlcuscode[i]) //生产批号 varchar(255)
  493. taskmxs.Add(taskmx)
  494. next
  495. FXAppCom.AddBuytask(app_token_fx, task, taskmxs, ref arg_msg)
  496. if (arg_msg <> '') then
  497. rslt = 0
  498. end if
  499. ext:
  500. return rslt
  501. end function
  502. public function long wf_del_saletask (readonly long arg_taskid);int rslt = 1
  503. string arg_msg
  504. FXAppCom.DelBuytask(app_token_fx, arg_taskid, ref arg_msg)
  505. if (arg_msg <> '') then
  506. rslt = 0
  507. MessageBox('提示', '删除订单失败:' + arg_msg)
  508. else
  509. MessageBox('提示', '删除成功')
  510. end if
  511. return rslt
  512. end function
  513. on w_buytask_fx.create
  514. int iCurrent
  515. call super::create
  516. this.cb_retrieve=create cb_retrieve
  517. this.cb_neworsave=create cb_neworsave
  518. this.cb_editorundo=create cb_editorundo
  519. this.cb_del=create cb_del
  520. this.em_pagesize=create em_pagesize
  521. this.cb_toppage=create cb_toppage
  522. this.st_1=create st_1
  523. this.ddlb_status=create ddlb_status
  524. this.st_2=create st_2
  525. this.em_datea=create em_datea
  526. this.st_3=create st_3
  527. this.em_datez=create em_datez
  528. this.cb_page_ch=create cb_page_ch
  529. this.st_4=create st_4
  530. this.sle_likestr=create sle_likestr
  531. this.dw_buytask=create dw_buytask
  532. this.dw_buytask_list=create dw_buytask_list
  533. this.tab_1=create tab_1
  534. this.cb_send=create cb_send
  535. iCurrent=UpperBound(this.Control)
  536. this.Control[iCurrent+1]=this.cb_retrieve
  537. this.Control[iCurrent+2]=this.cb_neworsave
  538. this.Control[iCurrent+3]=this.cb_editorundo
  539. this.Control[iCurrent+4]=this.cb_del
  540. this.Control[iCurrent+5]=this.em_pagesize
  541. this.Control[iCurrent+6]=this.cb_toppage
  542. this.Control[iCurrent+7]=this.st_1
  543. this.Control[iCurrent+8]=this.ddlb_status
  544. this.Control[iCurrent+9]=this.st_2
  545. this.Control[iCurrent+10]=this.em_datea
  546. this.Control[iCurrent+11]=this.st_3
  547. this.Control[iCurrent+12]=this.em_datez
  548. this.Control[iCurrent+13]=this.cb_page_ch
  549. this.Control[iCurrent+14]=this.st_4
  550. this.Control[iCurrent+15]=this.sle_likestr
  551. this.Control[iCurrent+16]=this.dw_buytask
  552. this.Control[iCurrent+17]=this.dw_buytask_list
  553. this.Control[iCurrent+18]=this.tab_1
  554. this.Control[iCurrent+19]=this.cb_send
  555. end on
  556. on w_buytask_fx.destroy
  557. call super::destroy
  558. destroy(this.cb_retrieve)
  559. destroy(this.cb_neworsave)
  560. destroy(this.cb_editorundo)
  561. destroy(this.cb_del)
  562. destroy(this.em_pagesize)
  563. destroy(this.cb_toppage)
  564. destroy(this.st_1)
  565. destroy(this.ddlb_status)
  566. destroy(this.st_2)
  567. destroy(this.em_datea)
  568. destroy(this.st_3)
  569. destroy(this.em_datez)
  570. destroy(this.cb_page_ch)
  571. destroy(this.st_4)
  572. destroy(this.sle_likestr)
  573. destroy(this.dw_buytask)
  574. destroy(this.dw_buytask_list)
  575. destroy(this.tab_1)
  576. destroy(this.cb_send)
  577. end on
  578. event ue_before_open;call super::ue_before_open;em_datea.Text = String(RelativeDate(Today(), - 30))
  579. em_datez.Text = String(Today())
  580. ddlb_status.SelectItem(6)
  581. dw_buytaskmx = tab_1.tabpage_1.dw_buytaskmx
  582. uo_pz = create uo_fx_pz
  583. wf_retrieve_saletask( )
  584. end event
  585. event closequery;call super::closequery;if if_edit_mode then return 1
  586. end event
  587. event resize;call super::resize;if (this.Width < 4082) then this.Width = 4082
  588. if (this.Height < 2548) then this.Height = 2548
  589. dw_buytask_list.Width = this.workspacewidth( ) - dw_buytask.Width - 14
  590. tab_1.Width = this.workspacewidth( )
  591. dw_buytaskmx.Width = tab_1.Width - 40
  592. tab_1.Height = this.workspaceheight( ) - tab_1.Y
  593. dw_buytaskmx.Height = tab_1.Height - tab_1.tabpage_1.cb_addmx.Height - 118
  594. end event
  595. event close;call super::close;destroy uo_pz
  596. end event
  597. type cb_func from w_publ_base_style`cb_func within w_buytask_fx
  598. boolean visible = false
  599. integer x = 2295
  600. boolean enabled = false
  601. end type
  602. type cb_exit from w_publ_base_style`cb_exit within w_buytask_fx
  603. integer x = 1038
  604. end type
  605. event cb_exit::clicked;if not if_edit_mode then close(parent)
  606. end event
  607. type ln_bar from w_publ_base_style`ln_bar within w_buytask_fx
  608. end type
  609. type ln_bar2 from w_publ_base_style`ln_bar2 within w_buytask_fx
  610. end type
  611. type r_bar from w_publ_base_style`r_bar within w_buytask_fx
  612. end type
  613. type cb_retrieve from uo_imflatbutton within w_buytask_fx
  614. integer width = 151
  615. integer height = 164
  616. integer taborder = 30
  617. boolean bringtotop = true
  618. string text = "刷新"
  619. string normalpicname = "refresh.bmp"
  620. integer picsize = 16
  621. toolbaralignment pic_align = alignattop!
  622. boolean border = false
  623. end type
  624. event clicked;call super::clicked;ins_cur_pageNum = 1
  625. wf_retrieve_saletask( )
  626. end event
  627. type cb_neworsave from uo_imflatbutton within w_buytask_fx
  628. integer x = 155
  629. integer width = 192
  630. integer height = 164
  631. integer taborder = 10
  632. boolean bringtotop = true
  633. string text = "新建&S"
  634. string normalpicname = "new.bmp"
  635. integer picsize = 16
  636. toolbaralignment pic_align = alignattop!
  637. boolean border = false
  638. end type
  639. event clicked;call super::clicked;dw_edit_mode = not dw_edit_mode
  640. string arg_msg
  641. if if_edit_mode then // 保存功能
  642. if (wf_save_saletask(ref arg_msg) = 0) then
  643. MessageBox('提示', '操作失败:~r~n' + arg_msg)
  644. return
  645. else
  646. MessageBox('提示', '订单保存成功')
  647. wf_retrieve_saletask( )
  648. end if
  649. else // 新建功能
  650. wf_add_saletask( )
  651. end if
  652. if_edit_mode = not if_edit_mode
  653. wf_face_btn( )
  654. wf_taborder( )
  655. end event
  656. type cb_editorundo from uo_imflatbutton within w_buytask_fx
  657. integer x = 352
  658. integer width = 192
  659. integer height = 164
  660. integer taborder = 40
  661. boolean bringtotop = true
  662. string text = "修改&E"
  663. string normalpicname = "open.bmp"
  664. integer picsize = 16
  665. toolbaralignment pic_align = alignattop!
  666. boolean border = false
  667. end type
  668. event clicked;call super::clicked;dw_edit_mode = not dw_edit_mode
  669. if if_edit_mode then // 放弃
  670. if (MessageBox('提示', '确定要放弃保存当前单据的修改?', Question!, YesNoCancel!) <> 1) then return
  671. end if
  672. if_edit_mode = not if_edit_mode
  673. wf_face_btn( )
  674. wf_taborder( )
  675. if (not if_edit_mode) and (dw_buytask_list.GetRow() > 0) then
  676. dw_buytask_list.Trigger Event RowFocusChanged(dw_buytask_list.GetRow())
  677. end if
  678. end event
  679. type cb_del from uo_imflatbutton within w_buytask_fx
  680. integer x = 549
  681. integer width = 151
  682. integer height = 164
  683. integer taborder = 20
  684. boolean bringtotop = true
  685. string text = "删除"
  686. string normalpicname = "delete.bmp"
  687. integer picsize = 16
  688. toolbaralignment pic_align = alignattop!
  689. boolean border = false
  690. end type
  691. event clicked;call super::clicked;if if_edit_mode then return
  692. long row
  693. row = dw_buytask_list.GetRow()
  694. if (row <= 0) then
  695. MessageBox('提示', '请选择要删除的订单')
  696. return
  697. end if
  698. if (MessageBox('提示', '确定要删除当前订单?', Question!, YesNoCancel!) <> 1) then return
  699. long taskid
  700. taskid = dw_buytask_list.Object.taskid[row]
  701. if wf_del_saletask(taskid) = 1 then
  702. wf_retrieve_saletask( )
  703. end if
  704. end event
  705. type em_pagesize from editmask within w_buytask_fx
  706. integer x = 1202
  707. integer y = 44
  708. integer width = 302
  709. integer height = 84
  710. integer taborder = 30
  711. boolean bringtotop = true
  712. integer textsize = -9
  713. integer weight = 400
  714. fontcharset fontcharset = gb2312charset!
  715. fontpitch fontpitch = variable!
  716. string facename = "宋体"
  717. long textcolor = 33554432
  718. string text = "100"
  719. alignment alignment = right!
  720. borderstyle borderstyle = stylelowered!
  721. string mask = "#####0"
  722. boolean spin = true
  723. double increment = 1
  724. string minmax = "1~~"
  725. end type
  726. type cb_toppage from uo_imflatbutton within w_buytask_fx
  727. integer x = 1509
  728. integer width = 151
  729. integer height = 164
  730. integer taborder = 40
  731. boolean bringtotop = true
  732. string text = "首页"
  733. boolean border = false
  734. end type
  735. event clicked;call super::clicked;ins_cur_pageNum = 1
  736. wf_retrieve_saletask( )
  737. end event
  738. type st_1 from statictext within w_buytask_fx
  739. integer x = 5
  740. integer y = 204
  741. integer width = 288
  742. integer height = 48
  743. boolean bringtotop = true
  744. integer textsize = -9
  745. integer weight = 400
  746. fontcharset fontcharset = gb2312charset!
  747. fontpitch fontpitch = variable!
  748. string facename = "宋体"
  749. long textcolor = 33554432
  750. long backcolor = 16777215
  751. string text = "订单状态"
  752. alignment alignment = center!
  753. boolean focusrectangle = false
  754. end type
  755. type ddlb_status from dropdownlistbox within w_buytask_fx
  756. integer x = 279
  757. integer y = 188
  758. integer width = 416
  759. integer height = 496
  760. integer taborder = 40
  761. boolean bringtotop = true
  762. integer textsize = -9
  763. integer weight = 400
  764. fontcharset fontcharset = gb2312charset!
  765. fontpitch fontpitch = variable!
  766. string facename = "宋体"
  767. long textcolor = 33554432
  768. boolean sorted = false
  769. boolean vscrollbar = true
  770. string item[] = {"已下单[3]","新建[0]","已退回[2]","进行中[6]","完成[7]","全部"}
  771. borderstyle borderstyle = stylelowered!
  772. end type
  773. event selectionchanged;wf_retrieve_saletask( )
  774. end event
  775. type st_2 from statictext within w_buytask_fx
  776. integer x = 754
  777. integer y = 204
  778. integer width = 288
  779. integer height = 48
  780. boolean bringtotop = true
  781. integer textsize = -9
  782. integer weight = 400
  783. fontcharset fontcharset = gb2312charset!
  784. fontpitch fontpitch = variable!
  785. string facename = "宋体"
  786. long textcolor = 33554432
  787. long backcolor = 16777215
  788. string text = "订单日期从"
  789. alignment alignment = center!
  790. boolean focusrectangle = false
  791. end type
  792. type em_datea from editmask within w_buytask_fx
  793. integer x = 1047
  794. integer y = 188
  795. integer width = 389
  796. integer height = 84
  797. integer taborder = 50
  798. boolean bringtotop = true
  799. integer textsize = -9
  800. integer weight = 400
  801. fontcharset fontcharset = gb2312charset!
  802. fontpitch fontpitch = variable!
  803. string facename = "宋体"
  804. long textcolor = 33554432
  805. string text = "0000-00-00"
  806. borderstyle borderstyle = stylelowered!
  807. maskdatatype maskdatatype = datemask!
  808. string mask = "yyyy-mm-dd"
  809. boolean spin = true
  810. end type
  811. type st_3 from statictext within w_buytask_fx
  812. integer x = 1440
  813. integer y = 204
  814. integer width = 96
  815. integer height = 48
  816. boolean bringtotop = true
  817. integer textsize = -9
  818. integer weight = 400
  819. fontcharset fontcharset = gb2312charset!
  820. fontpitch fontpitch = variable!
  821. string facename = "宋体"
  822. long textcolor = 33554432
  823. long backcolor = 16777215
  824. string text = "到"
  825. alignment alignment = center!
  826. boolean focusrectangle = false
  827. end type
  828. type em_datez from editmask within w_buytask_fx
  829. integer x = 1531
  830. integer y = 188
  831. integer width = 389
  832. integer height = 84
  833. integer taborder = 50
  834. boolean bringtotop = true
  835. integer textsize = -9
  836. integer weight = 400
  837. fontcharset fontcharset = gb2312charset!
  838. fontpitch fontpitch = variable!
  839. string facename = "宋体"
  840. long textcolor = 33554432
  841. string text = "0000-00-00"
  842. borderstyle borderstyle = stylelowered!
  843. maskdatatype maskdatatype = datemask!
  844. string mask = "yyyy-mm-dd"
  845. boolean spin = true
  846. end type
  847. type cb_page_ch from uo_imflatbutton within w_buytask_fx
  848. integer x = 1659
  849. integer width = 82
  850. integer height = 164
  851. integer taborder = 10
  852. boolean bringtotop = true
  853. string text = "▼"
  854. toolbaralignment pic_align = alignattop!
  855. boolean border = false
  856. end type
  857. event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  858. string menustr
  859. menustr="Text=下页~tEvent=ue_page_next"
  860. menustr = menustr + "|" + "Text=上页~tEvent=ue_page_before"
  861. menustr = menustr + "|" + "Text=末页~tEvent=ue_page_end"
  862. if len(trim(menustr))<>0 then
  863. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  864. dmPopupMenu.mf_BuildMenu(This, menustr)
  865. dmPopupMenu.mf_PopMenu()
  866. Destroy dmPopupMenu
  867. end if
  868. end event
  869. type st_4 from statictext within w_buytask_fx
  870. integer x = 1970
  871. integer y = 204
  872. integer width = 224
  873. integer height = 48
  874. boolean bringtotop = true
  875. integer textsize = -9
  876. integer weight = 400
  877. fontcharset fontcharset = gb2312charset!
  878. fontpitch fontpitch = variable!
  879. string facename = "宋体"
  880. long textcolor = 33554432
  881. long backcolor = 16777215
  882. string text = "单号含"
  883. alignment alignment = center!
  884. boolean focusrectangle = false
  885. end type
  886. type sle_likestr from u_sleedit within w_buytask_fx
  887. integer x = 2181
  888. integer y = 188
  889. integer height = 84
  890. integer taborder = 20
  891. boolean bringtotop = true
  892. end type
  893. event keydown;call super::keydown;if (key = KeyEnter!) then
  894. ins_cur_pageNum = 1
  895. wf_retrieve_saletask( )
  896. end if
  897. end event
  898. type dw_buytask from datawindow within w_buytask_fx
  899. integer y = 284
  900. integer width = 2117
  901. integer height = 1312
  902. integer taborder = 50
  903. boolean bringtotop = true
  904. string title = "none"
  905. string dataobject = "dw_fx_buytask_ff"
  906. boolean livescroll = true
  907. borderstyle borderstyle = stylelowered!
  908. end type
  909. event doubleclicked;if (not dw_edit_mode) then return
  910. if (row <= 0) then return
  911. if ((dwo.Type = 'column' and dwo.Name = 'sptname') or (dwo.Type = 'text' and dwo.Name = 'sptname_t')) then
  912. long ori_sptcomid, new_sptcomid
  913. ori_sptcomid = this.Object.sptcomid[row]
  914. s_fx_company s_ret
  915. Open(w_spt_ch_fx)
  916. s_ret = Message.PowerObjectParm
  917. if not IsNull(s_ret) then
  918. if (s_ret.ifselect) then
  919. new_sptcomid = s_ret.comid[1]
  920. if (ori_sptcomid <> new_sptcomid) then
  921. dw_buytaskmx.Reset() // 重选供应商,清空明细物料
  922. if (new_sptcomid > 0) then
  923. uo_pz.init()
  924. uo_pz.ins_comid = new_sptcomid
  925. string arg_msg
  926. if (uo_pz.uof_before_ready(ref arg_msg) <> 1) then
  927. MessageBox('提示', arg_msg)
  928. end if
  929. end if
  930. end if
  931. this.Object.sptcomid[row] = new_sptcomid
  932. this.Object.sptname[row] = s_ret.comname[1]
  933. end if
  934. end if
  935. end if
  936. end event
  937. type dw_buytask_list from u_dw_rbtnfilter within w_buytask_fx
  938. integer x = 2121
  939. integer y = 284
  940. integer width = 1947
  941. integer height = 1312
  942. integer taborder = 20
  943. boolean bringtotop = true
  944. boolean titlebar = true
  945. string title = "采购订单"
  946. string dataobject = "dw_fx_buytask"
  947. boolean controlmenu = true
  948. boolean maxbox = true
  949. boolean hscrollbar = true
  950. boolean vscrollbar = true
  951. boolean resizable = true
  952. boolean border = false
  953. boolean hsplitscroll = true
  954. boolean rbutton_filter_use = true
  955. boolean rbutton_setposition_use = true
  956. boolean titleclick_sort_use = true
  957. end type
  958. event rowfocuschanged;call super::rowfocuschanged;if dw_edit_mode then return
  959. if IsNull(currentrow) then return
  960. if (currentrow <= 0) then return
  961. this.SelectRow(0, false)
  962. this.SelectRow(currentrow, true)
  963. if (this.Object.status[currentrow] <> 0) then
  964. cb_send.Enabled = false
  965. cb_editorundo.Enabled = false
  966. cb_del.Enabled = false
  967. else
  968. // 待询价的订单才可以使用下单、修改、删除按钮
  969. cb_send.Enabled = true
  970. cb_editorundo.Enabled = true
  971. cb_del.Enabled = true
  972. end if
  973. if (this.Object.status[currentrow] = 2) then
  974. // 已退回状态可修改、删除
  975. cb_editorundo.Enabled = true
  976. cb_del.Enabled = true
  977. end if
  978. dw_buytask.Reset( )
  979. this.RowsCopy(currentrow, currentrow, Primary!, dw_buytask, 1, Primary!)
  980. long taskid
  981. taskid = this.Object.taskid[currentrow]
  982. wf_retrieve_saletaskmx(taskid)
  983. end event
  984. type tab_1 from tab within w_buytask_fx
  985. integer y = 1600
  986. integer width = 3671
  987. integer height = 876
  988. integer taborder = 60
  989. boolean bringtotop = true
  990. integer textsize = -9
  991. integer weight = 400
  992. fontcharset fontcharset = gb2312charset!
  993. fontpitch fontpitch = variable!
  994. string facename = "宋体"
  995. long backcolor = 16777215
  996. boolean raggedright = true
  997. boolean focusonbuttondown = true
  998. integer selectedtab = 1
  999. tabpage_1 tabpage_1
  1000. end type
  1001. on tab_1.create
  1002. this.tabpage_1=create tabpage_1
  1003. this.Control[]={this.tabpage_1}
  1004. end on
  1005. on tab_1.destroy
  1006. destroy(this.tabpage_1)
  1007. end on
  1008. type tabpage_1 from userobject within tab_1
  1009. integer x = 18
  1010. integer y = 96
  1011. integer width = 3634
  1012. integer height = 764
  1013. long backcolor = 16777215
  1014. string text = "订单明细"
  1015. long tabtextcolor = 33554432
  1016. long tabbackcolor = 16777215
  1017. long picturemaskcolor = 536870912
  1018. cb_delmx cb_delmx
  1019. cb_addmx cb_addmx
  1020. dw_buytaskmx dw_buytaskmx
  1021. end type
  1022. on tabpage_1.create
  1023. this.cb_delmx=create cb_delmx
  1024. this.cb_addmx=create cb_addmx
  1025. this.dw_buytaskmx=create dw_buytaskmx
  1026. this.Control[]={this.cb_delmx,&
  1027. this.cb_addmx,&
  1028. this.dw_buytaskmx}
  1029. end on
  1030. on tabpage_1.destroy
  1031. destroy(this.cb_delmx)
  1032. destroy(this.cb_addmx)
  1033. destroy(this.dw_buytaskmx)
  1034. end on
  1035. type cb_delmx from commandbutton within tabpage_1
  1036. integer x = 251
  1037. integer width = 242
  1038. integer height = 84
  1039. integer taborder = 50
  1040. integer textsize = -9
  1041. integer weight = 400
  1042. fontcharset fontcharset = gb2312charset!
  1043. fontpitch fontpitch = variable!
  1044. string facename = "宋体"
  1045. boolean enabled = false
  1046. string text = "删明细"
  1047. end type
  1048. event clicked;if (dw_buytaskmx.GetRow() <= 0) then
  1049. MessageBox('提示', '请选择需要删除的明细项')
  1050. return
  1051. end if
  1052. dw_buytaskmx.DeleteRow(dw_buytaskmx.GetRow())
  1053. end event
  1054. type cb_addmx from commandbutton within tabpage_1
  1055. integer width = 242
  1056. integer height = 84
  1057. integer taborder = 40
  1058. integer textsize = -9
  1059. integer weight = 400
  1060. fontcharset fontcharset = gb2312charset!
  1061. fontpitch fontpitch = variable!
  1062. string facename = "宋体"
  1063. boolean enabled = false
  1064. string text = "增明细"
  1065. end type
  1066. event clicked;open(w_mtrl_ch_fx)
  1067. s_fx_mtrldef s_tran
  1068. s_tran = Message.PowerObjectParm
  1069. long row, i
  1070. if IsValid(s_tran) then
  1071. for i = 1 to UpperBound(s_tran.fxmtrlid)
  1072. row = dw_buytaskmx.InsertRow(0)
  1073. dw_buytaskmx.Object.fxmtrlid[row] = s_tran.fxmtrlid[i]
  1074. dw_buytaskmx.Object.mtrlid[row] = s_tran.mtrlid[i]
  1075. dw_buytaskmx.Object.mtrlcode[row] = s_tran.mtrlcode[i]
  1076. dw_buytaskmx.Object.mtrlname[row] = s_tran.mtrlname[i]
  1077. dw_buytaskmx.Object.status[row] = '规格[' + s_tran.mtrlmode[i] + '],[' + s_tran.mtrlsectype[i] + '],[' + s_tran.zxmtrlmode[i] + '],[' + s_tran.usermtrlmode[i] + ']'
  1078. dw_buytaskmx.Object.woodcode[row] = ''
  1079. dw_buytaskmx.Object.pcode[row] = ''
  1080. dw_buytaskmx.Object.qty[row] = 1
  1081. dw_buytaskmx.Object.cus_receiveqty[row] = 0
  1082. dw_buytaskmx.Object.price[row] = 1
  1083. dw_buytaskmx.Object.mxdscrp[row] = ''
  1084. dw_buytaskmx.Object.mxdscrp2[row] = ''
  1085. dw_buytaskmx.Object.mtrlcuscode[row] = ''
  1086. next
  1087. end if
  1088. end event
  1089. type dw_buytaskmx from u_dw_rbtnfilter within tabpage_1
  1090. integer y = 88
  1091. integer width = 3497
  1092. integer height = 648
  1093. integer taborder = 20
  1094. string dataobject = "dw_fx_saletaskmx"
  1095. boolean hscrollbar = true
  1096. boolean vscrollbar = true
  1097. boolean hsplitscroll = true
  1098. boolean rbutton_filter_use = true
  1099. boolean rbutton_setposition_use = true
  1100. boolean titleclick_sort_use = true
  1101. end type
  1102. event clicked;call super::clicked;if (row <= 0) then return
  1103. this.SelectRow(0, false)
  1104. this.SelectRow(row, true)
  1105. end event
  1106. type cb_send from uo_imflatbutton within w_buytask_fx
  1107. integer x = 704
  1108. integer width = 329
  1109. integer height = 164
  1110. integer taborder = 40
  1111. boolean bringtotop = true
  1112. string text = "确认并下单"
  1113. string normalpicname = "ok.bmp"
  1114. integer picsize = 16
  1115. toolbaralignment pic_align = alignattop!
  1116. boolean border = false
  1117. end type
  1118. event clicked;call super::clicked;if if_edit_mode then return
  1119. long row
  1120. row = dw_buytask_list.GetRow()
  1121. if (row <= 0) then
  1122. MessageBox('提示', '请选择需要发送的订单')
  1123. return
  1124. end if
  1125. if (dw_buytask_list.Object.status[row] <> 0) then
  1126. MessageBox('提示', '订单非待询价状态,不能发送')
  1127. return
  1128. end if
  1129. string arg_msg
  1130. long taskid
  1131. taskid = dw_buytask_list.Object.taskid[row]
  1132. if (IsNull(taskid)) then return
  1133. FXAppCom.SendBuyTask(app_token_fx, taskid, ref arg_msg)
  1134. if (arg_msg <> '') then
  1135. MessageBox('提示', '下单操作失败:~r~n' + arg_msg)
  1136. return
  1137. end if
  1138. MessageBox('提示', '操作成功')
  1139. wf_retrieve_saletask( )
  1140. end event