w_quoterqmtrl.srw 48 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813
  1. $PBExportHeader$w_quoterqmtrl.srw
  2. forward
  3. global type w_quoterqmtrl from w_publ_base
  4. end type
  5. type cb_1 from uo_imflatbutton within w_quoterqmtrl
  6. end type
  7. type cb_mx1 from uo_imflatbutton within w_quoterqmtrl
  8. end type
  9. type cb_mx2 from uo_imflatbutton within w_quoterqmtrl
  10. end type
  11. type dw_2 from u_dw_rbtnfilter within w_quoterqmtrl
  12. end type
  13. type cb_cmpl from uo_imflatbutton within w_quoterqmtrl
  14. end type
  15. type cb_rqmtrl from uo_imflatbutton within w_quoterqmtrl
  16. end type
  17. type cb_workprice from uo_imflatbutton within w_quoterqmtrl
  18. end type
  19. type tab_1 from tab within w_quoterqmtrl
  20. end type
  21. type tabpage_1 from userobject within tab_1
  22. end type
  23. type dw_1 from u_dw_rbtnfilter within tabpage_1
  24. end type
  25. type tabpage_1 from userobject within tab_1
  26. dw_1 dw_1
  27. end type
  28. type tabpage_2 from userobject within tab_1
  29. end type
  30. type dw_3 from u_dw_rbtnfilter within tabpage_2
  31. end type
  32. type tabpage_2 from userobject within tab_1
  33. dw_3 dw_3
  34. end type
  35. type tab_1 from tab within w_quoterqmtrl
  36. tabpage_1 tabpage_1
  37. tabpage_2 tabpage_2
  38. end type
  39. type cb_chmtrl from uo_imflatbutton within w_quoterqmtrl
  40. end type
  41. type mle_message from multilineedit within w_quoterqmtrl
  42. end type
  43. type cb_other from uo_imflatbutton within w_quoterqmtrl
  44. end type
  45. type cb_2 from uo_imflatbutton within w_quoterqmtrl
  46. end type
  47. type ln_bar from line within w_quoterqmtrl
  48. end type
  49. type ln_bar2 from line within w_quoterqmtrl
  50. end type
  51. type r_bar from rectangle within w_quoterqmtrl
  52. end type
  53. end forward
  54. global type w_quoterqmtrl from w_publ_base
  55. integer width = 3611
  56. integer height = 2380
  57. string title = "报价单明细成本"
  58. boolean minbox = false
  59. windowtype windowtype = response!
  60. event ue_cmpl ( )
  61. event ue_addrqmtrl ( )
  62. event ue_delmtrlmx ( )
  63. event ue_changemtrl ( )
  64. event ue_addworkprice ( )
  65. event ue_view_workprice ( )
  66. event ue_view_structure ( )
  67. event ue_add_workprice ( )
  68. event ue_add_structure ( )
  69. event ue_cmpl_mj ( )
  70. event ue_cmpl_zc ( )
  71. event ue_f8 ( )
  72. cb_1 cb_1
  73. cb_mx1 cb_mx1
  74. cb_mx2 cb_mx2
  75. dw_2 dw_2
  76. cb_cmpl cb_cmpl
  77. cb_rqmtrl cb_rqmtrl
  78. cb_workprice cb_workprice
  79. tab_1 tab_1
  80. cb_chmtrl cb_chmtrl
  81. mle_message mle_message
  82. cb_other cb_other
  83. cb_2 cb_2
  84. ln_bar ln_bar
  85. ln_bar2 ln_bar2
  86. r_bar r_bar
  87. end type
  88. global w_quoterqmtrl w_quoterqmtrl
  89. type variables
  90. s_quotemx_open s_mx
  91. uo_quote uo_q
  92. datawindow dw_1,dw_3
  93. long il_printid = 0
  94. end variables
  95. forward prototypes
  96. public function integer wf_addwpmx (long arg_mtrlid, string arg_pfcode, decimal arg_qty, ref string arg_msg)
  97. public subroutine wf_delmtrlmx (long arg_mtrlid, long arg_lp, long arg_row)
  98. public subroutine wf_addmtrlmx ()
  99. public subroutine wf_addworkprice ()
  100. public function window getparentwin ()
  101. end prototypes
  102. event ue_cmpl();Long ll_row,ll_mtrlid
  103. Decimal ld_price,ld_wfjgprice,ld_jgprice
  104. String ls_mtrlcode,ls_pfcode,arg_msg
  105. uo_cmplcost uo_cmpl
  106. dw_2.AcceptText()
  107. dw_1.AcceptText()
  108. dw_3.AcceptText()
  109. ll_row = dw_2.GetRow()
  110. IF ll_row <= 0 THEN
  111. MessageBox('提示','没有可计算的物料')
  112. RETURN
  113. END IF
  114. Long ll_i
  115. Decimal ld_outcost,ld_outcost_sum
  116. FOR ll_i = 1 TO dw_1.RowCount()
  117. IF dw_1.Object.u_mtrldef_mtrlorigin[ll_i] = 2 THEN
  118. ld_price = ld_price + dw_1.Object.u_quoterqmtrl_rqqty[ll_i] * dw_1.Object.u_quoterqmtrl_newprice[ll_i]
  119. ELSEIF dw_1.Object.u_mtrldef_mtrlorigin[ll_i] = 3 THEN
  120. ld_wfjgprice = ld_wfjgprice + dw_1.Object.u_quoterqmtrl_rqqty[ll_i] * dw_1.Object.u_quoterqmtrl_newprice[ll_i]
  121. END IF
  122. ll_mtrlid = dw_1.Object.u_quoterqmtrl_mtrlid[ll_i]
  123. // SELECT isnull(sum(u_mtrl_cost.cost),0) INTO :ld_outcost
  124. // FROM u_mtrl_cost INNER JOIN
  125. // u_itemdef ON u_mtrl_cost.itemid = u_itemdef.itemid
  126. // WHERE u_mtrl_cost.mtrlid = :ll_mtrlid
  127. // AND u_itemdef.ifcost = 1;
  128. // IF sqlca.SQLCode <> 0 THEN
  129. // MessageBox('Error','查询物料:'+String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+'费用成本失败')
  130. // RETURN
  131. // END IF
  132. ld_outcost_sum = ld_outcost_sum + ld_outcost * dw_1.Object.u_quoterqmtrl_rqqty[ll_i]
  133. NEXT
  134. ll_mtrlid = dw_2.Object.u_quotemx_mtrlid[ll_row]
  135. //SELECT isnull(sum(u_mtrl_cost.cost),0) INTO :ld_outcost
  136. // FROM u_mtrl_cost INNER JOIN
  137. // u_itemdef ON u_mtrl_cost.itemid = u_itemdef.itemid
  138. // WHERE u_mtrl_cost.mtrlid = :ll_mtrlid
  139. // AND u_itemdef.ifcost = 1;
  140. //IF sqlca.SQLCode <> 0 THEN
  141. // MessageBox('Error','查询物料:'+String(dw_2.Object.u_mtrldef_mtrlcode[ll_row])+'费用成本失败')
  142. // RETURN
  143. //END IF
  144. ld_outcost_sum = ld_outcost_sum + ld_outcost
  145. FOR ll_i = 1 TO dw_3.RowCount()
  146. ld_jgprice = ld_jgprice + dw_3.Object.u_quoteworkprice_workqty[ll_i] * dw_3.Object.u_quoteworkprice_workprice[ll_i]
  147. NEXT
  148. dw_2.Object.u_quotemx_mtrlcost[ll_row] = ld_price
  149. dw_2.Object.u_quotemx_wfjgprice[ll_row] = ld_wfjgprice
  150. dw_2.Object.u_quotemx_mancost[ll_row] = ld_jgprice
  151. dw_2.Object.u_quotemx_outcost[ll_row] = ld_outcost_sum
  152. end event
  153. event ue_addrqmtrl();Long child_row
  154. Long ll_ucrow
  155. ll_ucrow = dw_2.GetRow()
  156. IF ll_ucrow <= 0 THEN
  157. MessageBox('系统提示','没有报价单据明细内容')
  158. RETURN
  159. END IF
  160. Long i
  161. Decimal ld_tmp_price_be,ld_tmp_price_af
  162. ld_tmp_price_be = 0
  163. dw_1.AcceptText()
  164. FOR i = 1 TO dw_1.RowCount()
  165. IF dw_1.Object.u_mtrldef_mtrlorigin[i] = 3 OR dw_1.Object.u_mtrldef_mtrlorigin[i] = 2 THEN
  166. ld_tmp_price_be = ld_tmp_price_be + dw_1.Object.u_quoterqmtrl_rqqty[i] * dw_1.Object.u_quoterqmtrl_newprice[i]
  167. END IF
  168. NEXT
  169. child_row = dw_1.GetRow()
  170. IF NOT IsValid(W_mtrldef_edit) THEN
  171. s_edit_index_tran s_tranf8 //传递参数使用
  172. s_tranf8.if_retrieve_all = FALSE //是否一次RETRIEVE所有行
  173. s_tranf8.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  174. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  175. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  176. s_tranf8.if_select_all = TRUE
  177. s_tranf8.f_long = -1
  178. Long chc = 1,ls_j
  179. Long ll_lp,ll_pmtrlid
  180. Decimal ld_price
  181. OpenWithParm(W_mtrldef_edit,s_tranf8) //调用
  182. s_mtrldef_array S_INSCUST
  183. S_INSCUST = Message.PowerObjectParm //接受返回结构
  184. FOR ls_j = 1 TO UpperBound(S_INSCUST.mtrlid)
  185. IF S_INSCUST.mtrlid[ls_j] > 0 THEN //正常返回值则可以取以下值
  186. IF dw_1.Find('u_quoterqmtrl_mtrlid='+String(S_INSCUST.mtrlid[ls_j]),1,dw_1.RowCount()) = 0 THEN
  187. IF dw_1.GetRow() > 0 THEN
  188. IF dw_1.Object.u_quoterqmtrl_mtrlid[child_row] <> 0 THEN
  189. ll_lp = dw_1.Object.u_quoterqmtrl_lp[child_row]
  190. ll_pmtrlid = dw_1.Object.u_quoterqmtrl_pmtrlid[child_row]
  191. child_row = dw_1.InsertRow (0)
  192. ELSE
  193. child_row = dw_1.GetRow()
  194. ll_pmtrlid = dw_2.Object.u_quotemx_mtrlid[ll_ucrow]
  195. ll_lp = 1
  196. END IF
  197. ELSE
  198. child_row = dw_1.InsertRow (0)
  199. ll_pmtrlid = dw_2.Object.u_quotemx_mtrlid[ll_ucrow]
  200. ll_lp = 1
  201. END IF
  202. dw_1.Object.u_quoterqmtrl_mtrlid[child_row] = S_INSCUST.mtrlid[ls_j]
  203. dw_1.Object.u_mtrldef_mtrlcode [child_row] = S_INSCUST.mtrlcode[ls_j]
  204. dw_1.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.mtrlname[ls_j]
  205. dw_1.Object.u_mtrldef_unit[child_row] = S_INSCUST.unit[ls_j]
  206. dw_1.Object.u_mtrldef_mtrlorigin[child_row] = S_INSCUST.mtrlorigin[ls_j]
  207. dw_1.Object.u_quoterqmtrl_rqqty[child_row] = 0
  208. dw_1.Object.u_quoterqmtrl_lp[child_row] = ll_lp
  209. dw_1.Object.u_quoterqmtrl_pmtrlid[child_row] = ll_pmtrlid
  210. IF S_INSCUST.mtrlorigin[ls_j] = 2 OR S_INSCUST.mtrlorigin[ls_j] = 3 THEN
  211. SELECT price INTO :ld_price
  212. FROM v_maxprice_sptprice
  213. Where mtrlid = :S_INSCUST.mtrlid[ls_j];
  214. IF sqlca.SQLCode <> 0 THEN
  215. ld_price = 0
  216. END IF
  217. dw_1.Object.u_quoterqmtrl_newprice[child_row] = ld_price
  218. END IF
  219. END IF
  220. END IF
  221. NEXT
  222. dw_1.SetFocus()
  223. dw_1.ScrollToRow(dw_1.RowCount())
  224. dw_1.AcceptText()
  225. FOR i = 1 TO dw_1.RowCount()
  226. IF dw_1.Object.u_mtrldef_mtrlorigin[i] = 3 OR dw_1.Object.u_mtrldef_mtrlorigin[i] = 2 THEN
  227. ld_tmp_price_af = ld_tmp_price_af + dw_1.Object.u_quoterqmtrl_rqqty[i] * dw_1.Object.u_quoterqmtrl_newprice[i]
  228. END IF
  229. NEXT
  230. il_printid++
  231. mle_message.Text = mle_message.Text +'(' +String(il_printid)+')增料前后差额:'+String(ld_tmp_price_af - ld_tmp_price_be,'#,##0.00########') + '~r~n'
  232. END IF
  233. // u_mtrldef_mtrlcode
  234. // u_mtrldef_mtrlname
  235. // u_mtrldef_unit
  236. // u_quoterqmtrl_rqqty
  237. // u_quoterqmtrl_rqdate
  238. //u_quoterqmtrl_dstrqty
  239. // u_quoterqmtrl_mtrlid
  240. end event
  241. event ue_delmtrlmx();IF MessageBox ("询问","该物料的下级物料明细将会同时删除,是否确定要删除当前用料明细?",Question!,YesNo! ) = 2 THEN RETURN
  242. Long ll_row
  243. ll_row = dw_1.GetRow()
  244. IF ll_row = 0 THEN
  245. MessageBox('提示','请选择删除的行对象!')
  246. RETURN
  247. END IF
  248. Long ll_mtrlid ,ll_lp
  249. ll_mtrlid = dw_1.Object.u_quoterqmtrl_mtrlid[ll_row]
  250. ll_lp = dw_1.Object.u_quoterqmtrl_lp[ll_row]
  251. Long ll_i
  252. Long i
  253. Decimal ld_tmp_price_be,ld_tmp_price_af
  254. ld_tmp_price_be = 0
  255. dw_1.AcceptText()
  256. FOR i = 1 TO dw_1.RowCount()
  257. IF dw_1.Object.u_mtrldef_mtrlorigin[i] = 3 OR dw_1.Object.u_mtrldef_mtrlorigin[i] = 2 THEN
  258. ld_tmp_price_be = ld_tmp_price_be + dw_1.Object.u_quoterqmtrl_rqqty[i] * dw_1.Object.u_quoterqmtrl_newprice[i]
  259. END IF
  260. NEXT
  261. dw_1.SetRedraw(FALSE)
  262. wf_delmtrlmx(ll_mtrlid,ll_lp,ll_row)
  263. dw_1.DeleteRow (ll_row)
  264. dw_1.SetRedraw(TRUE)
  265. FOR i = 1 TO dw_1.RowCount()
  266. IF dw_1.Object.u_mtrldef_mtrlorigin[i] = 3 OR dw_1.Object.u_mtrldef_mtrlorigin[i] = 2 THEN
  267. ld_tmp_price_af = ld_tmp_price_af + dw_1.Object.u_quoterqmtrl_rqqty[i] * dw_1.Object.u_quoterqmtrl_newprice[i]
  268. END IF
  269. NEXT
  270. il_printid++
  271. mle_message.Text = mle_message.Text +'(' +String(il_printid)+')删料前后差额:'+String(ld_tmp_price_af - ld_tmp_price_be,'#,##0.00########') + '~r~n'
  272. end event
  273. event ue_changemtrl();IF MessageBox ("询问","该物料的下级物料明细将会同时被替换,是否确定要换料?",Question!,YesNo! ) = 2 THEN RETURN
  274. //Long ll_row_ch
  275. //ll_row_ch = dw_1.GetRow()
  276. //
  277. //IF ll_row_ch = 0 THEN
  278. // MessageBox('提示','请选择要换料的对象!')
  279. // RETURN
  280. //END IF
  281. //
  282. //Long ll_mtrlid ,ll_lp
  283. //Long ll_pmtrlid
  284. //DateTime ld_requiredate
  285. //String ls_pfcode
  286. //String arg_msg
  287. //Decimal ld_price
  288. //Long ll_row
  289. //Decimal ld_rqqty
  290. //ll_mtrlid = dw_1.Object.u_quoterqmtrl_mtrlid[ll_row_ch]
  291. //ll_lp = dw_1.Object.u_quoterqmtrl_lp[ll_row_ch]
  292. //ll_pmtrlid = dw_1.Object.u_quoterqmtrl_pmtrlid[ll_row_ch]
  293. //ld_rqqty = dw_1.Object.u_quoterqmtrl_rqqty[ll_row_ch]
  294. //Long ll_i
  295. //
  296. //Long i
  297. //Decimal ld_tmp_price_be,ld_tmp_price_af
  298. //ld_tmp_price_be = 0
  299. //dw_1.AcceptText()
  300. //FOR i = 1 TO dw_1.RowCount()
  301. // IF dw_1.Object.u_mtrldef_mtrlorigin[i] = 3 OR dw_1.Object.u_mtrldef_mtrlorigin[i] = 2 THEN
  302. // ld_tmp_price_be = ld_tmp_price_be + dw_1.Object.u_quoterqmtrl_rqqty[i] * dw_1.Object.u_quoterqmtrl_newprice[i]
  303. // END IF
  304. //NEXT
  305. //
  306. //IF NOT IsValid(w_order_ml_orderrqmtrl_change) THEN
  307. //
  308. // Long chc = 1,ls_j
  309. //
  310. // OpenWithParm(w_order_ml_orderrqmtrl_change,ll_mtrlid) //调用
  311. // s_mtrldef_array S_INSCUST
  312. //
  313. // S_INSCUST = Message.PowerObjectParm //接受返回结构
  314. // FOR ls_j = 1 TO UpperBound(S_INSCUST.mtrlid)
  315. // IF S_INSCUST.mtrlid[1] > 0 THEN //正常返回值则可以取以下值
  316. // ls_pfcode = f_get_dft_pf(S_INSCUST.mtrlid[1])
  317. //
  318. // s_order_ml_rqmtrl s_ref_mtrl
  319. // uo_order_ml_mrp uo_ml_mrp
  320. // uo_ml_mrp = CREATE uo_order_ml_mrp
  321. //
  322. // IF uo_ml_mrp.uof_cmpl_rqmtrl(0,-1,0,0,S_INSCUST.mtrlid[1],&
  323. // '','','',ls_pfcode,ld_rqqty,'',0,0,&
  324. // ld_requiredate,0,0,'','','','',0,0,0,0,s_ref_mtrl,arg_msg) = 0 THEN
  325. // MessageBox('Error',arg_msg)
  326. // RETURN
  327. // END IF
  328. //
  329. // dw_1.SetRedraw(FALSE)
  330. // wf_delmtrlmx(ll_mtrlid,ll_lp,ll_row_ch)
  331. // dw_1.SetRedraw(TRUE)
  332. //
  333. // dw_1.SetRedraw(FALSE)
  334. // FOR ll_i = UpperBound(s_ref_mtrl.mtrlid) TO 1 STEP - 1
  335. // IF ll_i = UpperBound(s_ref_mtrl.mtrlid) THEN
  336. // ll_row = ll_row_ch
  337. // ELSE
  338. // ll_row = dw_1.InsertRow(ll_row)
  339. // END IF
  340. //
  341. // dw_1.Object.u_mtrldef_mtrlcode[ll_row] = s_ref_mtrl.mtrlcode[ll_i]
  342. // dw_1.Object.u_mtrldef_mtrlname[ll_row] = s_ref_mtrl.mtrlname[ll_i]
  343. // dw_1.Object.u_mtrldef_mtrlmode[ll_row] = s_ref_mtrl.mtrlmode[ll_i]
  344. // dw_1.Object.u_mtrldef_unit[ll_row] = s_ref_mtrl.unit[ll_i]
  345. // dw_1.Object.u_mtrldef_mtrlorigin[ll_row] = s_ref_mtrl.mtrlorigin[ll_i]
  346. // //
  347. // // dw_1.Object.u_orderrqmtrl_tree_status[ll_row] = s_ref_mtrl.status[ll_i]
  348. // // dw_1.Object.u_orderrqmtrl_tree_woodcode[ll_row] = s_ref_mtrl.woodcode[ll_i]
  349. // // dw_1.Object.u_orderrqmtrl_tree_pcode[ll_row] = s_ref_mtrl.pcode[ll_i]
  350. // //
  351. // dw_1.Object.u_quoterqmtrl_lp[ll_row] = s_ref_mtrl.lp[ll_i] + ll_lp
  352. // dw_1.Object.u_quoterqmtrl_mtrlid[ll_row] = s_ref_mtrl.mtrlid[ll_i]
  353. // dw_1.Object.u_quoterqmtrl_rqqty[ll_row] = s_ref_mtrl.qty[ll_i]
  354. // dw_1.Object.u_quoterqmtrl_pmtrlid[ll_row] = s_ref_mtrl.pmtrlid[ll_i]
  355. //
  356. // IF s_ref_mtrl.mtrlorigin[ll_i] = 2 OR s_ref_mtrl.mtrlorigin[ll_i] = 3 THEN
  357. // SELECT price INTO :ld_price
  358. // FROM v_maxprice_sptprice
  359. // Where mtrlid = :s_ref_mtrl.mtrlid[ll_i];
  360. // IF sqlca.SQLCode <> 0 THEN
  361. // ld_price = 0
  362. // END IF
  363. // dw_1.Object.u_quoterqmtrl_newprice[ll_row] = ld_price
  364. // END IF
  365. //
  366. // NEXT
  367. //
  368. // dw_1.SetRedraw(TRUE)
  369. // END IF
  370. //
  371. // FOR i = 1 TO dw_1.RowCount()
  372. // IF dw_1.Object.u_mtrldef_mtrlorigin[i] = 3 OR dw_1.Object.u_mtrldef_mtrlorigin[i] = 2 THEN
  373. // ld_tmp_price_af = ld_tmp_price_af + dw_1.Object.u_quoterqmtrl_rqqty[i] * dw_1.Object.u_quoterqmtrl_newprice[i]
  374. // END IF
  375. // NEXT
  376. //
  377. // il_printid++
  378. // mle_message.Text = mle_message.Text +'(' +string(il_printid)+')换料前后差额:'+String(ld_tmp_price_af - ld_tmp_price_be,'#,##0.00########') + '~r~n'
  379. //
  380. //
  381. // NEXT
  382. //
  383. //END IF
  384. //dw_1.AcceptText()
  385. //
  386. //
  387. //
  388. //
  389. //
  390. end event
  391. event ue_addworkprice();Long ll_row
  392. Long ll_ucrow
  393. ll_ucrow = dw_2.GetRow()
  394. IF ll_ucrow <= 0 THEN
  395. MessageBox('系统提示','没有报价单明细内容')
  396. RETURN
  397. END IF
  398. ll_row = dw_3.GetRow()
  399. long ll_mtrlid
  400. string ls_mtrlcode,ls_mtrlname,ls_mtrlmode
  401. IF ll_row <= 0 THEN
  402. ll_row = dw_3.InsertRow(0)
  403. dw_3.object.u_quoteworkprice_mtrlid[ll_row] = dw_2.object.u_quotemx_mtrlid[ll_ucrow]
  404. dw_3.object.u_mtrldef_mtrlcode[ll_row] = dw_2.object.u_mtrldef_mtrlcode[ll_ucrow]
  405. dw_3.object.u_mtrldef_mtrlname[ll_row] = dw_2.object.u_mtrldef_mtrlname[ll_ucrow]
  406. dw_3.object.u_mtrldef_mtrlmode[ll_row] = dw_2.object.u_mtrldef_mtrlmode[ll_ucrow]
  407. ELSE
  408. ll_mtrlid = dw_3.object.u_quoteworkprice_mtrlid[ll_row]
  409. ls_mtrlcode = dw_3.object.u_mtrldef_mtrlcode[ll_row]
  410. ls_mtrlname = dw_3.object.u_mtrldef_mtrlname[ll_row]
  411. ls_mtrlmode = dw_3.object.u_mtrldef_mtrlmode[ll_row]
  412. ll_row = dw_3.InsertRow(ll_row)
  413. dw_3.object.u_quoteworkprice_mtrlid[ll_row] = ll_mtrlid
  414. dw_3.object.u_mtrldef_mtrlcode[ll_row] = ls_mtrlcode
  415. dw_3.object.u_mtrldef_mtrlname[ll_row] = ls_mtrlname
  416. dw_3.object.u_mtrldef_mtrlmode[ll_row] = ls_mtrlmode
  417. END IF
  418. end event
  419. event ue_view_workprice();long ll_row
  420. long ll_mtrlid
  421. string ls_mtrlcode
  422. ll_row = dw_2.getrow()
  423. ll_mtrlid = dw_2.object.u_quotemx_mtrlid[ll_row]
  424. ls_mtrlcode = dw_2.object.u_mtrldef_mtrlcode[ll_row]
  425. s_edit_index_tran s_tran
  426. s_tran.if_retrieve_all = TRUE //是否一次RETRIEVE所有行
  427. s_tran.work_mode = 0 //0-单纯编辑模式, 1-选择模式
  428. s_tran.arg_pkid = 0 //目标定位PKID (备用)
  429. s_tran.arg_string_code = ls_mtrlcode //查询列部分内容,用于初步筛选
  430. //s_tran.mainid = arg_mainid
  431. openwithparm(w_sc_workpricetable, s_tran)
  432. end event
  433. event ue_view_structure();long ll_row
  434. long ll_mtrlid
  435. string ls_mtrlcode
  436. ll_row = dw_2.getrow()
  437. ll_mtrlid = dw_2.object.u_quotemx_mtrlid[ll_row]
  438. ls_mtrlcode = dw_2.object.u_mtrldef_mtrlcode[ll_row]
  439. s_edit_index_tran s_tran
  440. s_tran.if_retrieve_all = TRUE //是否一次RETRIEVE所有行
  441. s_tran.work_mode = 0 //0-单纯编辑模式, 1-选择模式
  442. s_tran.arg_pkid = 0 //目标定位PKID (备用)
  443. s_tran.arg_string_code = ls_mtrlcode //查询列部分内容,用于初步筛选
  444. //s_tran.mainid = arg_mainid
  445. openwithparm(w_mtrl_structure, s_tran)
  446. end event
  447. event ue_add_workprice();Long ll_row
  448. Long ll_mtrlid
  449. String ls_mtrlcode
  450. Long i
  451. dw_3.AcceptText()
  452. ll_row = dw_2.GetRow()
  453. ll_mtrlid = dw_2.Object.u_quotemx_mtrlid[ll_row]
  454. ls_mtrlcode = dw_2.Object.u_mtrldef_mtrlcode[ll_row]
  455. s_edit_index_tran s_tran
  456. s_tran.if_retrieve_all = True //是否一次RETRIEVE所有行
  457. s_tran.work_mode = 0 //0-单纯编辑模式, 1-选择模式
  458. s_tran.arg_pkid = 0 //目标定位PKID (备用)
  459. s_tran.arg_string_code = ls_mtrlcode //查询列部分内容,用于初步筛选
  460. //s_tran.mainid = arg_mainid
  461. s_tran.b_long = ll_mtrlid
  462. s_tran.dw_share = dw_3
  463. OpenWithParm(w_sc_workpricetable, s_tran)
  464. end event
  465. event ue_add_structure();long ll_row
  466. long ll_mtrlid
  467. string ls_mtrlcode
  468. ll_row = dw_2.getrow()
  469. ll_mtrlid = dw_2.object.u_quotemx_mtrlid[ll_row]
  470. ls_mtrlcode = dw_2.object.u_mtrldef_mtrlcode[ll_row]
  471. s_edit_index_tran s_tran
  472. s_tran.if_retrieve_all = TRUE //是否一次RETRIEVE所有行
  473. s_tran.work_mode = 0 //0-单纯编辑模式, 1-选择模式
  474. s_tran.arg_pkid = 0 //目标定位PKID (备用)
  475. s_tran.arg_string_code = ls_mtrlcode //查询列部分内容,用于初步筛选
  476. //s_tran.mainid = arg_mainid
  477. s_tran.b_long = ll_mtrlid
  478. s_tran.dw_share = dw_1
  479. openwithparm(w_mtrl_structure, s_tran)
  480. end event
  481. event ue_cmpl_mj();Dec L, W, H
  482. String ls_mtrlmode
  483. Long i
  484. Int li_pos
  485. String ls_str
  486. IF tab_1.SelectedTab = 1 THEN
  487. i = dw_1.GetRow()
  488. IF i <= 0 THEN RETURN
  489. // FOR i = 1 To dw_1.RowCount()
  490. ls_mtrlmode = dw_1.Object.u_mtrldef_mtrlmode[i]
  491. //计算长,宽,高
  492. li_pos = Pos(ls_mtrlmode , '*')
  493. IF li_pos > 0 THEN
  494. ls_str = Left(ls_mtrlmode, li_pos - 1)
  495. ls_mtrlmode = Mid(ls_mtrlmode, li_pos + 1)
  496. IF IsNumber(ls_str) THEN
  497. L = Dec(ls_str)
  498. END IF
  499. ELSE
  500. IF IsNumber(ls_mtrlmode) THEN
  501. L = Dec(ls_mtrlmode)
  502. END IF
  503. END IF
  504. li_pos = Pos(ls_mtrlmode , '*')
  505. IF li_pos > 0 THEN
  506. ls_str = Left(ls_mtrlmode, li_pos - 1)
  507. ls_mtrlmode = Mid(ls_mtrlmode, li_pos + 1)
  508. IF IsNumber(ls_str) THEN
  509. W = Dec(ls_str)
  510. END IF
  511. ELSE
  512. IF IsNumber(ls_mtrlmode) THEN
  513. W = Dec(ls_mtrlmode)
  514. END IF
  515. END IF
  516. // li_pos = Pos(ls_mtrlmode , '*')
  517. // IF li_pos > 0 THEN
  518. // ls_str = Left(ls_mtrlmode, li_pos - 1)
  519. // ls_mtrlmode = Mid(ls_mtrlmode, li_pos + 1)
  520. // IF IsNumber(ls_str) THEN
  521. // H = Dec(ls_str)
  522. // END IF
  523. // ELSE
  524. // IF IsNumber(ls_mtrlmode) THEN
  525. // H = Dec(ls_mtrlmode)
  526. // END IF
  527. // END IF
  528. dw_1.Object.u_quoterqmtrl_rqqty[i] = L * W / 1000000
  529. // NEXT
  530. ELSE
  531. i = dw_3.GetRow()
  532. IF i <= 0 THEN RETURN
  533. ls_mtrlmode = dw_3.Object.u_mtrldef_mtrlmode[i]
  534. //计算长,宽,高
  535. li_pos = Pos(ls_mtrlmode , '*')
  536. IF li_pos > 0 THEN
  537. ls_str = Left(ls_mtrlmode, li_pos - 1)
  538. ls_mtrlmode = Mid(ls_mtrlmode, li_pos + 1)
  539. IF IsNumber(ls_str) THEN
  540. L = Dec(ls_str)
  541. END IF
  542. ELSE
  543. IF IsNumber(ls_mtrlmode) THEN
  544. L = Dec(ls_mtrlmode)
  545. END IF
  546. END IF
  547. li_pos = Pos(ls_mtrlmode , '*')
  548. IF li_pos > 0 THEN
  549. ls_str = Left(ls_mtrlmode, li_pos - 1)
  550. ls_mtrlmode = Mid(ls_mtrlmode, li_pos + 1)
  551. IF IsNumber(ls_str) THEN
  552. W = Dec(ls_str)
  553. END IF
  554. ELSE
  555. IF IsNumber(ls_mtrlmode) THEN
  556. W = Dec(ls_mtrlmode)
  557. END IF
  558. END IF
  559. dw_3.Object.u_quoteworkprice_workqty[i] = L * W / 1000000
  560. END IF
  561. RETURN
  562. end event
  563. event ue_cmpl_zc();Dec L, W, H
  564. String ls_mtrlmode
  565. Long i
  566. Int li_pos
  567. String ls_str
  568. IF tab_1.SelectedTab = 1 THEN
  569. i = dw_1.GetRow()
  570. IF i <= 0 THEN RETURN
  571. //FOR i = 1 To dw_1.RowCount()
  572. ls_mtrlmode = dw_1.Object.u_mtrldef_mtrlmode[i]
  573. //计算长,宽,高
  574. li_pos = Pos(ls_mtrlmode , '*')
  575. IF li_pos > 0 THEN
  576. ls_str = Left(ls_mtrlmode, li_pos - 1)
  577. ls_mtrlmode = Mid(ls_mtrlmode, li_pos + 1)
  578. IF IsNumber(ls_str) THEN
  579. L = Dec(ls_str)
  580. END IF
  581. ELSE
  582. IF IsNumber(ls_mtrlmode) THEN
  583. L = Dec(ls_mtrlmode)
  584. END IF
  585. END IF
  586. li_pos = Pos(ls_mtrlmode , '*')
  587. IF li_pos > 0 THEN
  588. ls_str = Left(ls_mtrlmode, li_pos - 1)
  589. ls_mtrlmode = Mid(ls_mtrlmode, li_pos + 1)
  590. IF IsNumber(ls_str) THEN
  591. W = Dec(ls_str)
  592. END IF
  593. ELSE
  594. IF IsNumber(ls_mtrlmode) THEN
  595. W = Dec(ls_mtrlmode)
  596. END IF
  597. END IF
  598. // li_pos = Pos(ls_mtrlmode , '*')
  599. // IF li_pos > 0 THEN
  600. // ls_str = Left(ls_mtrlmode, li_pos - 1)
  601. // ls_mtrlmode = Mid(ls_mtrlmode, li_pos + 1)
  602. // IF IsNumber(ls_str) THEN
  603. // H = Dec(ls_str)
  604. // END IF
  605. // ELSE
  606. // IF IsNumber(ls_mtrlmode) THEN
  607. // H = Dec(ls_mtrlmode)
  608. // END IF
  609. // END IF
  610. dw_1.Object.u_quoterqmtrl_rqqty[i] = ( L + W ) * 2 / 1000
  611. //NEXT
  612. ELSE
  613. i = dw_3.GetRow()
  614. IF i <= 0 THEN RETURN
  615. ls_mtrlmode = dw_3.Object.u_mtrldef_mtrlmode[i]
  616. //计算长,宽,高
  617. li_pos = Pos(ls_mtrlmode , '*')
  618. IF li_pos > 0 THEN
  619. ls_str = Left(ls_mtrlmode, li_pos - 1)
  620. ls_mtrlmode = Mid(ls_mtrlmode, li_pos + 1)
  621. IF IsNumber(ls_str) THEN
  622. L = Dec(ls_str)
  623. END IF
  624. ELSE
  625. IF IsNumber(ls_mtrlmode) THEN
  626. L = Dec(ls_mtrlmode)
  627. END IF
  628. END IF
  629. li_pos = Pos(ls_mtrlmode , '*')
  630. IF li_pos > 0 THEN
  631. ls_str = Left(ls_mtrlmode, li_pos - 1)
  632. ls_mtrlmode = Mid(ls_mtrlmode, li_pos + 1)
  633. IF IsNumber(ls_str) THEN
  634. W = Dec(ls_str)
  635. END IF
  636. ELSE
  637. IF IsNumber(ls_mtrlmode) THEN
  638. W = Dec(ls_mtrlmode)
  639. END IF
  640. END IF
  641. dw_3.Object.u_quoteworkprice_workqty[i] = ( L + W ) * 2 / 1000
  642. END IF
  643. RETURN
  644. end event
  645. event ue_f8();//用于选择明细内容,被F8[默认]\dw_3.doubleclicked调用
  646. Long child_row
  647. Long ls_null
  648. long ll_row
  649. IF NOT dw_edit_mode THEN RETURN
  650. //IF flag = 1 THEN RETURN
  651. ll_row = dw_2.getrow()
  652. child_row = dw_3.GetRow()
  653. s_edit_index_tran s_ch_tran
  654. s_ch_tran.if_retrieve_all = TRUE
  655. s_ch_tran.work_mode = 1
  656. s_ch_tran.arg_pkid = 0
  657. s_ch_tran.b_long = 0
  658. s_ch_tran.if_select_all = TRUE
  659. IF child_row > 0 THEN s_ch_tran.arg_string_code = dw_3.Object.u_quoteworkprice_procode[child_row]
  660. Long ls_j
  661. IF NOT IsValid(w_sc_workprocedure_response) THEN
  662. OpenWithParm(w_sc_workprocedure_response,s_ch_tran) //调用
  663. s_workprocedure S_INSCUST
  664. S_INSCUST = Message.PowerObjectParm //接受返回结构
  665. FOR ls_j = 1 TO UpperBound(S_INSCUST.wrkproid)
  666. IF S_INSCUST.wrkproid[ls_j] > 0 THEN //正常返回值则可以取以下值
  667. IF dw_3.Find('u_quoteworkprice_proid='+String(S_INSCUST.wrkproid[ls_j]),1,dw_3.RowCount()) = 0 THEN
  668. IF dw_3.GetRow() > 0 THEN
  669. IF dw_3.Object.u_quoteworkprice_proid[child_row] <> 0 THEN
  670. child_row = dw_3.InsertRow (0)
  671. ELSE
  672. child_row = dw_3.GetRow()
  673. END IF
  674. ELSE
  675. child_row = dw_3.InsertRow (0)
  676. END IF
  677. END IF
  678. dw_3.Object.u_quoteworkprice_mtrlid[child_row] = dw_2.Object.u_quotemx_mtrlid[ll_row]
  679. dw_3.Object.u_mtrldef_mtrlcode[child_row] = dw_2.Object.u_mtrldef_mtrlcode[ll_row]
  680. dw_3.Object.u_mtrldef_mtrlname[child_row] = dw_2.Object.u_mtrldef_mtrlname[ll_row]
  681. dw_3.Object.u_mtrldef_mtrlmode[child_row] = dw_2.Object.u_mtrldef_mtrlmode[ll_row]
  682. dw_3.Object.u_quoteworkprice_proid[child_row] = S_INSCUST.wrkproid[ls_j]
  683. dw_3.Object.u_quoteworkprice_procode[child_row] = S_INSCUST.wrkprocode[ls_j]
  684. dw_3.Object.u_quoteworkprice_proname[child_row] = S_INSCUST.wrkproname[ls_j]
  685. // dw_3.Object.worklevel[child_row] = S_INSCUST.worklevel[ls_j]
  686. // dw_3.Object.techlevel[child_row] = S_INSCUST.techlevel[ls_j]
  687. // dw_3.Object.workhour[child_row] = S_INSCUST.workhour[ls_j]
  688. dw_3.Object.u_quoteworkprice_wrkgrpid[child_row] = S_INSCUST.wrkgrid[ls_j]
  689. dw_3.Object.u_quoteworkprice_workprice[child_row] = S_INSCUST.workprice[ls_j]
  690. dw_3.Object.u_quoteworkprice_cost[child_row] = S_INSCUST.workprice[ls_j]
  691. IF child_row > 1 THEN
  692. dw_3.Object.u_quoteworkprice_proorder[child_row] = dw_3.Object.u_quoteworkprice_proorder[child_row - 1] + 1
  693. END IF
  694. END IF
  695. NEXT
  696. dw_3.SetRow(child_row)
  697. dw_3.ScrollToRow(child_row)
  698. dw_3.SetFocus()
  699. IF UpperBound(S_INSCUST.wrkproid) > 0 THEN
  700. dw_3.SetColumn("u_quoteworkprice_workprice")
  701. END IF
  702. END IF
  703. dw_3.SetRedraw(TRUE)
  704. dw_3.SetFocus()
  705. end event
  706. public function integer wf_addwpmx (long arg_mtrlid, string arg_pfcode, decimal arg_qty, ref string arg_msg);Int rslt = 1
  707. Long ll_i,cnt,ll_j
  708. String ls_pfcode
  709. Decimal ld_qty
  710. Long count = 0
  711. Long ll_row_mx
  712. IF IsNull(arg_mtrlid) OR arg_mtrlid = 0 THEN
  713. arg_msg = '产品错误,没有对应的产品'
  714. rslt = 0
  715. GOTO ext
  716. END IF
  717. s_pfmx ls_s_pfmx[]
  718. //查询默认清单
  719. datastore ds_workprice_mx
  720. ds_workprice_mx = CREATE datastore
  721. ds_workprice_mx.DataObject = 'dw_sc_workpricetable_mx'
  722. ds_workprice_mx.SetTransObject(sqlca)
  723. IF count > 2000 THEN //防止死递归
  724. arg_msg = '递归太深'+String(count)
  725. rslt = 0
  726. GOTO ext
  727. END IF
  728. DECLARE pf_cur CURSOR FOR
  729. SELECT u_PrdPF.Sonscale,
  730. u_PrdPF.SonLoss,
  731. u_PrdPF.SonDECLosS,
  732. u_PrdPF.SonMtrlid,
  733. u_mtrldef.mtrlcode,
  734. u_mtrldef.mtrlname,
  735. u_mtrldef.mtrlmode,
  736. u_mtrldef.mtrlorigin,
  737. u_PrdPF.sonpfcode
  738. FROM u_PrdPF,
  739. u_mtrldef
  740. WHERE ( u_PrdPF.SonMtrlid = u_mtrldef.mtrlid ) AND
  741. ( u_PrdPF.mtrlid = :arg_mtrlid ) AND
  742. ( u_PrdPF.pfcode = :arg_pfcode );
  743. OPEN pf_cur;
  744. count = 1
  745. FETCH pf_cur INTO :ls_s_pfmx[count].Sonscale,:ls_s_pfmx[count].SonLoss,&
  746. :ls_s_pfmx[count].SonDECLosS,:ls_s_pfmx[count].SonMtrlid,&
  747. :ls_s_pfmx[count].mtrlcode,:ls_s_pfmx[count].mtrlname,:ls_s_pfmx[count].mtrlmode,:ls_s_pfmx[count].mtrlorigin,:ls_s_pfmx[count].sonpfcode;
  748. DO WHILE sqlca.SQLCode = 0
  749. count++
  750. FETCH pf_cur INTO :ls_s_pfmx[count].Sonscale,:ls_s_pfmx[count].SonLoss,&
  751. :ls_s_pfmx[count].SonDECLosS,:ls_s_pfmx[count].SonMtrlid,&
  752. :ls_s_pfmx[count].mtrlcode,:ls_s_pfmx[count].mtrlname,:ls_s_pfmx[count].mtrlmode,:ls_s_pfmx[count].mtrlorigin,:ls_s_pfmx[count].sonpfcode;
  753. LOOP
  754. count = count - 1
  755. CLOSE pf_cur;
  756. FOR ll_i = 1 TO count
  757. SELECT count(*) INTO :cnt
  758. FROM u_PrdPF
  759. WHERE ( u_PrdPF.mtrlid = :ls_s_pfmx[ll_i].SonMtrlid ) AND
  760. ( u_PrdPF.pfcode = :ls_s_pfmx[count].sonpfcode );
  761. IF sqlca.SQLCode <> 0 THEN
  762. arg_msg = '查询物料:'+ls_s_pfmx[count].mtrlcode+'物料清单失败,'+sqlca.SQLErrText
  763. rslt = 0
  764. GOTO ext
  765. END IF
  766. ld_qty = arg_qty * (ls_s_pfmx[ll_i].Sonscale/(1 - ls_s_pfmx[ll_i].SonLoss)+ls_s_pfmx[ll_i].SonDECLosS)
  767. //如果自制,将其工价表插入
  768. IF ls_s_pfmx[ll_i].mtrlorigin = 0 THEN
  769. ds_workprice_mx.Retrieve(ls_s_pfmx[ll_i].SonMtrlid)
  770. FOR ll_j = 1 TO ds_workprice_mx.RowCount()
  771. ll_row_mx = dw_3.InsertRow(0)
  772. dw_3.Object.u_mtrldef_mtrlcode[ll_row_mx] = ls_s_pfmx[ll_i].mtrlcode
  773. dw_3.Object.u_mtrldef_mtrlname[ll_row_mx] = ls_s_pfmx[ll_i].mtrlname
  774. dw_3.Object.u_mtrldef_mtrlmode[ll_row_mx] = ls_s_pfmx[ll_i].mtrlmode
  775. dw_3.Object.u_quoteworkprice_workqty[ll_row_mx] = ds_workprice_mx.Object.workqty[ll_j] * ld_qty
  776. dw_3.Object.u_quoteworkprice_workprice[ll_row_mx] = ds_workprice_mx.Object.workprice[ll_j]
  777. dw_3.Object.u_quoteworkprice_cost[ll_row_mx] = ds_workprice_mx.Object.workprice[ll_j]
  778. // dw_3.Object.wprice[ll_row_mx] = ds_workprice_mx.Object.u_sc_workprice_wprice[ll_j] * ld_qty
  779. dw_3.Object.u_quoteworkprice_procode[ll_row_mx] = ds_workprice_mx.Object.procode[ll_j]
  780. dw_3.Object.u_quoteworkprice_proname[ll_row_mx] = ds_workprice_mx.Object.u_sc_workprice_proname[ll_j]
  781. dw_3.Object.u_sc_workgroup_wrkgrpcode[ll_row_mx] = ds_workprice_mx.Object.u_sc_workgroup_wrkgrpcode[ll_j]
  782. dw_3.Object.u_sc_workgroup_wrkgrpname[ll_row_mx] = ds_workprice_mx.Object.u_sc_workgroup_wrkgrpname[ll_j]
  783. dw_3.Object.u_quoteworkprice_dscrp[ll_row_mx] = ds_workprice_mx.Object.dscrp[ll_j]
  784. dw_3.Object.u_quoteworkprice_wrkgrpid[ll_row_mx] = ds_workprice_mx.Object.wrkgrpid[ll_j]
  785. dw_3.Object.u_quoteworkprice_proid[ll_row_mx] = ds_workprice_mx.Object.wrkgrpid[ll_j]
  786. dw_3.Object.u_quoteworkprice_proorder[ll_row_mx] = ds_workprice_mx.Object.proorder[ll_j]
  787. dw_3.Object.u_quoteworkprice_mtrlid[ll_row_mx] = ls_s_pfmx[ll_i].SonMtrlid
  788. NEXT
  789. END IF
  790. IF wf_addwpmx(ls_s_pfmx[ll_i].SonMtrlid,ls_s_pfmx[ll_i].sonpfcode,ld_qty,arg_msg) = 0 THEN
  791. rslt = 0
  792. GOTO ext
  793. END IF
  794. NEXT
  795. ext:
  796. RETURN rslt
  797. end function
  798. public subroutine wf_delmtrlmx (long arg_mtrlid, long arg_lp, long arg_row);Long ll_i
  799. FOR ll_i = dw_1.RowCount() TO 1 STEP -1
  800. IF dw_1.Object.u_quoterqmtrl_pmtrlid[ll_i] = arg_mtrlid AND &
  801. dw_1.Object.u_quoterqmtrl_lp[ll_i] = arg_lp + 1 THEN
  802. wf_delmtrlmx( dw_1.Object.u_quoterqmtrl_mtrlid[ll_i],dw_1.Object.u_quoterqmtrl_lp[ll_i],ll_i)
  803. dw_1.DeleteRow (ll_i)
  804. END IF
  805. NEXT
  806. end subroutine
  807. public subroutine wf_addmtrlmx ();Long ll_row,ll_mtrlid
  808. String ls_pfcode,arg_msg
  809. dw_2.AcceptText()
  810. ll_row = dw_2.GetRow()
  811. IF ll_row <= 0 THEN
  812. MessageBox('系统提示','没有单据内容,不能生成用料明细')
  813. RETURN
  814. END IF
  815. ll_mtrlid = dw_2.Object.u_quotemx_mtrlid[ll_row]
  816. IF ll_mtrlid <= 0 THEN
  817. MessageBox('提示','没有正确的物料,不能生成用料明细')
  818. RETURN
  819. END IF
  820. ls_pfcode = "组装"
  821. s_order_ml_rqmtrl s_ref_mtrl
  822. uo_order_ml_mrp uo_ml_mrp
  823. uo_ml_mrp = CREATE uo_order_ml_mrp
  824. DateTime ld_requiredate
  825. IF uo_ml_mrp.uof_cmpl_rqmtrl(0,-1,0,0,ll_mtrlid,&
  826. '','','',1,0,0,s_ref_mtrl,arg_msg,0,'') = 0 THEN
  827. MessageBox('Error',arg_msg)
  828. RETURN
  829. END IF
  830. dw_1.Reset()
  831. Decimal ld_price
  832. Long ll_i
  833. dw_1.SetRedraw(FALSE)
  834. FOR ll_i = 2 TO UpperBound(s_ref_mtrl.mtrlid)
  835. ll_row = dw_1.InsertRow(0)
  836. dw_1.Object.u_mtrldef_mtrlcode[ll_row] = s_ref_mtrl.mtrlcode[ll_i]
  837. dw_1.Object.u_mtrldef_mtrlname[ll_row] = s_ref_mtrl.mtrlname[ll_i]
  838. dw_1.Object.u_mtrldef_mtrlmode[ll_row] = s_ref_mtrl.mtrlmode[ll_i]
  839. dw_1.Object.u_mtrldef_unit[ll_row] = s_ref_mtrl.unit[ll_i]
  840. dw_1.Object.u_mtrldef_mtrlorigin[ll_row] = s_ref_mtrl.mtrlorigin[ll_i]
  841. //
  842. // dw_1.Object.u_orderrqmtrl_tree_status[ll_row] = s_ref_mtrl.status[ll_i]
  843. // dw_1.Object.u_orderrqmtrl_tree_woodcode[ll_row] = s_ref_mtrl.woodcode[ll_i]
  844. // dw_1.Object.u_orderrqmtrl_tree_pcode[ll_row] = s_ref_mtrl.pcode[ll_i]
  845. //
  846. dw_1.Object.u_quoterqmtrl_lp[ll_row] = s_ref_mtrl.lp[ll_i]
  847. dw_1.Object.u_quoterqmtrl_mtrlid[ll_row] = s_ref_mtrl.mtrlid[ll_i]
  848. dw_1.Object.u_quoterqmtrl_rqqty[ll_row] = s_ref_mtrl.qty[ll_i]
  849. dw_1.Object.u_quoterqmtrl_pmtrlid[ll_row] = s_ref_mtrl.pmtrlid[ll_i]
  850. IF s_ref_mtrl.mtrlorigin[ll_i] = 2 OR s_ref_mtrl.mtrlorigin[ll_i] = 3 THEN
  851. SELECT price INTO :ld_price
  852. FROM v_maxprice_sptprice
  853. Where mtrlid = :s_ref_mtrl.mtrlid[ll_i];
  854. IF sqlca.SQLCode <> 0 THEN
  855. ld_price = 0
  856. END IF
  857. dw_1.Object.u_quoterqmtrl_newprice[ll_row] = ld_price
  858. dw_1.Object.u_quoterqmtrl_costprice[ll_row] = ld_price
  859. END IF
  860. NEXT
  861. dw_1.SetRedraw(TRUE)
  862. DESTROY uo_ml_mrp
  863. end subroutine
  864. public subroutine wf_addworkprice ();Long ll_row,ll_mtrlid
  865. String ls_pfcode,arg_msg
  866. dw_2.AcceptText()
  867. ll_row = dw_2.GetRow()
  868. IF ll_row <= 0 THEN
  869. MessageBox('系统提示','没有单据内容,不能生成工价明细')
  870. RETURN
  871. END IF
  872. ll_mtrlid = dw_2.Object.u_quotemx_mtrlid[ll_row]
  873. IF ll_mtrlid <= 0 THEN
  874. MessageBox('提示','没有正确的物料,不能生成工价明细')
  875. RETURN
  876. END IF
  877. ls_pfcode = "组装"
  878. dw_3.Reset()
  879. //先插入自身工价表
  880. datastore ds_workprice
  881. ds_workprice = Create datastore
  882. ds_workprice.DataObject = 'dw_sc_workpricetable_mx'
  883. ds_workprice.SetTransObject(sqlca)
  884. ds_workprice.Retrieve(ll_mtrlid)
  885. Long ll_i
  886. Long ll_row_mx
  887. dw_3.SetRedraw(False)
  888. FOR ll_i = 1 To ds_workprice.RowCount()
  889. ll_row_mx = dw_3.InsertRow(0)
  890. dw_3.Object.u_mtrldef_mtrlcode[ll_row_mx] = dw_2.Object.u_mtrldef_mtrlcode[ll_row]
  891. dw_3.Object.u_mtrldef_mtrlname[ll_row_mx] = dw_2.Object.u_mtrldef_mtrlname[ll_row]
  892. dw_3.Object.u_mtrldef_mtrlmode[ll_row_mx] = dw_2.Object.u_mtrldef_mtrlmode[ll_row]
  893. dw_3.Object.u_quoteworkprice_workqty[ll_row_mx] = ds_workprice.Object.workqty[ll_i]
  894. dw_3.Object.u_quoteworkprice_workprice[ll_row_mx] = ds_workprice.Object.workprice[ll_i]
  895. dw_3.Object.u_quoteworkprice_cost[ll_row_mx] = ds_workprice.Object.workprice[ll_i]
  896. dw_3.Object.wprice[ll_row_mx] = ds_workprice.Object.u_sc_workprice_wprice[ll_i]
  897. dw_3.Object.u_quoteworkprice_procode[ll_row_mx] = ds_workprice.Object.procode[ll_i]
  898. dw_3.Object.u_quoteworkprice_proname[ll_row_mx] = ds_workprice.Object.u_sc_workprice_proname[ll_i]
  899. dw_3.Object.u_sc_workgroup_wrkgrpcode[ll_row_mx] = ds_workprice.Object.u_sc_workgroup_wrkgrpcode[ll_i]
  900. dw_3.Object.u_sc_workgroup_wrkgrpname[ll_row_mx] = ds_workprice.Object.u_sc_workgroup_wrkgrpname[ll_i]
  901. dw_3.Object.u_quoteworkprice_dscrp[ll_row_mx] = ds_workprice.Object.dscrp[ll_i]
  902. dw_3.Object.u_quoteworkprice_wrkgrpid[ll_row_mx] = ds_workprice.Object.wrkgrpid[ll_i]
  903. dw_3.Object.u_quoteworkprice_proid[ll_row_mx] = ds_workprice.Object.wrkgrpid[ll_i]
  904. dw_3.Object.u_quoteworkprice_proorder[ll_row_mx] = ds_workprice.Object.proorder[ll_i]
  905. dw_3.Object.u_quoteworkprice_mtrlid[ll_row_mx] = ll_mtrlid
  906. NEXT
  907. //插入下级物料工价明细
  908. IF wf_addwpmx(ll_mtrlid,ls_pfcode,1,arg_msg) = 0 THEN
  909. dw_3.Reset()
  910. dw_3.SetRedraw(True)
  911. MessageBox('系统提示',arg_msg)
  912. RETURN
  913. END IF
  914. dw_3.SetRedraw(True)
  915. end subroutine
  916. public function window getparentwin ();return this
  917. end function
  918. on w_quoterqmtrl.create
  919. int iCurrent
  920. call super::create
  921. this.cb_1=create cb_1
  922. this.cb_mx1=create cb_mx1
  923. this.cb_mx2=create cb_mx2
  924. this.dw_2=create dw_2
  925. this.cb_cmpl=create cb_cmpl
  926. this.cb_rqmtrl=create cb_rqmtrl
  927. this.cb_workprice=create cb_workprice
  928. this.tab_1=create tab_1
  929. this.cb_chmtrl=create cb_chmtrl
  930. this.mle_message=create mle_message
  931. this.cb_other=create cb_other
  932. this.cb_2=create cb_2
  933. this.ln_bar=create ln_bar
  934. this.ln_bar2=create ln_bar2
  935. this.r_bar=create r_bar
  936. iCurrent=UpperBound(this.Control)
  937. this.Control[iCurrent+1]=this.cb_1
  938. this.Control[iCurrent+2]=this.cb_mx1
  939. this.Control[iCurrent+3]=this.cb_mx2
  940. this.Control[iCurrent+4]=this.dw_2
  941. this.Control[iCurrent+5]=this.cb_cmpl
  942. this.Control[iCurrent+6]=this.cb_rqmtrl
  943. this.Control[iCurrent+7]=this.cb_workprice
  944. this.Control[iCurrent+8]=this.tab_1
  945. this.Control[iCurrent+9]=this.cb_chmtrl
  946. this.Control[iCurrent+10]=this.mle_message
  947. this.Control[iCurrent+11]=this.cb_other
  948. this.Control[iCurrent+12]=this.cb_2
  949. this.Control[iCurrent+13]=this.ln_bar
  950. this.Control[iCurrent+14]=this.ln_bar2
  951. this.Control[iCurrent+15]=this.r_bar
  952. end on
  953. on w_quoterqmtrl.destroy
  954. call super::destroy
  955. destroy(this.cb_1)
  956. destroy(this.cb_mx1)
  957. destroy(this.cb_mx2)
  958. destroy(this.dw_2)
  959. destroy(this.cb_cmpl)
  960. destroy(this.cb_rqmtrl)
  961. destroy(this.cb_workprice)
  962. destroy(this.tab_1)
  963. destroy(this.cb_chmtrl)
  964. destroy(this.mle_message)
  965. destroy(this.cb_other)
  966. destroy(this.cb_2)
  967. destroy(this.ln_bar)
  968. destroy(this.ln_bar2)
  969. destroy(this.r_bar)
  970. end on
  971. event open;dw_1 = tab_1.tabpage_1.dw_1
  972. dw_3 = tab_1.tabpage_2.dw_3
  973. dw_1.SetTransObject(sqlca)
  974. dw_2.SetTransObject(sqlca)
  975. dw_3.SetTransObject(sqlca)
  976. s_mx = Message.PowerObjectParm
  977. dw_2.Retrieve(s_mx.scid,s_mx.quoteid,s_mx.printid)
  978. IF dw_1.Retrieve(s_mx.scid,s_mx.quoteid,s_mx.printid) = 0 THEN
  979. wf_addmtrlmx()
  980. END IF
  981. IF dw_3.Retrieve(s_mx.scid,s_mx.quoteid,s_mx.printid) = 0 THEN
  982. wf_addworkprice()
  983. END IF
  984. cb_1.Enabled = (s_mx.mode = 0)
  985. cb_cmpl.Enabled = (s_mx.mode = 0)
  986. cb_mx1.Enabled = (s_mx.mode = 0)
  987. cb_mx2.Enabled = (s_mx.mode = 0)
  988. cb_chmtrl.Enabled = (s_mx.mode = 0)
  989. //cb_pfcode.Enabled = (s_mx.mode = 0)
  990. cb_rqmtrl.Enabled = (s_mx.mode = 0)
  991. cb_workprice.Enabled = (s_mx.mode = 0)
  992. IF s_mx.mode = 0 THEN
  993. this.title += " - 编辑模式"
  994. dw_2.SetTabOrder('u_quotemx_outcost',10)
  995. dw_2.SetTabOrder('u_quotemx_mtrlcost',20)
  996. dw_2.SetTabOrder('u_quotemx_mancost',30)
  997. dw_2.SetTabOrder('u_quotemx_wfjgprice',40)
  998. dw_2.SetTabOrder('u_quotemx_profit_margin',50)
  999. dw_2.SetTabOrder('u_quotemx_sumprice',60)
  1000. dw_2.SetTabOrder('u_quotemx_sumprice_1',70)
  1001. dw_1.SetTabOrder('u_quoterqmtrl_rqqty',10)
  1002. dw_1.SetTabOrder('u_quoterqmtrl_newprice',20)
  1003. dw_1.SetTabOrder('u_quoterqmtrl_costprice',30)
  1004. dw_3.SetTabOrder('u_quoteworkprice_workqty',10)
  1005. dw_3.SetTabOrder('u_quoteworkprice_workprice',20)
  1006. dw_3.SetTabOrder('u_quoteworkprice_cost',30)
  1007. dw_3.SetTabOrder('u_quoteworkprice_procode',40)
  1008. dw_3.SetTabOrder('u_quoteworkprice_proname',50)
  1009. dw_3.SetTabOrder('u_quoteworkprice_wrkgrpid',60)
  1010. dw_2.SetFocus()
  1011. dw_2.SetColumn('u_quotemx_outcost')
  1012. dw_edit_mode = true
  1013. ELSE
  1014. this.title += " - 查看模式"
  1015. dw_2.SetTabOrder('u_quotemx_outcost',0)
  1016. dw_2.SetTabOrder('u_quotemx_mtrlcost',0)
  1017. dw_2.SetTabOrder('u_quotemx_mancost',0)
  1018. dw_2.SetTabOrder('u_quotemx_wfjgprice',0)
  1019. dw_2.SetTabOrder('u_quotemx_profit_margin',0)
  1020. dw_2.SetTabOrder('u_quotemx_sumprice',0)
  1021. dw_2.SetTabOrder('u_quotemx_sumprice_1',0)
  1022. dw_1.SetTabOrder('u_quoterqmtrl_rqqty',0)
  1023. dw_1.SetTabOrder('u_quoterqmtrl_newprice',0)
  1024. dw_1.SetTabOrder('u_quoterqmtrl_costprice',0)
  1025. dw_3.SetTabOrder('u_quoteworkprice_workqty',0)
  1026. dw_3.SetTabOrder('u_quoteworkprice_workprice',0)
  1027. dw_3.SetTabOrder('u_quoteworkprice_procode',0)
  1028. dw_3.SetTabOrder('u_quoteworkprice_proname',0)
  1029. dw_3.SetTabOrder('u_quoteworkprice_wrkgrpid',0)
  1030. dw_edit_mode = false
  1031. END IF
  1032. uo_q = CREATE uo_quote
  1033. uo_q.commit_transaction = sqlca
  1034. end event
  1035. event resize;call super::resize;ln_bar.EndX = This.Width
  1036. ln_bar2.EndX = This.Width
  1037. r_bar.Width = This.Width
  1038. tab_1.Width = This.Width - tab_1.X - 10
  1039. tab_1.Height = This.Height - tab_1.Y - 120
  1040. dw_1.Width = tab_1.tabpage_1.Width - 4
  1041. dw_1.Height = tab_1.tabpage_1.Height - 4
  1042. dw_3.Width = tab_1.tabpage_2.Width - 4
  1043. dw_3.Height = tab_1.tabpage_2.Height - 4
  1044. end event
  1045. event close;call super::close;DESTROY uo_q
  1046. end event
  1047. type cb_func from w_publ_base`cb_func within w_quoterqmtrl
  1048. boolean visible = false
  1049. integer x = 2386
  1050. integer y = 32
  1051. boolean enabled = false
  1052. end type
  1053. type cb_exit from w_publ_base`cb_exit within w_quoterqmtrl
  1054. integer x = 2057
  1055. integer width = 151
  1056. integer height = 164
  1057. string text = "取消"
  1058. integer picsize = 16
  1059. toolbaralignment pic_align = alignattop!
  1060. boolean border = false
  1061. end type
  1062. type cb_1 from uo_imflatbutton within w_quoterqmtrl
  1063. integer width = 151
  1064. integer height = 164
  1065. integer taborder = 20
  1066. boolean bringtotop = true
  1067. string text = "保存"
  1068. string normalpicname = "save.bmp"
  1069. integer picsize = 16
  1070. toolbaralignment pic_align = alignattop!
  1071. boolean border = false
  1072. end type
  1073. event clicked;call super::clicked;Long ll_row,ll_i,ll_j
  1074. Long ll_quoteid,ll_printid,ll_scid
  1075. Decimal ld_sumprice,ld_sumprice_1
  1076. Decimal ld_mtrlcost,ld_mancost
  1077. Decimal ld_outcost,ld_wfjgprice
  1078. Decimal ld_profit_margin
  1079. String ls_pfcode,arg_msg
  1080. s_quote_rqmtrl s_q
  1081. s_quote_workprice s_workprice
  1082. dw_1.AcceptText( )
  1083. dw_2.AcceptText( )
  1084. dw_3.AcceptText( )
  1085. ll_row = dw_2.GetRow()
  1086. IF ll_row <= 0 THEN
  1087. MessageBox('提示','没有可保存的资料')
  1088. RETURN
  1089. END IF
  1090. ll_quoteid = dw_2.Object.u_quotemx_quoteid[ll_row]
  1091. ll_scid = dw_2.Object.u_quotemx_scid[ll_row]
  1092. ll_printid = dw_2.Object.u_quotemx_printid[ll_row]
  1093. ld_sumprice = dw_2.Object.u_quotemx_sumprice[ll_row]
  1094. ld_sumprice_1 = dw_2.Object.u_quotemx_sumprice_1[ll_row]
  1095. ld_mtrlcost = dw_2.Object.u_quotemx_mtrlcost[ll_row]
  1096. ld_mancost = dw_2.Object.u_quotemx_mancost[ll_row]
  1097. ld_outcost = dw_2.Object.u_quotemx_outcost[ll_row]
  1098. ld_wfjgprice = dw_2.Object.u_quotemx_wfjgprice[ll_row]
  1099. ld_profit_margin = dw_2.Object.u_quotemx_profit_margin[ll_row]
  1100. ls_pfcode = dw_2.Object.u_quotemx_pfcode[ll_row]
  1101. FOR ll_i = 1 TO dw_1.RowCount()
  1102. s_q.printid[ll_i] = dw_1.Object.pid[ll_i]
  1103. s_q.mtrlid[ll_i] = dw_1.Object.u_quoterqmtrl_mtrlid[ll_i]
  1104. s_q.RqQty[ll_i] = dw_1.Object.u_quoterqmtrl_rqqty[ll_i]
  1105. s_q.newprice[ll_i] = dw_1.Object.u_quoterqmtrl_newprice[ll_i]
  1106. s_q.planprice[ll_i] = dw_1.Object.u_quoterqmtrl_planprice[ll_i]
  1107. s_q.costprice[ll_i] = dw_1.Object.u_quoterqmtrl_costprice[ll_i]
  1108. s_q.lp[ll_i] = dw_1.Object.u_quoterqmtrl_lp[ll_i]
  1109. s_q.pmtrlid[ll_i] = dw_1.Object.u_quoterqmtrl_pmtrlid[ll_i]
  1110. NEXT
  1111. FOR ll_j = 1 TO dw_3.RowCount()
  1112. s_workprice.pid[ll_j] = dw_3.Object.pid[ll_j]
  1113. s_workprice.mtrlid[ll_j] = dw_3.Object.u_quoteworkprice_mtrlid[ll_j]
  1114. s_workprice.proid[ll_j] = dw_3.Object.u_quoteworkprice_proid[ll_j]
  1115. s_workprice.proorder[ll_j] = dw_3.Object.u_quoteworkprice_proorder[ll_j]
  1116. s_workprice.procode[ll_j] = dw_3.Object.u_quoteworkprice_procode[ll_j]
  1117. s_workprice.proname[ll_j] = dw_3.Object.u_quoteworkprice_proname[ll_j]
  1118. s_workprice.wrkgrpid[ll_j] = dw_3.Object.u_quoteworkprice_wrkgrpid[ll_j]
  1119. s_workprice.workprice[ll_j] = dw_3.Object.u_quoteworkprice_workprice[ll_j]
  1120. s_workprice.cost[ll_j] = dw_3.Object.u_quoteworkprice_cost[ll_j]
  1121. s_workprice.workqty[ll_j] = dw_3.Object.u_quoteworkprice_workqty[ll_j]
  1122. s_workprice.dscrp[ll_j] = dw_3.Object.u_quoteworkprice_dscrp[ll_j]
  1123. NEXT
  1124. IF uo_q.uof_update_mx(ll_scid,ll_quoteid,ll_printid,ld_sumprice,ld_sumprice_1,ld_profit_margin,ld_mtrlcost,ld_mancost,ld_outcost,ld_wfjgprice,ls_pfcode,s_q,s_workprice,arg_msg,TRUE) = 0 THEN
  1125. MessageBox('提示','保存失败,'+arg_msg)
  1126. RETURN
  1127. END IF
  1128. MessageBox('系统提示','保存成功')
  1129. //Close(PARENT)
  1130. end event
  1131. type cb_mx1 from uo_imflatbutton within w_quoterqmtrl
  1132. integer x = 1344
  1133. integer width = 219
  1134. integer height = 164
  1135. integer taborder = 30
  1136. boolean bringtotop = true
  1137. string text = "增明细"
  1138. string normalpicname = "mx1.bmp"
  1139. integer picsize = 16
  1140. toolbaralignment pic_align = alignattop!
  1141. boolean border = false
  1142. end type
  1143. event clicked;call super::clicked;IF tab_1.SelectedTab = 1 THEN
  1144. parent.triggerevent('ue_addrqmtrl')
  1145. ELSE
  1146. parent.triggerevent('ue_addworkprice')
  1147. END IF
  1148. end event
  1149. type cb_mx2 from uo_imflatbutton within w_quoterqmtrl
  1150. integer x = 1563
  1151. integer width = 219
  1152. integer height = 164
  1153. integer taborder = 30
  1154. boolean bringtotop = true
  1155. string text = "删明细"
  1156. string normalpicname = "mx2.bmp"
  1157. integer picsize = 16
  1158. toolbaralignment pic_align = alignattop!
  1159. boolean border = false
  1160. end type
  1161. event clicked;call super::clicked;IF tab_1.SelectedTab = 1 THEN
  1162. PARENT.TriggerEvent('ue_delmtrlmx')
  1163. ELSE
  1164. IF MessageBox ("询问","是否确定要删除当前工价明细?",Question!,YesNo! ) = 2 THEN RETURN
  1165. IF dw_3.GetRow() = 0 THEN
  1166. MessageBox('提示','请选择删除的行对象!')
  1167. RETURN
  1168. END IF
  1169. dw_3.DeleteRow (0)
  1170. dw_3.TriggerEvent (RowFocusChanged!)
  1171. END IF
  1172. end event
  1173. type dw_2 from u_dw_rbtnfilter within w_quoterqmtrl
  1174. integer y = 176
  1175. integer width = 2382
  1176. integer height = 772
  1177. boolean bringtotop = true
  1178. string dataobject = "dw_quotemx_edit"
  1179. end type
  1180. event dwnkey;IF Key = KeyEnter! THEN //
  1181. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  1182. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  1183. RETURN 1
  1184. END IF
  1185. end event
  1186. type cb_cmpl from uo_imflatbutton within w_quoterqmtrl
  1187. integer x = 151
  1188. integer width = 274
  1189. integer height = 164
  1190. integer taborder = 40
  1191. boolean bringtotop = true
  1192. string text = "计算成本"
  1193. string normalpicname = "update.bmp"
  1194. integer picsize = 16
  1195. toolbaralignment pic_align = alignattop!
  1196. boolean border = false
  1197. end type
  1198. event clicked;call super::clicked;IF s_mx.mode = 0 THEN PARENT.TriggerEvent('ue_cmpl')
  1199. end event
  1200. type cb_rqmtrl from uo_imflatbutton within w_quoterqmtrl
  1201. integer x = 425
  1202. integer width = 384
  1203. integer height = 164
  1204. integer taborder = 30
  1205. boolean bringtotop = true
  1206. string text = "生成用料明细"
  1207. string normalpicname = "update2.BMP"
  1208. integer picsize = 16
  1209. toolbaralignment pic_align = alignattop!
  1210. boolean border = false
  1211. end type
  1212. event clicked;call super::clicked;IF MessageBox ("询问","是否确定要按当前清单重新生成用料明细?该操作会将原来的修改清除,是否继续?",Question!,YesNo! ) = 2 THEN RETURN
  1213. wf_addmtrlmx()
  1214. end event
  1215. type cb_workprice from uo_imflatbutton within w_quoterqmtrl
  1216. integer x = 809
  1217. integer width = 384
  1218. integer height = 164
  1219. integer taborder = 40
  1220. boolean bringtotop = true
  1221. string text = "生成工价信息"
  1222. string normalpicname = "update2.BMP"
  1223. integer picsize = 16
  1224. toolbaralignment pic_align = alignattop!
  1225. boolean border = false
  1226. end type
  1227. event clicked;call super::clicked;IF MessageBox ("询问","是否确定要按当前清单重新生成工价信息?该操作会将原来的修改清除,是否继续?",Question!,YesNo! ) = 2 THEN RETURN
  1228. wf_addworkprice()
  1229. end event
  1230. type tab_1 from tab within w_quoterqmtrl
  1231. integer y = 960
  1232. integer width = 3579
  1233. integer height = 1344
  1234. integer taborder = 20
  1235. boolean bringtotop = true
  1236. integer textsize = -9
  1237. integer weight = 400
  1238. fontcharset fontcharset = gb2312charset!
  1239. fontpitch fontpitch = variable!
  1240. string facename = "宋体"
  1241. long backcolor = 134217739
  1242. boolean raggedright = true
  1243. boolean focusonbuttondown = true
  1244. integer selectedtab = 1
  1245. tabpage_1 tabpage_1
  1246. tabpage_2 tabpage_2
  1247. end type
  1248. on tab_1.create
  1249. this.tabpage_1=create tabpage_1
  1250. this.tabpage_2=create tabpage_2
  1251. this.Control[]={this.tabpage_1,&
  1252. this.tabpage_2}
  1253. end on
  1254. on tab_1.destroy
  1255. destroy(this.tabpage_1)
  1256. destroy(this.tabpage_2)
  1257. end on
  1258. event selectionchanged;IF This.SelectedTab = 1 THEN
  1259. cb_2.Text = "计算用料数量"
  1260. ELSE
  1261. cb_2.Text = "计算工价数量"
  1262. END IF
  1263. cb_2.TriggerEvent('ue_textchange')
  1264. end event
  1265. type tabpage_1 from userobject within tab_1
  1266. integer x = 18
  1267. integer y = 96
  1268. integer width = 3543
  1269. integer height = 1232
  1270. long backcolor = 134217739
  1271. string text = "用料明细"
  1272. long tabtextcolor = 33554432
  1273. long tabbackcolor = 134217739
  1274. long picturemaskcolor = 536870912
  1275. dw_1 dw_1
  1276. end type
  1277. on tabpage_1.create
  1278. this.dw_1=create dw_1
  1279. this.Control[]={this.dw_1}
  1280. end on
  1281. on tabpage_1.destroy
  1282. destroy(this.dw_1)
  1283. end on
  1284. type dw_1 from u_dw_rbtnfilter within tabpage_1
  1285. integer width = 3543
  1286. integer height = 1388
  1287. integer taborder = 20
  1288. string dataobject = "dw_quoterqmtrl_mod"
  1289. boolean hscrollbar = true
  1290. boolean vscrollbar = true
  1291. boolean hsplitscroll = true
  1292. end type
  1293. event rowfocuschanged;call super::rowfocuschanged;
  1294. IF currentrow > 0 THEN
  1295. THIS.SetRow(currentrow)
  1296. THIS.SelectRow(0,FALSE)
  1297. THIS.SelectRow(currentrow,TRUE)
  1298. END IF
  1299. end event
  1300. event clicked;call super::clicked;IF row > 0 THEN
  1301. THIS.SetRow(row)
  1302. THIS.SelectRow(0,FALSE)
  1303. THIS.SelectRow(row,TRUE)
  1304. END IF
  1305. end event
  1306. type tabpage_2 from userobject within tab_1
  1307. integer x = 18
  1308. integer y = 96
  1309. integer width = 3543
  1310. integer height = 1232
  1311. long backcolor = 134217739
  1312. string text = "工价明细"
  1313. long tabtextcolor = 33554432
  1314. long tabbackcolor = 134217739
  1315. long picturemaskcolor = 536870912
  1316. dw_3 dw_3
  1317. end type
  1318. on tabpage_2.create
  1319. this.dw_3=create dw_3
  1320. this.Control[]={this.dw_3}
  1321. end on
  1322. on tabpage_2.destroy
  1323. destroy(this.dw_3)
  1324. end on
  1325. type dw_3 from u_dw_rbtnfilter within tabpage_2
  1326. integer width = 3543
  1327. integer height = 1388
  1328. integer taborder = 20
  1329. string dataobject = "dw_quoteworkprice_mod"
  1330. boolean hscrollbar = true
  1331. boolean vscrollbar = true
  1332. boolean hsplitscroll = true
  1333. end type
  1334. event clicked;call super::clicked;IF row > 0 THEN
  1335. THIS.SetRow(row)
  1336. THIS.SelectRow(0,FALSE)
  1337. THIS.SelectRow(row,TRUE)
  1338. END IF
  1339. end event
  1340. event rowfocuschanged;call super::rowfocuschanged;IF currentrow > 0 THEN
  1341. THIS.SetRow(currentrow)
  1342. THIS.SelectRow(0,FALSE)
  1343. THIS.SelectRow(currentrow,TRUE)
  1344. END IF
  1345. end event
  1346. event doubleclicked;call super::doubleclicked;GetParentWin().triggerevent('ue_f8')
  1347. end event
  1348. type cb_chmtrl from uo_imflatbutton within w_quoterqmtrl
  1349. integer x = 1193
  1350. integer width = 151
  1351. integer height = 164
  1352. integer taborder = 30
  1353. boolean bringtotop = true
  1354. string text = "换料"
  1355. string normalpicname = "p2.BMP"
  1356. integer picsize = 16
  1357. toolbaralignment pic_align = alignattop!
  1358. boolean border = false
  1359. end type
  1360. event clicked;call super::clicked;parent.triggerevent('ue_changemtrl')
  1361. end event
  1362. type mle_message from multilineedit within w_quoterqmtrl
  1363. integer x = 2391
  1364. integer y = 176
  1365. integer width = 1175
  1366. integer height = 764
  1367. integer taborder = 20
  1368. boolean bringtotop = true
  1369. integer textsize = -9
  1370. integer weight = 400
  1371. fontcharset fontcharset = gb2312charset!
  1372. fontpitch fontpitch = variable!
  1373. string facename = "宋体"
  1374. long textcolor = 33554432
  1375. boolean hscrollbar = true
  1376. boolean vscrollbar = true
  1377. boolean displayonly = true
  1378. borderstyle borderstyle = stylelowered!
  1379. end type
  1380. event constructor;this.text = '用料变更差额提示'+'~r~n'
  1381. end event
  1382. type cb_other from uo_imflatbutton within w_quoterqmtrl
  1383. integer x = 1783
  1384. integer width = 274
  1385. integer height = 164
  1386. integer taborder = 40
  1387. boolean bringtotop = true
  1388. string text = "辅助功能"
  1389. string normalpicname = "other.BMP"
  1390. integer picsize = 16
  1391. toolbaralignment pic_align = alignattop!
  1392. boolean border = false
  1393. end type
  1394. event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  1395. String menustr
  1396. menustr = "Text=调工价表~tEvent=ue_view_workprice"
  1397. menustr = menustr + "|" + "Text=调物料清单~tEvent=ue_view_structure"
  1398. menustr = menustr + "|" + "Text=-"
  1399. menustr = menustr + "|" + "Text=辅助建立工价表~tEvent=ue_add_workprice"
  1400. menustr = menustr + "|" + "Text=辅助建立物料清单~tEvent=ue_add_structure"
  1401. IF Len(Trim(menustr)) <> 0 THEN
  1402. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  1403. dmPopupMenu.mf_BuildMenu(This, menustr)
  1404. dmPopupMenu.mf_PopMenu()
  1405. Destroy dmPopupMenu
  1406. END IF
  1407. end event
  1408. type cb_2 from uo_imflatbutton within w_quoterqmtrl
  1409. integer x = 827
  1410. integer y = 948
  1411. integer width = 494
  1412. integer taborder = 30
  1413. boolean bringtotop = true
  1414. string text = "计算用料数量"
  1415. end type
  1416. event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  1417. String menustr
  1418. menustr = "Text=按规格计算面积~tEvent=ue_cmpl_mj"
  1419. menustr = menustr + "|" + "Text=按规格计算周长~tEvent=ue_cmpl_zc"
  1420. //menustr = menustr + "|" + "Text=-"
  1421. //menustr = menustr + "|" + "Text=辅助建立工价表~tEvent=ue_add_workprice"
  1422. //menustr = menustr + "|" + "Text=辅助建立物料清单~tEvent=ue_add_structure"
  1423. IF Len(Trim(menustr)) <> 0 THEN
  1424. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  1425. dmPopupMenu.mf_BuildMenu(This, menustr)
  1426. dmPopupMenu.mf_PopMenu()
  1427. Destroy dmPopupMenu
  1428. END IF
  1429. end event
  1430. type ln_bar from line within w_quoterqmtrl
  1431. long linecolor = 268435456
  1432. integer linethickness = 4
  1433. integer beginy = 168
  1434. integer endx = 2007
  1435. integer endy = 168
  1436. end type
  1437. type ln_bar2 from line within w_quoterqmtrl
  1438. long linecolor = 16777215
  1439. integer linethickness = 4
  1440. integer beginy = 172
  1441. integer endx = 2039
  1442. integer endy = 172
  1443. end type
  1444. type r_bar from rectangle within w_quoterqmtrl
  1445. long linecolor = 16777215
  1446. integer linethickness = 4
  1447. long fillcolor = 1073741824
  1448. integer x = 1038
  1449. integer y = 56
  1450. integer width = 146
  1451. integer height = 68
  1452. end type
  1453. event constructor;this.fillcolor = 14215660
  1454. this.linecolor = 14215660
  1455. this.x = -1
  1456. this.y = -1
  1457. this.height = ln_bar.beginy - 5
  1458. end event