w_rp_cmpl_mtrlcost.srw 38 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633
  1. $PBExportHeader$w_rp_cmpl_mtrlcost.srw
  2. forward
  3. global type w_rp_cmpl_mtrlcost from w_publ_easyq
  4. end type
  5. type cb_3 from uo_imflatbutton within w_rp_cmpl_mtrlcost
  6. end type
  7. type cb_5 from uo_imflatbutton within w_rp_cmpl_mtrlcost
  8. end type
  9. type ddlb_mtrlprp from uo_ddlb_mtrlorigin within w_rp_cmpl_mtrlcost
  10. end type
  11. type tv_1 from uo_tv_mtrltype within w_rp_cmpl_mtrlcost
  12. end type
  13. type cb_planprice from uo_imflatbutton within w_rp_cmpl_mtrlcost
  14. end type
  15. type cb_4 from commandbutton within w_rp_cmpl_mtrlcost
  16. end type
  17. type cb_6 from commandbutton within w_rp_cmpl_mtrlcost
  18. end type
  19. type cbx_auto_copy from checkbox within w_rp_cmpl_mtrlcost
  20. end type
  21. type cb_7 from commandbutton within w_rp_cmpl_mtrlcost
  22. end type
  23. type cb_8 from commandbutton within w_rp_cmpl_mtrlcost
  24. end type
  25. type ddlb_ptoplp from dropdownlistbox within w_rp_cmpl_mtrlcost
  26. end type
  27. type em_ptoplp from editmask within w_rp_cmpl_mtrlcost
  28. end type
  29. type cb_ptoplp from commandbutton within w_rp_cmpl_mtrlcost
  30. end type
  31. type cb_add_mtrl from uo_imflatbutton within w_rp_cmpl_mtrlcost
  32. end type
  33. type cb_edit from uo_imflatbutton within w_rp_cmpl_mtrlcost
  34. end type
  35. type cb_save from uo_imflatbutton within w_rp_cmpl_mtrlcost
  36. end type
  37. type cbx_isuse from checkbox within w_rp_cmpl_mtrlcost
  38. end type
  39. end forward
  40. global type w_rp_cmpl_mtrlcost from w_publ_easyq
  41. string title = "产品最新成本统计表"
  42. event ue_view_workprice ( )
  43. event ue_view_bom ( )
  44. event ue_view_his ( )
  45. cb_3 cb_3
  46. cb_5 cb_5
  47. ddlb_mtrlprp ddlb_mtrlprp
  48. tv_1 tv_1
  49. cb_planprice cb_planprice
  50. cb_4 cb_4
  51. cb_6 cb_6
  52. cbx_auto_copy cbx_auto_copy
  53. cb_7 cb_7
  54. cb_8 cb_8
  55. ddlb_ptoplp ddlb_ptoplp
  56. em_ptoplp em_ptoplp
  57. cb_ptoplp cb_ptoplp
  58. cb_add_mtrl cb_add_mtrl
  59. cb_edit cb_edit
  60. cb_save cb_save
  61. cbx_isuse cbx_isuse
  62. end type
  63. global w_rp_cmpl_mtrlcost w_rp_cmpl_mtrlcost
  64. type variables
  65. String cur_handtype = ''
  66. Long cur_mtrlorigin = 0
  67. end variables
  68. forward prototypes
  69. public subroutine wf_face ()
  70. end prototypes
  71. event ue_view_workprice();Long ll_row
  72. String ls_mtrlcode
  73. ll_row = dw_1.GetRow()
  74. IF ll_row <= 0 THEN
  75. MessageBox(publ_operator,'请选择产品')
  76. RETURN
  77. END IF
  78. ls_mtrlcode = dw_1.Object.mtrlcode[ll_row]
  79. s_edit_index_tran s_tran
  80. s_tran.arg_string_code = ls_mtrlcode
  81. s_tran.if_retrieve_all = local_retrieve_all
  82. OpenWithParm(w_sc_workpricetable,s_tran)
  83. end event
  84. event ue_view_bom();Long ll_row
  85. String ls_mtrlcode
  86. ll_row = dw_1.GetRow()
  87. IF ll_row <= 0 THEN
  88. MessageBox(publ_operator,'请选择产品')
  89. RETURN
  90. END IF
  91. ls_mtrlcode = dw_1.Object.mtrlcode[ll_row]
  92. s_edit_index_tran s_tran
  93. s_tran.arg_string_code = ls_mtrlcode
  94. s_tran.if_retrieve_all = local_retrieve_all
  95. OpenWithParm(w_mtrl_structure,s_tran)
  96. end event
  97. event ue_view_his();Long ll_row
  98. s_rp_mtrlcost_cmpl s_open
  99. ll_row = dw_1.GetRow()
  100. IF ll_row <= 0 THEN
  101. MessageBox(publ_operator,'请选择产品')
  102. RETURN
  103. END IF
  104. s_open.mtrlid = dw_1.Object.mtrlid[ll_row]
  105. s_open.pfcode = dw_1.Object.pfcode[ll_row]
  106. OpenWithParm(w_rp_mtrlprice_his_sum,s_open)
  107. end event
  108. public subroutine wf_face ();cb_1.Enabled = Not dw_edit_mode
  109. cb_save.Enabled = dw_edit_mode
  110. cb_func.Enabled = Not dw_edit_mode
  111. cb_psetup.Enabled = Not dw_edit_mode
  112. cb_2.Enabled = Not dw_edit_mode
  113. cbx_yl.Enabled = Not dw_edit_mode
  114. ddlb_mtrlprp.Enabled = Not dw_edit_mode
  115. cb_add_mtrl.Enabled = Not dw_edit_mode
  116. cb_3.Enabled = Not dw_edit_mode
  117. cb_planprice.Enabled = Not dw_edit_mode
  118. dw_1.setredraw(false)
  119. IF dw_edit_mode THEN
  120. dw_1.SetTabOrder('price',20)
  121. dw_1.SetTabOrder('jgprice',30)
  122. dw_1.SetTabOrder('wfjgprice',40)
  123. dw_1.SetTabOrder('outcost',50)
  124. dw_1.SetTabOrder('eqprice',60)
  125. dw_1.SetTabOrder('otherprice',70)
  126. dw_1.modify('price.Color = "16711680" ')
  127. dw_1.modify('jgprice.Color = "16711680" ')
  128. dw_1.modify('wfjgprice.Color = "16711680" ')
  129. dw_1.modify('outcost.Color = "16711680" ')
  130. dw_1.modify('eqprice.Color = "16711680" ')
  131. cb_edit.Text = '放弃'
  132. cb_edit.normalpicname = 'Undo.bmp'
  133. ELSE
  134. dw_1.SetTabOrder('price',0)
  135. dw_1.SetTabOrder('jgprice',0)
  136. dw_1.SetTabOrder('wfjgprice',0)
  137. dw_1.SetTabOrder('outcost',0)
  138. dw_1.SetTabOrder('eqprice',0)
  139. dw_1.SetTabOrder('otherprice',0)
  140. dw_1.modify('price.Color = "0" ')
  141. dw_1.modify('jgprice.Color = "0" ')
  142. dw_1.modify('wfjgprice.Color = "0" ')
  143. dw_1.modify('outcost.Color = "0" ')
  144. dw_1.modify('eqprice.Color = "0" ')
  145. cb_edit.Text = '手动修改'
  146. cb_edit.normalpicname = 'OPEN.bmp'
  147. END IF
  148. dw_1.setredraw(true)
  149. cb_edit.of_init_draw()
  150. cb_edit.of_paint()
  151. cb_edit.TriggerEvent('ue_textchange')
  152. end subroutine
  153. on w_rp_cmpl_mtrlcost.create
  154. int iCurrent
  155. call super::create
  156. this.cb_3=create cb_3
  157. this.cb_5=create cb_5
  158. this.ddlb_mtrlprp=create ddlb_mtrlprp
  159. this.tv_1=create tv_1
  160. this.cb_planprice=create cb_planprice
  161. this.cb_4=create cb_4
  162. this.cb_6=create cb_6
  163. this.cbx_auto_copy=create cbx_auto_copy
  164. this.cb_7=create cb_7
  165. this.cb_8=create cb_8
  166. this.ddlb_ptoplp=create ddlb_ptoplp
  167. this.em_ptoplp=create em_ptoplp
  168. this.cb_ptoplp=create cb_ptoplp
  169. this.cb_add_mtrl=create cb_add_mtrl
  170. this.cb_edit=create cb_edit
  171. this.cb_save=create cb_save
  172. this.cbx_isuse=create cbx_isuse
  173. iCurrent=UpperBound(this.Control)
  174. this.Control[iCurrent+1]=this.cb_3
  175. this.Control[iCurrent+2]=this.cb_5
  176. this.Control[iCurrent+3]=this.ddlb_mtrlprp
  177. this.Control[iCurrent+4]=this.tv_1
  178. this.Control[iCurrent+5]=this.cb_planprice
  179. this.Control[iCurrent+6]=this.cb_4
  180. this.Control[iCurrent+7]=this.cb_6
  181. this.Control[iCurrent+8]=this.cbx_auto_copy
  182. this.Control[iCurrent+9]=this.cb_7
  183. this.Control[iCurrent+10]=this.cb_8
  184. this.Control[iCurrent+11]=this.ddlb_ptoplp
  185. this.Control[iCurrent+12]=this.em_ptoplp
  186. this.Control[iCurrent+13]=this.cb_ptoplp
  187. this.Control[iCurrent+14]=this.cb_add_mtrl
  188. this.Control[iCurrent+15]=this.cb_edit
  189. this.Control[iCurrent+16]=this.cb_save
  190. this.Control[iCurrent+17]=this.cbx_isuse
  191. end on
  192. on w_rp_cmpl_mtrlcost.destroy
  193. call super::destroy
  194. destroy(this.cb_3)
  195. destroy(this.cb_5)
  196. destroy(this.ddlb_mtrlprp)
  197. destroy(this.tv_1)
  198. destroy(this.cb_planprice)
  199. destroy(this.cb_4)
  200. destroy(this.cb_6)
  201. destroy(this.cbx_auto_copy)
  202. destroy(this.cb_7)
  203. destroy(this.cb_8)
  204. destroy(this.ddlb_ptoplp)
  205. destroy(this.em_ptoplp)
  206. destroy(this.cb_ptoplp)
  207. destroy(this.cb_add_mtrl)
  208. destroy(this.cb_edit)
  209. destroy(this.cb_save)
  210. destroy(this.cbx_isuse)
  211. end on
  212. event ue_before_open;call super::ue_before_open;if_ue_retr=true
  213. if_ue_filter=true
  214. if_ue_sort=true
  215. if_ue_sentdataout=true
  216. end event
  217. event resize;call super::resize;tv_1.Height = dw_1.Height
  218. end event
  219. event open;call super::open;IF cbx_loginretr.Checked THEN
  220. cb_1.TriggerEvent(Clicked!)
  221. END IF
  222. end event
  223. type cb_func from w_publ_easyq`cb_func within w_rp_cmpl_mtrlcost
  224. integer x = 1883
  225. string text = "功能"
  226. end type
  227. type cb_exit from w_publ_easyq`cb_exit within w_rp_cmpl_mtrlcost
  228. integer x = 2592
  229. end type
  230. type cb_2 from w_publ_easyq`cb_2 within w_rp_cmpl_mtrlcost
  231. integer x = 2290
  232. end type
  233. type cb_psetup from w_publ_easyq`cb_psetup within w_rp_cmpl_mtrlcost
  234. integer x = 2034
  235. end type
  236. type cb_1 from w_publ_easyq`cb_1 within w_rp_cmpl_mtrlcost
  237. end type
  238. event cb_1::clicked;call super::clicked;Int li_ifuse
  239. IF cbx_isuse.Checked THEN
  240. li_ifuse = 1
  241. ELSE
  242. li_ifuse = -1
  243. END IF
  244. dw_1.Retrieve(cur_mtrlorigin,cur_handtype,li_ifuse)
  245. end event
  246. type st_3 from w_publ_easyq`st_3 within w_rp_cmpl_mtrlcost
  247. integer x = 9
  248. integer y = 204
  249. integer width = 169
  250. integer height = 48
  251. string text = "来源:"
  252. end type
  253. type st_4 from w_publ_easyq`st_4 within w_rp_cmpl_mtrlcost
  254. boolean visible = false
  255. integer x = 1714
  256. integer y = 644
  257. end type
  258. type em_1 from w_publ_easyq`em_1 within w_rp_cmpl_mtrlcost
  259. boolean visible = false
  260. integer x = 1618
  261. integer y = 424
  262. end type
  263. type em_2 from w_publ_easyq`em_2 within w_rp_cmpl_mtrlcost
  264. boolean visible = false
  265. integer x = 1650
  266. integer y = 524
  267. end type
  268. type ddlb_yl from w_publ_easyq`ddlb_yl within w_rp_cmpl_mtrlcost
  269. integer x = 2985
  270. integer y = 12
  271. end type
  272. type cbx_yl from w_publ_easyq`cbx_yl within w_rp_cmpl_mtrlcost
  273. integer x = 2761
  274. integer y = 12
  275. end type
  276. event cbx_yl::clicked;call super::clicked;if this.checked then
  277. dw_1.selectrow(0,false)
  278. end if
  279. end event
  280. type dw_1 from w_publ_easyq`dw_1 within w_rp_cmpl_mtrlcost
  281. integer x = 882
  282. integer width = 2574
  283. integer height = 1592
  284. string dataobject = "dw_rp_mtrlprice"
  285. boolean rbutton_filter_use = false
  286. boolean rbutton_setposition_use = false
  287. boolean titleclick_sort_use = false
  288. end type
  289. event dw_1::doubleclicked;call super::doubleclicked;PARENT.TriggerEvent('ue_view_his')
  290. end event
  291. event dw_1::clicked;call super::clicked;IF row > 0 THEN
  292. THIS.SelectRow(0,FALSE)
  293. THIS.SelectRow(row,TRUE)
  294. this.setrow(row)
  295. END IF
  296. end event
  297. type sle_mtrl from w_publ_easyq`sle_mtrl within w_rp_cmpl_mtrlcost
  298. integer x = 1641
  299. integer y = 604
  300. end type
  301. type sle_cust from w_publ_easyq`sle_cust within w_rp_cmpl_mtrlcost
  302. integer x = 480
  303. integer y = 604
  304. end type
  305. type st_mtrl from w_publ_easyq`st_mtrl within w_rp_cmpl_mtrlcost
  306. integer x = 1184
  307. integer y = 620
  308. end type
  309. type st_cust from w_publ_easyq`st_cust within w_rp_cmpl_mtrlcost
  310. integer x = 18
  311. integer y = 620
  312. end type
  313. type cbx_loginretr from w_publ_easyq`cbx_loginretr within w_rp_cmpl_mtrlcost
  314. boolean visible = true
  315. integer x = 2761
  316. integer y = 100
  317. end type
  318. type pb_em1 from w_publ_easyq`pb_em1 within w_rp_cmpl_mtrlcost
  319. boolean visible = false
  320. integer x = 626
  321. integer y = 712
  322. end type
  323. type pb_em2 from w_publ_easyq`pb_em2 within w_rp_cmpl_mtrlcost
  324. boolean visible = false
  325. integer x = 1239
  326. integer y = 712
  327. end type
  328. type pb_2 from w_publ_easyq`pb_2 within w_rp_cmpl_mtrlcost
  329. boolean visible = false
  330. integer x = 1349
  331. integer y = 712
  332. end type
  333. type cb_help from w_publ_easyq`cb_help within w_rp_cmpl_mtrlcost
  334. integer x = 2441
  335. end type
  336. type cb_copyself from w_publ_easyq`cb_copyself within w_rp_cmpl_mtrlcost
  337. integer x = 1627
  338. end type
  339. type gb_1 from w_publ_easyq`gb_1 within w_rp_cmpl_mtrlcost
  340. integer x = 1714
  341. integer y = 840
  342. integer width = 306
  343. integer height = 88
  344. end type
  345. type ln_bar from w_publ_easyq`ln_bar within w_rp_cmpl_mtrlcost
  346. end type
  347. type ln_bar2 from w_publ_easyq`ln_bar2 within w_rp_cmpl_mtrlcost
  348. end type
  349. type r_bar from w_publ_easyq`r_bar within w_rp_cmpl_mtrlcost
  350. integer x = 3392
  351. end type
  352. type ln_1 from w_publ_easyq`ln_1 within w_rp_cmpl_mtrlcost
  353. end type
  354. type ln_2 from w_publ_easyq`ln_2 within w_rp_cmpl_mtrlcost
  355. end type
  356. type ln_3 from w_publ_easyq`ln_3 within w_rp_cmpl_mtrlcost
  357. end type
  358. type ln_4 from w_publ_easyq`ln_4 within w_rp_cmpl_mtrlcost
  359. end type
  360. type cb_3 from uo_imflatbutton within w_rp_cmpl_mtrlcost
  361. integer x = 873
  362. integer width = 151
  363. integer height = 164
  364. integer taborder = 90
  365. boolean bringtotop = true
  366. string text = "统计"
  367. string normalpicname = "update.bmp"
  368. integer picsize = 16
  369. toolbaralignment pic_align = alignattop!
  370. boolean border = false
  371. end type
  372. event clicked;call super::clicked;Long i,ll_row,ll_mtrlid,sumdate
  373. Decimal ld_price,ld_wfjgprice,ld_outcost,ld_wageprice,ld_otherprice,ld_eqprice
  374. String ls_mtrlcode
  375. Decimal ld_outcost_self
  376. uo_cmplcost uo_cmpl
  377. String ls_pfcode,arg_msg,ls_msg
  378. Long ll_fail = 0
  379. Long ll_scid
  380. Long ch
  381. String ls_status,ls_woodcode,ls_pcode
  382. Int li_statusflag,li_woodcodeflag,li_pcodeflag
  383. String ls_status_config,ls_woodcode_config,ls_pcode_config
  384. IF dw_1.RowCount() <= 0 THEN
  385. MessageBox('提示','没有可统计的资料')
  386. RETURN
  387. END IF
  388. IF dw_1.Object.ch_sum[1] = 0 THEN
  389. MessageBox('提示','没有可统计的资料,请先选择')
  390. RETURN
  391. END IF
  392. sumdate = Year(Date(Today())) * 10000 + Month(Date(Today())) * 100 + Day(Date(Today()))
  393. IF MessageBox (publ_operator,"是否确定要进行统计操作吗?"+'~n'+&
  394. '统计时间: '+String(sumdate),Question!,YesNo! ) = 2 THEN RETURN
  395. ll_row = dw_1.RowCount()
  396. Open(w_sys_wait_jdt)
  397. w_sys_wait_jdt.wf_set_msg('正在计算中....')
  398. w_sys_wait_jdt.wf_accepttol(ll_row)
  399. uo_cmpl = Create uo_cmplcost
  400. FOR i = 1 To ll_row
  401. ll_mtrlid = dw_1.Object.mtrlid[i]
  402. ls_mtrlcode = dw_1.Object.mtrlcode[i]
  403. ls_pfcode = dw_1.Object.pfcode[i]
  404. ll_scid = 0 //dw_1.Object.u_mtrldef_scid[i]
  405. ls_status = dw_1.Object.status[i]
  406. ls_woodcode = dw_1.Object.woodcode[i]
  407. ls_pcode = dw_1.Object.pcode[i]
  408. li_statusflag = dw_1.Object.statusflag[i]
  409. li_woodcodeflag = dw_1.Object.woodcodeflag[i]
  410. li_pcodeflag = dw_1.Object.pcodeflag[i]
  411. ls_status_config = dw_1.Object.status_config[i]
  412. ls_woodcode_config = dw_1.Object.woodcode_config[i]
  413. ls_pcode_config = dw_1.Object.pcode_config[i]
  414. w_sys_wait_jdt.wf_inc(i)
  415. w_sys_wait_jdt.wf_set_msg(ls_mtrlcode+',清单:'+ls_pfcode+',正在计算中....')
  416. IF ls_pfcode = '' THEN CONTINUE
  417. IF dw_1.Object.ch[i] = 0 THEN CONTINUE
  418. ld_price = 0
  419. ld_wfjgprice = 0
  420. ld_outcost_self = 0
  421. ld_outcost = 0
  422. ld_wageprice = 0
  423. ld_otherprice = 0
  424. ld_eqprice = 0
  425. arg_msg = ''
  426. uo_cmpl.deep = 0
  427. uo_cmpl.ifcmpl_1 = True
  428. If (li_statusflag = 4 And ls_status <> ls_status_config Or &
  429. li_woodcodeflag = 4 And ls_woodcode <> ls_woodcode_config Or &
  430. li_pcodeflag = 4 And ls_pcode <> ls_pcode_config) THEN
  431. // IF uo_cmpl.uof_get_cost_dz(ll_mtrlid,ls_status,ls_woodcode,ls_pcode,ld_price,ld_wfjgprice,ld_outcost,ld_wageprice,ld_eqprice,arg_msg) = 0 THEN
  432. IF true THEN
  433. arg_msg = '物料:'+ls_mtrlcode+'取成本失败,'+arg_msg
  434. ls_msg = ls_msg + arg_msg + '~n'
  435. ll_fail++
  436. CONTINUE
  437. ld_price = 0
  438. ld_wfjgprice = 0
  439. ld_outcost = 0
  440. ld_wageprice = 0
  441. ld_eqprice = 0
  442. END IF
  443. ELSE
  444. IF uo_cmpl.uof_get_cost(ll_scid,ll_mtrlid,ls_mtrlcode,ls_pfcode,1,1,ld_price,ld_wfjgprice,ld_outcost,ld_wageprice,arg_msg) = 0 THEN
  445. arg_msg = '物料:'+ls_mtrlcode+'取成本失败,'+arg_msg
  446. ls_msg = ls_msg + arg_msg + '~n'
  447. ll_fail++
  448. CONTINUE
  449. ld_price = 0
  450. ld_wfjgprice = 0
  451. ld_outcost = 0
  452. ld_wageprice = 0
  453. ld_eqprice = 0
  454. END IF
  455. END IF
  456. ld_price = Round(ld_price,2)
  457. ld_wfjgprice = Round(ld_wfjgprice,2)
  458. ld_outcost = Round(ld_outcost,2)
  459. ld_wageprice = Round(ld_wageprice,2)
  460. ld_eqprice = Round(ld_eqprice,2)
  461. IF cbx_auto_copy.Checked THEN
  462. SELECT top 1 otherprice INTO :ld_otherprice
  463. FROM u_mtrlprice_sum
  464. WHERE mtrlid = :ll_mtrlid
  465. AND pfcode = :ls_pfcode
  466. AND sumdate < :sumdate
  467. AND status = :ls_status
  468. AND woodcode = :ls_woodcode
  469. AND pcode = :ls_pcode
  470. Order By sumdate Desc;
  471. IF sqlca.SQLCode <> 0 THEN
  472. arg_msg = '物料:'+ls_mtrlcode+'取上次附加成本失败,'+arg_msg
  473. ls_msg = ls_msg + arg_msg + '~n'
  474. ll_fail++
  475. CONTINUE
  476. END IF
  477. IF IsNull(ld_otherprice) THEN ld_otherprice = 0
  478. END IF
  479. UPDATE u_mtrlprice_sum
  480. SET price = :ld_price,
  481. cost = :ld_price + :ld_wfjgprice + :ld_wageprice + :ld_outcost + :ld_otherprice + :ld_eqprice,
  482. wfjgprice = :ld_wfjgprice,
  483. jgprice = :ld_wageprice,
  484. outcost = :ld_outcost,
  485. otherprice = :ld_otherprice,
  486. eqprice = :ld_eqprice,
  487. dscrp = :arg_msg,
  488. sumdate = :sumdate
  489. WHERE mtrlid = :ll_mtrlid
  490. AND pfcode = :ls_pfcode
  491. AND (sumdate = :sumdate OR sumdate = 0 )
  492. AND status = :ls_status
  493. AND woodcode = :ls_woodcode
  494. And pcode = :ls_pcode;
  495. IF sqlca.SQLCode = 0 THEN
  496. IF sqlca.SQLNRows = 0 THEN
  497. INSERT INTO u_mtrlprice_sum
  498. (sumdate,
  499. pfcode,
  500. mtrlid,
  501. price,
  502. cost,
  503. wfjgprice,
  504. jgprice,
  505. eqprice,
  506. outcost,
  507. otherprice,
  508. dscrp,
  509. status,
  510. woodcode,
  511. pcode)
  512. VALUES(:sumdate,
  513. :ls_pfcode,
  514. :ll_mtrlid,
  515. :ld_price,
  516. :ld_price + :ld_wfjgprice + :ld_wageprice + :ld_outcost + :ld_eqprice,
  517. :ld_wfjgprice,
  518. :ld_wageprice,
  519. :ld_eqprice,
  520. :ld_outcost,
  521. :ld_otherprice,
  522. :arg_msg,
  523. :ls_status,
  524. :ls_woodcode,
  525. :ls_pcode);
  526. IF sqlca.SQLCode <> 0 THEN
  527. arg_msg = '新增物料:'+ls_mtrlcode+'成本失败,'+sqlca.SQLErrText
  528. ls_msg = ls_msg + arg_msg + '~n'
  529. ll_fail++
  530. CONTINUE
  531. END IF
  532. END IF
  533. ELSE
  534. arg_msg = '更新物料:'+ls_mtrlcode+'成本失败,'+sqlca.SQLErrText
  535. ls_msg = ls_msg + arg_msg + '~n'
  536. ll_fail++
  537. CONTINUE
  538. END IF
  539. NEXT
  540. Close(w_sys_wait_jdt)
  541. COMMIT;
  542. IF ll_fail > 0 THEN
  543. MessageBox('提示','统计失败: ~n'+ls_msg)
  544. ELSE
  545. MessageBox('提示','统计成功!')
  546. END IF
  547. Destroy uo_cmpl
  548. cb_1.TriggerEvent(Clicked!)
  549. end event
  550. type cb_5 from uo_imflatbutton within w_rp_cmpl_mtrlcost
  551. integer x = 1024
  552. integer width = 274
  553. integer height = 164
  554. integer taborder = 30
  555. boolean bringtotop = true
  556. string text = "查看相关"
  557. string normalpicname = "find.bmp"
  558. integer picsize = 16
  559. toolbaralignment pic_align = alignattop!
  560. boolean border = false
  561. end type
  562. event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  563. String menustr
  564. menustr = "Text=查看清单~tEvent=ue_view_bom"
  565. menustr = menustr + "|" + "Text=查看工价表~tEvent=ue_view_workprice"
  566. menustr = menustr + "|" + "Text=查看统计历史~tEvent=ue_view_his"
  567. IF Len(Trim(menustr)) <> 0 THEN
  568. dmPopupMenu = CREATE m_Dfc_Control_PopupMenu
  569. dmPopupMenu.mf_BuildMenu(THIS, menustr)
  570. dmPopupMenu.mf_PopMenu()
  571. DESTROY dmPopupMenu
  572. END IF
  573. end event
  574. type ddlb_mtrlprp from uo_ddlb_mtrlorigin within w_rp_cmpl_mtrlcost
  575. integer x = 192
  576. integer y = 192
  577. integer width = 517
  578. integer height = 480
  579. integer taborder = 40
  580. boolean bringtotop = true
  581. string text = "自制"
  582. string item[] = {"自制","客户来料","采购","外协","全部来源"}
  583. end type
  584. event selectionchanged;CHOOSE CASE Index
  585. CASE 1
  586. uo_mtrlorigin = 0
  587. CASE 2
  588. uo_mtrlorigin = 1
  589. CASE 3
  590. uo_mtrlorigin = 2
  591. CASE 4
  592. uo_mtrlorigin = 3
  593. CASE 5
  594. uo_mtrlorigin = -1
  595. CASE ELSE
  596. uo_mtrlorigin = -1
  597. END CHOOSE
  598. cur_mtrlorigin = this.uo_mtrlorigin
  599. cb_1.triggerevent(clicked!)
  600. end event
  601. type tv_1 from uo_tv_mtrltype within w_rp_cmpl_mtrlcost
  602. integer y = 412
  603. integer width = 882
  604. integer height = 1740
  605. integer taborder = 20
  606. boolean bringtotop = true
  607. integer textsize = -9
  608. fontcharset fontcharset = gb2312charset!
  609. fontfamily fontfamily = anyfont!
  610. string facename = "宋体"
  611. boolean hideselection = false
  612. string picturename[] = {"Application!","Structure5!",""}
  613. end type
  614. event selectionchanged;call super::selectionchanged;if dw_edit_mode then return
  615. cur_handtype = THIS.uo_cur_info.handtype
  616. cur_handtype = cur_handtype + '%'
  617. cb_1.TriggerEvent(Clicked!)
  618. end event
  619. type cb_planprice from uo_imflatbutton within w_rp_cmpl_mtrlcost
  620. integer x = 1298
  621. integer width = 329
  622. integer height = 164
  623. integer taborder = 40
  624. boolean bringtotop = true
  625. string text = "更新计划价"
  626. string normalpicname = "update2.BMP"
  627. integer picsize = 16
  628. toolbaralignment pic_align = alignattop!
  629. boolean border = false
  630. end type
  631. event clicked;call super::clicked;Long ll_mtrlid
  632. Long ll_i
  633. String ls_mtrlcode
  634. Int li_ifdft
  635. Decimal ld_planprice
  636. Decimal ld_wageprice
  637. Decimal ld_cost
  638. Decimal ld_wfjgprice
  639. Decimal ld_outcost
  640. Decimal ld_otherprice,ld_eqprice
  641. String ls_msg
  642. String ls_pfcode
  643. String ls_status,ls_woodcode,ls_pcode
  644. String ls_status_f,ls_woodcode_f,ls_pcode_f
  645. Int li_pricepztype
  646. s_rp_cmpl_mtrlcost_update_planprice s_rst
  647. Open(w_rp_cmpl_mtrlcost_update_planprice)
  648. s_rst = Message.PowerObjectParm
  649. IF s_rst.ifupdate = 0 THEN RETURN
  650. Open(w_sys_wait_jdt)
  651. w_sys_wait_jdt.wf_set_msg('正在计算中....')
  652. w_sys_wait_jdt.wf_accepttol(dw_1.RowCount())
  653. FOR ll_i = 1 To dw_1.RowCount()
  654. ll_mtrlid = dw_1.Object.mtrlid[ll_i]
  655. ld_planprice = dw_1.Object.cost[ll_i]
  656. ls_mtrlcode = dw_1.Object.mtrlcode[ll_i]
  657. li_ifdft = 1 //dw_1.Object.ifdft[ll_i]
  658. li_pricepztype = 0 //dw_1.Object.pricepztype[ll_i]
  659. ls_status_f = dw_1.Object.status[ll_i]
  660. ls_woodcode_f = dw_1.Object.woodcode[ll_i]
  661. ls_pcode_f = dw_1.Object.pcode[ll_i]
  662. ld_wageprice = dw_1.Object.jgprice[ll_i]
  663. ld_cost = dw_1.Object.price[ll_i]
  664. ld_wfjgprice = dw_1.Object.wfjgprice[ll_i]
  665. ld_outcost = dw_1.Object.outcost[ll_i]
  666. ld_otherprice = dw_1.Object.otherprice[ll_i]
  667. ld_eqprice = dw_1.Object.eqprice[ll_i]
  668. ls_pfcode = dw_1.Object.pfcode[ll_i]
  669. CHOOSE CASE li_pricepztype
  670. CASE 0
  671. ls_status = ''
  672. ls_woodcode = ''
  673. ls_pcode = ''
  674. CASE 1
  675. ls_status = ls_status_f
  676. ls_woodcode = ''
  677. ls_pcode = ''
  678. CASE 2
  679. ls_status = ''
  680. ls_woodcode = ls_woodcode_f
  681. ls_pcode = ''
  682. CASE 3
  683. ls_status = ''
  684. ls_woodcode = ''
  685. ls_pcode = ls_pcode_f
  686. CASE 4
  687. ls_status = ls_status_f
  688. ls_woodcode = ls_woodcode_f
  689. ls_pcode = ''
  690. CASE 5
  691. ls_status = ''
  692. ls_woodcode = ls_woodcode_f
  693. ls_pcode = ls_pcode_f
  694. CASE 6
  695. ls_status = ls_status_f
  696. ls_woodcode = ''
  697. ls_pcode = ls_pcode_f
  698. CASE 7
  699. ls_status = ls_status_f
  700. ls_woodcode = ls_woodcode_f
  701. ls_pcode = ls_pcode_f
  702. END CHOOSE
  703. w_sys_wait_jdt.wf_inc(ll_i)
  704. //
  705. // IF li_ifdft = 0 THEN CONTINUE
  706. //
  707. IF s_rst.ifprice = 1 And ld_cost = 0 THEN CONTINUE
  708. IF s_rst.ifjgprice = 1 And ld_wageprice = 0 THEN CONTINUE
  709. IF s_rst.ifwfjgprice = 1 And ld_wfjgprice = 0 THEN CONTINUE
  710. IF s_rst.ifoutcost = 1 And ld_outcost = 0 THEN CONTINUE
  711. IF s_rst.ifotherprice = 1 And ld_otherprice = 0 THEN CONTINUE
  712. IF s_rst.ifeqprice = 1 And ld_eqprice = 0 THEN CONTINUE
  713. w_sys_wait_jdt.wf_set_msg(ls_mtrlcode+',清单:'+ls_pfcode+',正在建立计划价历史....')
  714. // UPDATE u_mtrl_planprice_his
  715. // SET planprice = :ld_planprice,
  716. // cost = :ld_cost,
  717. // wageprice = :ld_wageprice,
  718. // wfjgprice = :ld_wfjgprice,
  719. // fprice = :ld_outcost,
  720. // buildtype = 1,
  721. // eqprice = :ld_eqprice
  722. // WHERE mtrlid = :ll_mtrlid
  723. // AND status = :ls_status
  724. // AND woodcode = :ls_woodcode
  725. // AND pcode = :ls_pcode
  726. // And cmpldate = getdate();
  727. // IF sqlca.SQLCode = 0 THEN
  728. // IF sqlca.SQLNRows = 0 THEN
  729. // INSERT INTO u_mtrl_planprice_his
  730. // (mtrlid,
  731. // cmpldate,
  732. // planprice,
  733. // wageprice,
  734. // cost,
  735. // wfjgprice,
  736. // fprice,
  737. // buildtype,
  738. // status,
  739. // woodcode,
  740. // pcode,
  741. // eqprice)
  742. // VALUES
  743. // (:ll_mtrlid,
  744. // getdate(),
  745. // :ld_planprice,
  746. // :ld_wageprice,
  747. // :ld_cost,
  748. // :ld_wfjgprice,
  749. // :ld_outcost,
  750. // 1,
  751. // :ls_status,
  752. // :ls_woodcode,
  753. // :ls_pcode,
  754. // :ld_eqprice);
  755. // IF sqlca.SQLCode <> 0 THEN
  756. // ls_msg = sqlca.SQLErrText
  757. // ROLLBACK;
  758. // MessageBox('错误','物料:'+ls_mtrlcode+'建立计划价历史失败,'+ls_msg)
  759. // Close(w_sys_wait_jdt)
  760. // RETURN
  761. // END IF
  762. // ELSE
  763. // IF sqlca.SQLCode <> 0 THEN
  764. // ls_msg = sqlca.SQLErrText
  765. // ROLLBACK;
  766. // MessageBox('错误','物料:'+ls_mtrlcode+'更新计划价失败,'+ls_msg)
  767. // Close(w_sys_wait_jdt)
  768. // RETURN
  769. // END IF
  770. // END IF
  771. // END IF
  772. w_sys_wait_jdt.wf_set_msg(ls_mtrlcode+',清单:'+ls_pfcode+',正在更新计划价....')
  773. UPDATE u_mtrldef
  774. SET planprice = :ld_planprice
  775. WHERE mtrlid = :ll_mtrlid
  776. ;
  777. IF sqlca.SQLCode <> 0 THEN
  778. ls_msg = sqlca.SQLErrText
  779. ROLLBACK;
  780. MessageBox('错误','物料:'+ls_mtrlcode+'更新计划价失败,'+ls_msg)
  781. Close(w_sys_wait_jdt)
  782. RETURN
  783. END IF
  784. // UPDATE u_mtrldef_planprice
  785. // SET planprice = :ld_planprice
  786. // WHERE mtrlid = :ll_mtrlid
  787. // AND status = :ls_status
  788. // AND woodcode = :ls_woodcode
  789. // And pcode = :ls_pcode ;
  790. // IF sqlca.SQLCode = 0 THEN
  791. // IF sqlca.SQLNRows = 0 THEN
  792. // INSERT INTO u_mtrldef_planprice
  793. // (mtrlid,
  794. // status,
  795. // woodcode,
  796. // pcode,
  797. // planprice)
  798. // VALUES
  799. // (:ll_mtrlid,
  800. // :ls_status,
  801. // :ls_woodcode,
  802. // :ls_pcode,
  803. // :ld_planprice);
  804. // IF sqlca.SQLCode <> 0 THEN
  805. // ls_msg = sqlca.SQLErrText
  806. // ROLLBACK;
  807. // MessageBox('错误','物料:'+ls_mtrlcode+'更新计划价失败,'+ls_msg)
  808. // Close(w_sys_wait_jdt)
  809. // RETURN
  810. // END IF
  811. // END IF
  812. //
  813. // ELSE
  814. // IF sqlca.SQLCode <> 0 THEN
  815. // ls_msg = sqlca.SQLErrText
  816. // ROLLBACK;
  817. // MessageBox('错误','物料:'+ls_mtrlcode+'更新计划价失败,'+ls_msg)
  818. // Close(w_sys_wait_jdt)
  819. // RETURN
  820. // END IF
  821. // END IF
  822. NEXT
  823. Close(w_sys_wait_jdt)
  824. COMMIT;
  825. MessageBox('系统提示','更新计划价成功!')
  826. end event
  827. type cb_4 from commandbutton within w_rp_cmpl_mtrlcost
  828. integer x = 1344
  829. integer y = 192
  830. integer width = 187
  831. integer height = 76
  832. integer taborder = 50
  833. boolean bringtotop = true
  834. integer textsize = -9
  835. integer weight = 400
  836. fontcharset fontcharset = gb2312charset!
  837. fontpitch fontpitch = variable!
  838. string facename = "宋体"
  839. string text = "全选"
  840. end type
  841. event clicked;Long i
  842. dw_1.AcceptText()
  843. dw_1.SetRedraw(False)
  844. FOR i = 1 To dw_1.RowCount()
  845. dw_1.Object.ch[i] = 1
  846. NEXT
  847. dw_1.SetRedraw(True)
  848. end event
  849. type cb_6 from commandbutton within w_rp_cmpl_mtrlcost
  850. integer x = 1536
  851. integer y = 192
  852. integer width = 219
  853. integer height = 76
  854. integer taborder = 60
  855. boolean bringtotop = true
  856. integer textsize = -9
  857. integer weight = 400
  858. fontcharset fontcharset = gb2312charset!
  859. fontpitch fontpitch = variable!
  860. string facename = "宋体"
  861. string text = "全不选"
  862. end type
  863. event clicked;Long i
  864. dw_1.AcceptText()
  865. dw_1.SetRedraw(False)
  866. FOR i = 1 To dw_1.RowCount()
  867. dw_1.Object.ch[i] = 0
  868. NEXT
  869. dw_1.SetRedraw(True)
  870. end event
  871. type cbx_auto_copy from checkbox within w_rp_cmpl_mtrlcost
  872. integer x = 1778
  873. integer y = 200
  874. integer width = 795
  875. integer height = 60
  876. boolean bringtotop = true
  877. integer textsize = -9
  878. integer weight = 400
  879. fontcharset fontcharset = gb2312charset!
  880. fontpitch fontpitch = variable!
  881. string facename = "宋体"
  882. long textcolor = 33554432
  883. long backcolor = 134217739
  884. string text = "统计时自动复制上次附加成本"
  885. end type
  886. event clicked;Int if_autocopy
  887. IF THIS.Checked THEN
  888. if_autocopy = 1
  889. ELSE
  890. if_autocopy = 0
  891. END IF
  892. f_SetProfileString (sys_empid,dw_1.DataObject, "if_autocopy", String(if_autocopy))
  893. end event
  894. event constructor;Int if_autocopy
  895. if_autocopy = Integer(f_ProfileString (sys_empid,dw_1.DataObject, "if_autocopy", '0'))
  896. IF if_autocopy = 0 THEN
  897. THIS.Checked = FALSE
  898. ELSE
  899. THIS.Checked = TRUE
  900. END IF
  901. end event
  902. type cb_7 from commandbutton within w_rp_cmpl_mtrlcost
  903. integer x = 2999
  904. integer y = 188
  905. integer width = 402
  906. integer height = 84
  907. integer taborder = 70
  908. boolean bringtotop = true
  909. integer textsize = -9
  910. integer weight = 400
  911. fontcharset fontcharset = gb2312charset!
  912. fontpitch fontpitch = variable!
  913. string facename = "宋体"
  914. string text = "批设附加成本"
  915. end type
  916. event clicked;Int rslt = 1
  917. Long i,ll_row,ll_sumdate
  918. Decimal ld_otherprice
  919. String ls_mtrlcode
  920. String ls_pfcode
  921. dw_1.AcceptText()
  922. ll_row = dw_1.RowCount()
  923. IF MessageBox (publ_operator,"是否确定要按第一行附加成本批设置全部附加成本吗?",Question!,YesNo! ) = 2 THEN RETURN
  924. IF ll_row > 0 THEN
  925. ld_otherprice = dw_1.Object.otherprice[1]
  926. END IF
  927. Open(w_sys_wait_jdt)
  928. w_sys_wait_jdt.wf_set_msg('正在设置....')
  929. w_sys_wait_jdt.wf_accepttol(ll_row - 1)
  930. dw_1.SetRedraw(FALSE)
  931. FOR i = 2 TO ll_row
  932. ls_mtrlcode = dw_1.Object.mtrlcode[i]
  933. ls_pfcode = dw_1.Object.pfcode[i]
  934. ll_sumdate = dw_1.Object.u_mtrlprice_sum_sumdate[i]
  935. w_sys_wait_jdt.wf_inc(i)
  936. w_sys_wait_jdt.wf_set_msg(ls_mtrlcode+',清单:'+ls_pfcode+',正在设置中....')
  937. IF ls_pfcode = '' THEN CONTINUE
  938. IF ll_sumdate = 0 THEN CONTINUE
  939. dw_1.Object.otherprice[i] = ld_otherprice
  940. NEXT
  941. dw_1.SetRedraw(TRUE)
  942. Close(w_sys_wait_jdt)
  943. end event
  944. type cb_8 from commandbutton within w_rp_cmpl_mtrlcost
  945. integer x = 2592
  946. integer y = 188
  947. integer width = 402
  948. integer height = 84
  949. integer taborder = 70
  950. boolean bringtotop = true
  951. integer textsize = -9
  952. integer weight = 400
  953. fontcharset fontcharset = gb2312charset!
  954. fontpitch fontpitch = variable!
  955. string facename = "宋体"
  956. string text = "保存附加成本"
  957. end type
  958. event clicked;int rslt = 1
  959. Long i,ll_row,ll_mtrlid,ll_sumdate
  960. Decimal ld_otherprice,ld_eqprice
  961. String ls_mtrlcode
  962. String ls_pfcode,arg_msg
  963. dw_1.AcceptText()
  964. ll_row = dw_1.RowCount()
  965. IF MessageBox (publ_operator,"是否确定要保存附加成本吗?",Question!,YesNo! ) = 2 THEN RETURN
  966. OPEN(w_sys_wait_jdt)
  967. w_sys_wait_jdt.wf_set_msg('正在保存....')
  968. w_sys_wait_jdt.wf_accepttol(ll_row)
  969. FOR i = 1 TO ll_row
  970. ll_mtrlid = dw_1.Object.mtrlid[i]
  971. ls_mtrlcode = dw_1.Object.mtrlcode[i]
  972. ls_pfcode = dw_1.Object.pfcode[i]
  973. ll_sumdate = dw_1.Object.u_mtrlprice_sum_sumdate[i]
  974. ld_otherprice = dw_1.Object.otherprice[i]
  975. ld_eqprice = dw_1.Object.eqprice[i]
  976. w_sys_wait_jdt.wf_inc(i)
  977. w_sys_wait_jdt.wf_set_msg(ls_mtrlcode+',清单:'+ls_pfcode+',正在保存中....')
  978. IF ls_pfcode = '' THEN CONTINUE
  979. IF ll_sumdate = 0 THEN CONTINUE
  980. UPDATE u_mtrlprice_sum
  981. SET cost = price + wfjgprice + jgprice + outcost + :ld_otherprice + :ld_eqprice,
  982. otherprice = :ld_otherprice
  983. WHERE mtrlid = :ll_mtrlid
  984. AND pfcode = :ls_pfcode
  985. AND sumdate = :ll_sumdate;
  986. IF sqlca.SQLCode <> 0 THEN
  987. arg_msg = '更新物料:'+ls_mtrlcode+'成本失败,'+sqlca.SQLErrText
  988. rslt = 0
  989. goto ext
  990. END IF
  991. NEXT
  992. ext:
  993. CLOSE(w_sys_wait_jdt)
  994. IF rslt = 0 THEN
  995. ROLLBACK;
  996. MessageBox('提示','保存失败: ~n'+arg_msg)
  997. ELSE
  998. COMMIT;
  999. MessageBox('提示','保存成功!')
  1000. END IF
  1001. cb_1.TriggerEvent(Clicked!)
  1002. end event
  1003. type ddlb_ptoplp from dropdownlistbox within w_rp_cmpl_mtrlcost
  1004. integer x = 5
  1005. integer y = 312
  1006. integer width = 2066
  1007. integer height = 596
  1008. integer taborder = 210
  1009. boolean bringtotop = true
  1010. integer textsize = -9
  1011. integer weight = 400
  1012. fontcharset fontcharset = gb2312charset!
  1013. fontpitch fontpitch = variable!
  1014. string facename = "宋体"
  1015. long textcolor = 33554432
  1016. string text = "(材料成本 + 人力成本 + 外协成本) ×"
  1017. boolean sorted = false
  1018. boolean vscrollbar = true
  1019. string item[] = {"材料成本×","人力成本×","外协成本×","费用成本×","(材料成本 + 人力成本) ×","(材料成本 + 人力成本 + 外协成本) ×","(材料成本 + 人力成本 + 外协成本 + 费用成本) ×"}
  1020. borderstyle borderstyle = stylelowered!
  1021. end type
  1022. type em_ptoplp from editmask within w_rp_cmpl_mtrlcost
  1023. integer x = 2075
  1024. integer y = 312
  1025. integer width = 197
  1026. integer height = 80
  1027. integer taborder = 220
  1028. boolean bringtotop = true
  1029. integer textsize = -9
  1030. integer weight = 400
  1031. fontcharset fontcharset = gb2312charset!
  1032. fontpitch fontpitch = variable!
  1033. string facename = "宋体"
  1034. long textcolor = 33554432
  1035. long backcolor = 16777215
  1036. string text = "1.00"
  1037. alignment alignment = right!
  1038. borderstyle borderstyle = stylelowered!
  1039. string mask = "#0.00"
  1040. end type
  1041. event modified;this.text=string(dec(this.text),'#0.00')
  1042. end event
  1043. type cb_ptoplp from commandbutton within w_rp_cmpl_mtrlcost
  1044. integer x = 2281
  1045. integer y = 312
  1046. integer width = 402
  1047. integer height = 84
  1048. integer taborder = 230
  1049. boolean bringtotop = true
  1050. integer textsize = -9
  1051. integer weight = 400
  1052. fontcharset fontcharset = gb2312charset!
  1053. fontpitch fontpitch = variable!
  1054. string facename = "宋体"
  1055. string text = "-> 附加成本"
  1056. end type
  1057. event clicked;Long ls_i,ls_count
  1058. ls_count = dw_1.RowCount()
  1059. dw_1.AcceptText()
  1060. OPEN(w_sys_wait_jdt)
  1061. w_sys_wait_jdt.wf_set_msg('正在计算....')
  1062. w_sys_wait_jdt.wf_accepttol(ls_count)
  1063. dw_1.SetRedraw(FALSE)
  1064. FOR ls_i = 1 TO ls_count
  1065. w_sys_wait_jdt.wf_inc(ls_i)
  1066. w_sys_wait_jdt.wf_set_msg('行:'+String(ls_i)+',正在计算中....')
  1067. IF dw_1.Object.ch[ls_i] = 0 THEN CONTINUE
  1068. IF dw_1.Object.u_mtrlprice_sum_sumdate[ls_i] = 0 THEN CONTINUE
  1069. IF ddlb_ptoplp.Text = '材料成本×' THEN
  1070. dw_1.Object.otherprice[ls_i] = Round(dw_1.Object.price[ls_i] * Dec(em_ptoplp.Text),2)
  1071. ELSEIF ddlb_ptoplp.Text = '人力成本×' THEN
  1072. dw_1.Object.otherprice[ls_i] = Round(dw_1.Object.jgprice[ls_i] * Dec(em_ptoplp.Text),2)
  1073. ELSEIF ddlb_ptoplp.Text = '外协成本×' THEN
  1074. dw_1.Object.otherprice[ls_i] = Round(dw_1.Object.wfjgprice[ls_i] * Dec(em_ptoplp.Text),2)
  1075. ELSEIF ddlb_ptoplp.Text = '费用成本×' THEN
  1076. dw_1.Object.otherprice[ls_i] = Round(dw_1.Object.outcost[ls_i] * Dec(em_ptoplp.Text),2)
  1077. ELSEIF ddlb_ptoplp.Text = '(材料成本 + 人力成本) ×' THEN
  1078. dw_1.Object.otherprice[ls_i] = Round((dw_1.Object.price[ls_i] + dw_1.Object.jgprice[ls_i]) * Dec(em_ptoplp.Text),2)
  1079. ELSEIF ddlb_ptoplp.Text = '(材料成本 + 人力成本 + 外协成本) ×' THEN
  1080. dw_1.Object.otherprice[ls_i] = Round((dw_1.Object.price[ls_i] + dw_1.Object.jgprice[ls_i] + dw_1.Object.wfjgprice[ls_i]) * Dec(em_ptoplp.Text),2)
  1081. ELSEIF ddlb_ptoplp.Text = '(材料成本 + 人力成本 + 外协成本 + 费用成本) ×' THEN
  1082. dw_1.Object.otherprice[ls_i] = Round((dw_1.Object.price[ls_i] + dw_1.Object.jgprice[ls_i] + dw_1.Object.wfjgprice[ls_i] + dw_1.Object.outcost[ls_i]) * Dec(em_ptoplp.Text),2)
  1083. END IF
  1084. NEXT
  1085. dw_1.SetRedraw(TRUE)
  1086. CLOSE(w_sys_wait_jdt)
  1087. end event
  1088. type cb_add_mtrl from uo_imflatbutton within w_rp_cmpl_mtrlcost
  1089. integer x = 581
  1090. integer width = 288
  1091. integer height = 164
  1092. integer taborder = 30
  1093. boolean bringtotop = true
  1094. string text = "增加资料"
  1095. string normalpicname = "OPEN.BMP"
  1096. integer picsize = 16
  1097. toolbaralignment pic_align = alignattop!
  1098. boolean border = false
  1099. end type
  1100. event clicked;call super::clicked;IF MessageBox('询问','是否确认要插入新增的物料资料?',question!,yesno!) = 2 THEN RETURN
  1101. w_sys_wait.wf_set_msg('正在插入新增资料...')
  1102. w_sys_wait.Show()
  1103. INSERT INTO u_mtrlprice_sum
  1104. (mtrlid,
  1105. status,
  1106. woodcode,
  1107. pcode,
  1108. pfcode,
  1109. sumdate)
  1110. SELECT u_mtrl_configure.Mtrlid,
  1111. u_mtrl_configure.name,
  1112. '' AS woodcode,
  1113. '' AS pcode,
  1114. u_mtrl_configure.name ,
  1115. 0
  1116. FROM u_mtrl_configure INNER JOIN
  1117. u_mtrldef ON u_mtrl_configure.Mtrlid = u_mtrldef.mtrlid
  1118. WHERE (u_mtrldef.statusflag = 2) AND (NOT EXISTS
  1119. (SELECT *
  1120. FROM u_mtrlprice_sum
  1121. WHERE mtrlid = u_mtrl_configure.mtrlid AND status = u_mtrl_configure.name AND
  1122. woodcode = '' And pcode = ''));
  1123. IF sqlca.SQLCode <> 0 THEN
  1124. w_sys_wait.Hide()
  1125. MessageBox('Error','插入新增的组合配置失败,'+sqlca.SQLErrText)
  1126. ROLLBACK;
  1127. RETURN
  1128. END IF
  1129. INSERT INTO u_mtrlprice_sum
  1130. (mtrlid,
  1131. status,
  1132. woodcode,
  1133. pcode,
  1134. pfcode,
  1135. sumdate)
  1136. SELECT u_mtrldef.mtrlid,
  1137. CASE statusflag WHEN 4 THEN status_config ELSE '' END AS status,
  1138. CASE woodcodeflag WHEN 4 THEN woodcode_config ELSE '' END AS woodcode,
  1139. CASE pcodeflag WHEN 4 THEN pcode_config ELSE '' END AS pcode,
  1140. u_mtrl_pf.pfcode,
  1141. 0
  1142. FROM u_mtrldef INNER JOIN (select distinct mtrlid, pfcode from u_PrdPF)
  1143. u_mtrl_pf ON u_mtrldef.mtrlid = u_mtrl_pf.Mtrlid
  1144. WHERE (u_mtrldef.statusflag <> 2) AND (NOT EXISTS
  1145. (SELECT *
  1146. FROM u_mtrlprice_sum
  1147. WHERE mtrlid = u_mtrldef.mtrlid AND
  1148. status = CASE statusflag WHEN 4 THEN status_config ELSE '' END AND
  1149. woodcode = CASE woodcodeflag WHEN 4 THEN woodcode_config ELSE '' END
  1150. And pcode = CASE pcodeflag WHEN 4 THEN pcode_config ELSE '' END));
  1151. IF sqlca.SQLCode <> 0 THEN
  1152. w_sys_wait.Hide()
  1153. MessageBox('Error','插入新增的产品及物料失败,'+sqlca.SQLErrText)
  1154. ROLLBACK;
  1155. RETURN
  1156. END IF
  1157. //INSERT INTO u_mtrlprice_sum
  1158. // (mtrlid,
  1159. // status,
  1160. // woodcode,
  1161. // pcode,
  1162. // pfcode,
  1163. // sumdate)
  1164. // SELECT DISTINCT
  1165. // u_Order_ml.mtrlid,
  1166. // u_Order_ml.status_mode,
  1167. // u_Order_ml.woodcode,
  1168. // u_Order_ml.pcode,
  1169. // CASE u_mtrldef.statusflag WHEN 2 THEN u_Order_ml.status_mode ELSE u_order_ml.pfcode
  1170. // END AS pfcode,
  1171. // 0
  1172. // FROM u_Order_ml INNER JOIN
  1173. // u_mtrldef ON u_Order_ml.mtrlid = u_mtrldef.mtrlid
  1174. // WHERE (NOT EXISTS
  1175. // (SELECT *
  1176. // FROM u_mtrlprice_sum
  1177. // WHERE mtrlid = u_order_ml.mtrlid AND status = u_Order_ml.status_mode AND
  1178. // woodcode = u_Order_ml.woodcode AND pcode = u_Order_ml.pcode)) AND
  1179. // (u_Order_ml.status <> 0) And (u_mtrldef.statusflag = 4 Or u_mtrldef.woodcodeflag = 4 Or u_mtrldef.pcodeflag = 4);
  1180. //IF sqlca.SQLCode <> 0 THEN
  1181. // w_sys_wait.Hide()
  1182. // MessageBox('Error','插入生产中涉及到的新部件选配产品失败,'+sqlca.SQLErrText)
  1183. // ROLLBACK;
  1184. // RETURN
  1185. //END IF
  1186. COMMIT;
  1187. w_sys_wait.Hide()
  1188. messagebox('系统提示','操作成功!')
  1189. cb_1.TriggerEvent(Clicked!)
  1190. end event
  1191. type cb_edit from uo_imflatbutton within w_rp_cmpl_mtrlcost
  1192. integer x = 302
  1193. integer width = 274
  1194. integer height = 164
  1195. integer taborder = 50
  1196. boolean bringtotop = true
  1197. string text = "手动修改"
  1198. string normalpicname = "open.bmp"
  1199. integer picsize = 16
  1200. toolbaralignment pic_align = alignattop!
  1201. boolean border = false
  1202. end type
  1203. event clicked;call super::clicked;IF NOT f_power_ind(1631) THEN
  1204. MessageBox(publ_operator,"你没有使用权限")
  1205. RETURN
  1206. END IF
  1207. IF dw_edit_mode THEN
  1208. IF MessageBox(publ_operator,'是否要确定放弃保存资料', Exclamation!, YesNo!, 2) = 2 THEN
  1209. RETURN
  1210. END IF
  1211. END IF
  1212. dw_edit_mode = NOT dw_edit_mode
  1213. wf_face()
  1214. IF NOT dw_edit_mode THEN
  1215. cb_1.TriggerEvent(Clicked!)
  1216. END IF
  1217. end event
  1218. type cb_save from uo_imflatbutton within w_rp_cmpl_mtrlcost
  1219. integer x = 151
  1220. integer width = 151
  1221. integer height = 164
  1222. integer taborder = 50
  1223. boolean bringtotop = true
  1224. boolean enabled = false
  1225. string text = "保存"
  1226. string normalpicname = "save.bmp"
  1227. integer picsize = 16
  1228. toolbaralignment pic_align = alignattop!
  1229. boolean border = false
  1230. end type
  1231. event clicked;call super::clicked;
  1232. IF NOT f_power_ind(1631) THEN
  1233. MessageBox(publ_operator,"你没有使用权限")
  1234. RETURN
  1235. END IF
  1236. int rslt = 1
  1237. Long i,ll_row,ll_mtrlid,ll_sumdate
  1238. Decimal ld_otherprice,ld_eqprice
  1239. String ls_mtrlcode
  1240. String ls_pfcode,arg_msg
  1241. decimal ld_price,ld_wfjgprice,ld_jgprice,ld_outcost
  1242. dw_1.AcceptText()
  1243. ll_row = dw_1.RowCount()
  1244. IF MessageBox (publ_operator,"是否确定要保存修改后的成本吗?",Question!,YesNo! ) = 2 THEN RETURN
  1245. OPEN(w_sys_wait_jdt)
  1246. w_sys_wait_jdt.wf_set_msg('正在保存....')
  1247. w_sys_wait_jdt.wf_accepttol(ll_row)
  1248. FOR i = 1 TO ll_row
  1249. ll_mtrlid = dw_1.Object.mtrlid[i]
  1250. ls_mtrlcode = dw_1.Object.mtrlcode[i]
  1251. ls_pfcode = dw_1.Object.pfcode[i]
  1252. ll_sumdate = dw_1.Object.u_mtrlprice_sum_sumdate[i]
  1253. ld_price = dw_1.Object.price[i]
  1254. ld_jgprice = dw_1.Object.jgprice[i]
  1255. ld_wfjgprice = dw_1.Object.wfjgprice[i]
  1256. ld_outcost = dw_1.Object.outcost[i]
  1257. ld_eqprice = dw_1.Object.eqprice[i]
  1258. ld_otherprice = dw_1.Object.otherprice[i]
  1259. w_sys_wait_jdt.wf_inc(i)
  1260. w_sys_wait_jdt.wf_set_msg(ls_mtrlcode+',清单:'+ls_pfcode+',正在保存中....')
  1261. IF ls_pfcode = '' THEN CONTINUE
  1262. IF ll_sumdate = 0 THEN CONTINUE
  1263. UPDATE u_mtrlprice_sum
  1264. SET price = :ld_price,
  1265. cost = :ld_price + :ld_wfjgprice + :ld_jgprice + :ld_outcost + :ld_otherprice + :ld_eqprice,
  1266. wfjgprice = :ld_wfjgprice,
  1267. jgprice = :ld_jgprice,
  1268. outcost = :ld_outcost,
  1269. otherprice = :ld_otherprice,
  1270. eqprice = :ld_eqprice
  1271. WHERE mtrlid = :ll_mtrlid
  1272. AND pfcode = :ls_pfcode
  1273. AND sumdate = :ll_sumdate;
  1274. IF sqlca.SQLCode <> 0 THEN
  1275. arg_msg = '更新物料:'+ls_mtrlcode+'成本失败,'+sqlca.SQLErrText
  1276. rslt = 0
  1277. goto ext
  1278. END IF
  1279. NEXT
  1280. ext:
  1281. CLOSE(w_sys_wait_jdt)
  1282. IF rslt = 0 THEN
  1283. ROLLBACK;
  1284. MessageBox('提示','保存失败: ~n'+arg_msg)
  1285. ELSE
  1286. COMMIT;
  1287. MessageBox('提示','保存成功!')
  1288. END IF
  1289. cb_1.TriggerEvent(Clicked!)
  1290. dw_edit_mode = NOT dw_edit_mode
  1291. wf_face()
  1292. end event
  1293. type cbx_isuse from checkbox within w_rp_cmpl_mtrlcost
  1294. integer x = 814
  1295. integer y = 200
  1296. integer width = 466
  1297. integer height = 60
  1298. boolean bringtotop = true
  1299. integer textsize = -9
  1300. integer weight = 400
  1301. fontcharset fontcharset = gb2312charset!
  1302. fontpitch fontpitch = variable!
  1303. string facename = "宋体"
  1304. long textcolor = 33554432
  1305. long backcolor = 134217739
  1306. string text = "不显示无效资料"
  1307. boolean checked = true
  1308. end type
  1309. event clicked;Int if_isuse
  1310. IF THIS.Checked THEN
  1311. if_isuse = 1
  1312. ELSE
  1313. if_isuse = 0
  1314. END IF
  1315. f_SetProfileString (sys_empid,dw_1.DataObject, "if_isuse", String(if_isuse))
  1316. cb_1.triggerevent(clicked!)
  1317. end event
  1318. event constructor;Int if_isuse
  1319. if_isuse = Integer(f_ProfileString (sys_empid,dw_1.DataObject, "if_isuse", '1'))
  1320. IF if_isuse = 0 THEN
  1321. This.Checked = False
  1322. ELSE
  1323. This.Checked = True
  1324. END IF
  1325. end event